Function at 0x459cf8
Capabilities:
Accept command line arguments
Get common file path
Get session user name

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x73
push 0
push 0
dec ecx
jne 0x459d00
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x45aebc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x350], 0
jne 0x459d53
mov dl, 1
mov eax, dword [0x43d158]
call fcn.004478e4
mov ebx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x350
mov edx, ebx
test edx, edx
je 0x459d4e
sub edx, 0xffffffc0
call sub.rtl160.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x350]
call sub.rtl160.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x374], 0
je 0x45adbd
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x350]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x45adbd
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x350]
call sub.rtl160.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
lea eax, [ebp - 0x288]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x350]
mov ecx, 0x45aed0
call sub.rtl160.bpl__System__IntfCast_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x288]
mov edx, dword [eax]
call dword [edx + 0x18]
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x459f15
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x290]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x3d4]
mov cl, 0x30
mov edx, 4
call fcn.0040b980
push dword [ebp - 0x290]
push 0x45aeec
lea eax, [ebp - 0x294]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x3d6]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x294]
push 0x45aeec
lea eax, [ebp - 0x298]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x3da]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x298]
push 0x45aefc
lea eax, [ebp - 0x29c]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x3dc]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x29c]
push 0x45af0c
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x3de]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x2a0]
push 0x45af0c
lea eax, [ebp - 0x2a4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x3e0]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x2a4]
push 0x45aefc
lea eax, [ebp - 0x2a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x3e2]
mov cl, 0x30
mov edx, 1
call fcn.0040b980
push dword [ebp - 0x2a8]
push 0x45af1c
lea eax, [ebp - 0x28c]
mov edx, 0xe
call sub.rtl160.bpl__System__LStrCatN_qqrv
mov edx, dword [ebp - 0x28c]
mov eax, 0x45af2c
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x459f1f
xor eax, eax
push ebp
push 0x459f54
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2ac]
call fcn.004327b8
mov edx, dword [ebp - 0x2ac]
mov eax, 0x45af44
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x459f5e
xor eax, eax
push ebp
push 0x459f93
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2b0]
call fcn.00458840
mov edx, dword [ebp - 0x2b0]
mov eax, 0x45af60
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x459f9d
xor eax, eax
push ebp
push 0x45a006
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x131]
push eax
call sub.advapi32.dll_GetUserNameA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x131]
mov ecx, 0x105
push 0
call sub.rtl160.bpl__System__LStrFromArray_qqrr27System__AnsiStringT_us_i0__pcius
call fcn.0045877c
test al, al
je 0x459fed
lea eax, [ebp - 0x10]
mov edx, 0x45af7c
call sub.rtl160.bpl__System__LStrCat_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45af94
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a010
xor eax, eax
push ebp
push 0x45a0f5
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x45a039
lea eax, [ebp - 0x10]
mov edx, 0x45afac
call sub.rtl160.bpl__System__LStrLAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
jmp 0x45a041
lea eax, [ebp - 0x10]
call sub.rtl160.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x14]
push eax
push 0x45afbc
push dword [ebp - 0x10]
push 0x45afe4
lea eax, [ebp - 0x2b4]
mov edx, 3
call sub.rtl160.bpl__System__LStrCatN_qqrv
mov edx, dword [ebp - 0x2b4]
mov ecx, 0x45b000
mov eax, 0x80000002
call fcn.004327f0
lea eax, [ebp - 0x2b8]
push eax
push 0x45afbc
push dword [ebp - 0x10]
push 0x45afe4
lea eax, [ebp - 0x2bc]
mov edx, 3
call sub.rtl160.bpl__System__LStrCatN_qqrv
mov edx, dword [ebp - 0x2bc]
mov ecx, 0x45b024
mov eax, 0x80000002
call fcn.004327f0
mov edx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x10]
call sub.rtl160.bpl__System__LStrLAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
cmp dword [ebp - 0x14], 0
je 0x45a0dc
push dword [ebp - 0x10]
push 0x45b040
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call sub.rtl160.bpl__System__LStrCatN_qqrv
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b050
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a0ff
xor eax, eax
push ebp
push 0x45a134
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2c0]
call fcn.00458bc0
mov edx, dword [ebp - 0x2c0]
mov eax, 0x45b070
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a13e
xor eax, eax
push ebp
push 0x45a173
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2c4]
call fcn.00458c84
mov edx, dword [ebp - 0x2c4]
mov eax, 0x45b090
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a17d
xor eax, eax
push ebp
push 0x45a1b2
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2c8]
call fcn.00458ccc
mov edx, dword [ebp - 0x2c8]
mov eax, 0x45b0ac
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a1bc
xor eax, eax
push ebp
push 0x45a1f1
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2cc]
call fcn.00458d24
mov edx, dword [ebp - 0x2cc]
mov eax, 0x45b0c8
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a1fb
xor eax, eax
push ebp
push 0x45a286
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.00458e28
cmp dword [ebp - 0x10], 0
je 0x45a27c
call fcn.00458ed8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x45a236
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b0e4
call fcn.00459c10
pop ecx
jmp 0x45a27c
push ebp
lea eax, [ebp - 0x2d4]
push eax
mov cl, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040b864
push dword [ebp - 0x2d4]
push 0x45b0fc
push dword [ebp - 0x10]
lea eax, [ebp - 0x2d0]
mov edx, 3
call sub.rtl160.bpl__System__LStrCatN_qqrv
mov edx, dword [ebp - 0x2d0]
mov eax, 0x45b10c
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a290
xor eax, eax
push ebp
push 0x45a2c5
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2d8]
call fcn.00458fcc
mov edx, dword [ebp - 0x2d8]
mov eax, 0x45b124
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a2cf
lea eax, [ebp - 0x2f8]
call fcn.0040d3e4
cmp byte [ebp - 0x2e8], 0
je 0x45a322
xor eax, eax
push ebp
push 0x45a318
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2fc]
call fcn.0045914c
mov edx, dword [ebp - 0x2fc]
mov eax, 0x45b140
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a322
xor eax, eax
push ebp
push 0x45a422
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45b154
push 0x45b17c
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00402f44
mov dword [ebp - 8], eax
push 0x104
lea eax, [ebp - 0x131]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea edx, [ebp - 0x300]
xor eax, eax
call fcn.00431e40
mov edx, dword [ebp - 0x300]
lea eax, [ebp - 0x10]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
call fcn.0040a29c
mov ebx, eax
movzx eax, byte [ebp - 0x131]
call fcn.0040a29c
cmp bl, al
je 0x45a3f2
push ebp
push ebp
lea edx, [ebp - 0x308]
movzx eax, byte [ebp - 0x131]
call fcn.00459a98
pop ecx
push dword [ebp - 0x308]
push 0x45b1a4
push ebp
lea edx, [ebp - 0x30c]
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
call fcn.00459a98
pop ecx
push dword [ebp - 0x30c]
lea eax, [ebp - 0x304]
mov edx, 3
call sub.rtl160.bpl__System__LStrCatN_qqrv
mov edx, dword [ebp - 0x304]
mov eax, 0x45b1b4
call fcn.00459c10
pop ecx
jmp 0x45a418
push ebp
push ebp
lea edx, [ebp - 0x310]
movzx eax, byte [ebp - 0x131]
call fcn.00459a98
pop ecx
mov edx, dword [ebp - 0x310]
mov eax, 0x45b1b4
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a42c
xor eax, eax
push ebp
push 0x45a461
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x314]
call fcn.00459208
mov edx, dword [ebp - 0x314]
mov eax, 0x45b1d0
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a46b
xor eax, eax
push ebp
push 0x45a4ad
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x318]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040ba28
mov edx, dword [ebp - 0x318]
mov eax, 0x45b1ec
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a4b7
xor eax, eax
push ebp
push 0x45a4ec
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x31c]
call fcn.004593e4
mov edx, dword [ebp - 0x31c]
mov eax, 0x45b204
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a4f6
xor eax, eax
push ebp
push 0x45a549
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x5354f8], 0
je 0x45a53f
call sub.rtl160.bpl__System_ParamCount_qqrv
test eax, eax
jle 0x45a53f
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x320]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
mov edx, dword [ebp - 0x320]
mov eax, 0x45b224
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a553
xor eax, eax
push ebp
push 0x45a5b1
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x32c]
xor eax, eax
call fcn.00431e40
mov eax, dword [ebp - 0x32c]
lea edx, [ebp - 0x328]
call fcn.00431ef4
mov edx, dword [ebp - 0x328]
lea eax, [ebp - 0x324]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov edx, dword [ebp - 0x324]
mov eax, 0x45b240
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a5bb
xor eax, eax
push ebp
push 0x45a62b
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x537004]
je 0x45a621
push ebp
lea edx, [ebp - 0x338]
mov eax, dword [0x537004]
call fcn.00431e40
mov eax, dword [ebp - 0x338]
lea edx, [ebp - 0x334]
call fcn.00431ef4
mov edx, dword [ebp - 0x334]
lea eax, [ebp - 0x330]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov edx, dword [ebp - 0x330]
mov eax, 0x45b258
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a635
xor eax, eax
push ebp
push 0x45a894
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x53559c], 0
je 0x45a66e
lea edx, [ebp - 0x33c]
xor eax, eax
call fcn.00431e40
mov edx, dword [ebp - 0x33c]
lea eax, [ebp - 0x10]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
jmp 0x45a691
lea edx, [ebp - 0x340]
mov eax, dword [0x537004]
call fcn.00431e40
mov edx, dword [ebp - 0x340]
lea eax, [ebp - 0x10]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp - 0x10]
call sub.rtl160.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
call sub.kernel32.dll_FindFirstFileA
mov ebx, eax
cmp ebx, 0xffffffff
je 0x45a88a
push ebx
call sub.kernel32.dll_FindClose
xor eax, eax
push ebp
push 0x45a816
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x260]
lea eax, [ebp - 0x260]
call fcn.00402ddc
lea edx, [ebp - 0x284]
lea eax, [ebp - 0x260]
call fcn.00402dec
cmp byte [0x53559c], 0
jne 0x45a6ff
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x537004]
jne 0x45a70e
lea eax, [ebp - 0x14]
mov edx, 0x45b274
call sub.rtl160.bpl__System__LStrLAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
jmp 0x45a71b
lea eax, [ebp - 0x14]
mov edx, 0x45b288
call sub.rtl160.bpl__System__LStrLAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
push ebp
lea eax, [ebp - 0x348]
push eax
movzx eax, word [ebp - 0x284]
mov cl, 0x30
mov edx, 4
call fcn.0040b980
push dword [ebp - 0x348]
push 0x45aeec
lea eax, [ebp - 0x34c]
push eax
movzx eax, word [ebp - 0x282]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x34c]
push 0x45aeec
lea eax, [ebp - 0x350]
push eax
movzx eax, word [ebp - 0x27e]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x350]
push 0x45b1a4
lea eax, [ebp - 0x354]
push eax
movzx eax, word [ebp - 0x27c]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x354]
push 0x45af0c
lea eax, [ebp - 0x358]
push eax
movzx eax, word [ebp - 0x27a]
mov cl, 0x30
mov edx, 2
call fcn.0040b980
push dword [ebp - 0x358]
push 0x45b29c
lea eax, [ebp - 0x344]
mov edx, 0xa
call sub.rtl160.bpl__System__LStrCatN_qqrv
mov eax, dword [ebp - 0x344]
push eax
lea eax, [ebp - 0x35c]
mov ecx, 0x45b2ac
mov edx, dword [ebp - 0x14]
call sub.rtl160.bpl__System__LStrCat3_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__t2
mov eax, dword [ebp - 0x35c]
pop edx
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a820
lea edx, [ebp - 0x360]
mov eax, dword [ebp - 0x1c]
call fcn.004430a0
cmp dword [ebp - 0x360], 0
jne 0x45a86a
lea edx, [ebp - 0x364]
mov eax, dword [ebp - 0x10]
call fcn.0040dcec
mov edx, dword [ebp - 0x364]
lea eax, [ebp - 0x10]
call sub.rtl160.bpl__System__LStrLAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
cmp dword [ebp - 0x10], 0
je 0x45a88a
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b2c4
call fcn.00459c10
pop ecx
jmp 0x45a88a
push ebp
lea edx, [ebp - 0x368]
mov eax, dword [ebp - 0x1c]
call fcn.004430a0
mov edx, dword [ebp - 0x368]
mov eax, 0x45b2c4
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a89e
xor eax, eax
push ebp
push 0x45a917
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45b2cc
call sub.kernel32.dll_GetModuleHandleW_1
mov ebx, eax
test ebx, ebx
je 0x45a90d
push 0x104
lea eax, [ebp - 0x131]
push eax
push ebx
call sub.kernel32.dll_GetModuleFileNameA
test eax, eax
jbe 0x45a90d
lea eax, [ebp - 0x36c]
lea edx, [ebp - 0x131]
mov ecx, 0x105
push 0
call sub.rtl160.bpl__System__LStrFromArray_qqrr27System__AnsiStringT_us_i0__pcius
mov eax, dword [ebp - 0x36c]
lea edx, [ebp - 0x10]
call fcn.0040dcec
cmp dword [ebp - 0x10], 0
je 0x45a90d
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b2f0
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a921
xor eax, eax
push ebp
push 0x45a9c8
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x45a97b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x537004]
call fcn.0040ec18
cmp byte [eax + 0x1a], 2
je 0x45a960
push ebp
mov edx, 0x45b308
mov eax, 0x45b31c
call fcn.00459c10
pop ecx
jmp 0x45a971
push ebp
mov edx, 0x45b338
mov eax, 0x45b31c
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a996
push ebp
lea eax, [ebp - 0x370]
mov edx, dword [0x5354e8]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
mov edx, dword [ebp - 0x370]
mov eax, 0x45b350
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a9d2
lea ecx, [ebp - 0x14]
mov edx, 0x45b370
mov eax, dword [ebp - 0x1c]
call fcn.00445e10
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call fcn.0040c0cc
test eax, eax
jle 0x45aba6
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x45ab90
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call fcn.0040c10c
mov eax, dword [0x53bdfc]
call sub.rtl160.bpl__System__DynArrayHigh_qqrpxv
mov ebx, eax
test ebx, ebx
jl 0x45ab86
inc ebx
mov dword [ebp - 0x28], 0
mov esi, dword [ebp - 0x28]
mov eax, esi
add esi, esi
add esi, esi
add esi, esi
sub esi, eax
mov eax, dword [0x53bdfc]
mov eax, dword [eax + esi*4]
mov edx, dword [ebp - 0x10]
call fcn.0040a43c
test al, al
je 0x45ab7c
mov eax, dword [0x53bdfc]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x45ab86
mov eax, dword [0x53bdfc]
cmp dword [eax + esi*4 + 8], 0
je 0x45aaa5
push ebp
mov eax, dword [0x53bdfc]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x374]
call ebx
mov edx, dword [ebp - 0x374]
mov eax, dword [0x53bdfc]
mov eax, dword [eax + esi*4]
call fcn.00459c10
pop ecx
jmp 0x45ab86
mov eax, dword [0x53bdfc]
cmp dword [eax + esi*4 + 0xc], 0
je 0x45aaf2
push ebp
mov eax, dword [0x53bdfc]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x37c]
call ebx
mov edx, dword [ebp - 0x37c]
lea eax, [ebp - 0x378]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov edx, dword [ebp - 0x378]
mov eax, dword [0x53bdfc]
mov eax, dword [eax + esi*4]
call fcn.00459c10
pop ecx
jmp 0x45ab86
mov eax, dword [0x53bdfc]
cmp dword [eax + esi*4 + 0x10], 0
je 0x45ab32
push ebp
mov eax, dword [0x53bdfc]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x380]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45ab1a
sub eax, 0xfffffc18
call ebx
mov edx, dword [ebp - 0x380]
mov eax, dword [0x53bdfc]
mov eax, dword [eax + esi*4]
call fcn.00459c10
pop ecx
jmp 0x45ab86
push ebp
mov eax, dword [0x53bdfc]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x388]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45ab4e
sub eax, 0xfffffc18
call ebx
mov edx, dword [ebp - 0x388]
lea eax, [ebp - 0x384]
mov ecx, 0
call sub.rtl160.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov edx, dword [ebp - 0x384]
mov eax, dword [0x53bdfc]
mov eax, dword [eax + esi*4]
call fcn.00459c10
pop ecx
jmp 0x45ab86
inc dword [ebp - 0x28]
dec ebx
jne 0x45aa39
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ab9a
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x45a9fe
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x45abd6
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x45b384
mov eax, 0x45b3a8
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45abe0
xor eax, eax
push ebp
push 0x45ac36
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x535df0], 1
adc dword [0x535df4], 0
push ebp
push dword [0x535df4]
push dword [0x535df0]
lea ecx, [ebp - 0x38c]
mov dl, 0x30
mov eax, 1
call fcn.0040b9d4
mov edx, dword [ebp - 0x38c]
mov eax, 0x45b3c4
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ac40
xor eax, eax
push ebp
push 0x45ad24
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x45acfa
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.0045986c
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.00459800
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x45b3e4
call fcn.00459c10
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call sub.rtl160.bpl__System__LStrEqual_qqrv
je 0x45ad1a
lea edx, [ebp - 0x390]
mov eax, dword [ebp - 0x10]
call fcn.00434e2c
mov edx, dword [ebp - 0x390]
lea eax, [ebp - 0x10]
call sub.rtl160.bpl__System__LStrLAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
push 0
lea eax, [ebp - 0x10]
mov ecx, 0x45b1a4
mov edx, 0x45b400
call fcn.0040a144
push 0
lea eax, [ebp - 0x10]
mov ecx, 0x45b1a4
mov edx, 0x45b410
call fcn.0040a144
push 1
lea eax, [ebp - 0x10]
mov ecx, 0x45b1a4
mov edx, 0x45b420
call fcn.0040a144
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b430
call fcn.00459c10
pop ecx
jmp 0x45ad1a
push ebp
lea edx, [ebp - 0x394]
mov eax, dword [ebp - 0x1c]
call fcn.00443114
mov edx, dword [ebp - 0x394]
mov eax, 0x45b430
call fcn.00459c10
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ad2e
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x45adab
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x45ad7a
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov edx, dword [eax + edx*8]
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x28]
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x45ad57
lea eax, [ebp - 0x398]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x350]
mov ecx, 0x45aed0
call sub.rtl160.bpl__System__IntfCast_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x398]
mov edx, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x14]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45adb5
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x10]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45aec6
lea eax, [ebp - 0x398]
call sub.rtl160.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x394]
mov edx, 3
call sub.rtl160.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x388]
call sub.rtl160.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x384]
mov edx, 2
call sub.rtl160.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x37c]
call sub.rtl160.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x378]
mov edx, 0xe
call sub.rtl160.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x340]
mov edx, 4
call sub.rtl160.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x330]
call sub.rtl160.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x32c]
mov edx, 2
call sub.rtl160.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x324]
mov edx, 9
call sub.rtl160.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x300]
call sub.rtl160.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x2fc]
call sub.rtl160.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x2f8]
mov edx, dword [0x40d09c]
call sub.rtl160.bpl__System__FinalizeRecord_qqrpvt1
lea eax, [ebp - 0x2d8]
mov edx, 0x14
call sub.rtl160.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x288]
call sub.rtl160.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x18]
call sub.rtl160.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x14]
mov edx, 2
call sub.rtl160.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 4]
mov edx, dword [0x459a60]
call sub.rtl160.bpl__System__DynArrayClear_qqrrpvpv
ret