# VBForums UtilityBank > UtilityBank - Tutorials >  [VB6]P-Code Extractor Guide and learning about PCode, etc

## Nightwalker83

Hi,

I found a couple of useful sites which, can help explain PCode, Native Code, etc for the novice (such as myself).

I found a pdf VISUAL BASIC REVERSED - A decompiling approach which covers the ins and outs of a small VB6 project.

Also,

A useful add-in for the VB6 IDE P-Code Extractor Guide. (See Attachment removed the dll)
opcodes.zip

Thanks,


Nightwalker

----------


## erka

Hi,

Could you help me,

I cant understand, what is the output of this function.


Public Function GetDiskVolume(strDiskName) '4316A0
  loc_004316D7: var_eax = arg_8.AddRef 'Ignore this
  loc_00431742: call __vbaFixstrConstruct(00000100h, var_28, __vbaFixstrConstruct, esi, ebx)
  loc_0043174D: call __vbaFixstrConstruct(00000100h, var_2C)
  loc_00431762: var_A0 = ":\"
  loc_004317BF: var_eax = GetVolumeInformation(CStr(strDiskName & ":\"), var_28, 256, var_40, var_20, var_24, var_2C, 256)
  loc_004317E0: call __vbaLsetFixstr(esi, var_28, var_4C)
  loc_004317F6: call __vbaLsetFixstr(esi, var_2C, var_54)
  loc_00431822: call undef 'Ignore this '__vbaFreeVar
  loc_0043182B: If var_40 = 0 Then
  loc_00431835:   var_1C = vbNullString
  loc_0043183B:   GoTo loc_004319CA
  loc_00431840: End If
  loc_0043184E: var_A0 = var_40
  loc_0043187B: var_1C = Hex(var_40)
  loc_00431880: call undef 'Ignore this '__vbaFreeVar
  loc_004318BC: 00000008h = 00000008h - Len(var_1C)
  loc_004318C1: If Err.Number <> 0 Then GoTo loc_00431A74
  loc_004318C9: var_78 = String(8, var_68)
  loc_004318D5: var_B0 = var_1C
  loc_004318F4: var_88 = var_78 & var_1C
  loc_004318FE: var_1C = var_88
  loc_00431911: call undef 'Ignore this '__vbaFreeVarList(00000003, var_68, var_78, var_88)
  loc_0043192A: var_A0 = var_1C
  loc_0043193A: var_68 = Left(var_1C, 4)
  loc_00431967: var_C0 = var_1C
  loc_00431977: var_88 = Right(var_1C, 4)
  loc_0043198C: var_78 = var_68 & &H41AD7C
  loc_0043199D: var_98 = var_78 & var_88
  loc_004319A7: var_1C = var_98
  loc_004319C1: call undef 'Ignore this '__vbaFreeVarList(00000004, var_68, var_78, var_88, var_98)
  loc_004319CA: 'Referenced from: 0043183B
  loc_004319D0: var_18 = var_1C
  loc_004319DB: GoTo loc_00431A2E
  loc_004319E1: If var_4 Then
  loc_004319EC: End If
  loc_00431A24: call undef 'Ignore this '__vbaFreeVarList(00000004, var_68, var_78, var_88, var_98, var_00431A4D)
  loc_00431A2D: Exit Sub
  loc_00431A2E: 'Referenced from: 004319DB
  loc_00431A46: call undef 'Ignore this '__vbaFreeVar
End Function

----------

