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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xb3
push 0
push 0
dec ecx
jne 0x45699c
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x457c8b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1a0], 0
jne 0x4569f0
mov dl, 1
mov eax, dword [0x4336f8]
call fcn.0043b908
mov ebx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x1a0
mov edx, ebx
test edx, edx
je 0x4569eb
sub edx, 0xffffffc0
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x1c4], 0
je 0x457b5b
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x457b5b
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call sub.rtl120.bpl__System__IntfCopy_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x457c9c
call sub.rtl120.bpl__System__IntfCast_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x49c]
mov edx, dword [eax]
call dword [edx + 0x18]
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x456bc0
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4a4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x224]
mov cx, 0x30
mov edx, 4
call fcn.004059a0
push dword [ebp - 0x4a4]
push 0x457cb8
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x226]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x4a8]
push 0x457cb8
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22a]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x4ac]
push 0x457cc8
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22c]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x4b0]
push 0x457cdc
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22e]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x4b4]
push 0x457cdc
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x230]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x4b8]
push 0x457cc8
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x232]
mov cx, 0x30
mov edx, 1
call fcn.004059a0
push dword [ebp - 0x4bc]
push 0x457cec
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4a0]
mov eax, 0x457d00
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456bca
xor eax, eax
push ebp
push 0x456bff
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.0042cf20
mov edx, dword [ebp - 0x4c0]
mov eax, 0x457d20
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456c09
xor eax, eax
push ebp
push 0x456c3e
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.0045523c
mov edx, dword [ebp - 0x4c4]
mov eax, 0x457d48
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456c48
xor eax, eax
push ebp
push 0x456ce7
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x456c8e
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x236]
push eax
call sub.advapi32.dll_GetUserNameW
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x236]
mov ecx, 0x105
call sub.rtl120.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
jmp 0x456cb8
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x236]
push eax
call sub.advapi32.dll_GetUserNameA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x236]
mov dword [ebp - 0x4c8], edx
mov edx, dword [ebp - 0x4c8]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
call fcn.0045517c
test al, al
je 0x456cce
lea eax, [ebp - 0x10]
mov edx, 0x457d74
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x457d94
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456cf1
xor eax, eax
push ebp
push 0x456dd8
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x456d1a
lea eax, [ebp - 0x10]
mov edx, 0x457db4
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x456d24
lea eax, [ebp - 0x10]
xor edx, edx
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
lea eax, [ebp - 0x14]
push eax
push 0x457dc8
push dword [ebp - 0x10]
push 0x457e0c
lea eax, [ebp - 0x4cc]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x457e38
mov eax, 0x80000002
call fcn.0042cfd4
lea eax, [ebp - 0x4d0]
push eax
push 0x457dc8
push dword [ebp - 0x10]
push 0x457e0c
lea eax, [ebp - 0x4d4]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x457e74
mov eax, 0x80000002
call fcn.0042cfd4
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
cmp dword [ebp - 0x14], 0
je 0x456dbf
push dword [ebp - 0x10]
push 0x457ea0
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x457eb4
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456de2
xor eax, eax
push ebp
push 0x456e17
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.004555f8
mov edx, dword [ebp - 0x4d8]
mov eax, 0x457ee4
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456e21
xor eax, eax
push ebp
push 0x456e56
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.004556b0
mov edx, dword [ebp - 0x4dc]
mov eax, 0x457f14
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456e60
xor eax, eax
push ebp
push 0x456e95
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.00455784
mov edx, dword [ebp - 0x4e0]
mov eax, 0x457f40
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456e9f
xor eax, eax
push ebp
push 0x456ed4
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.004557e0
mov edx, dword [ebp - 0x4e4]
mov eax, 0x457f6c
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456ede
xor eax, eax
push ebp
push 0x456f6b
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.004558f4
cmp dword [ebp - 0x10], 0
je 0x456f61
call fcn.004559f8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x456f19
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x457f98
call fcn.004568f0
pop ecx
jmp 0x456f61
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004058a4
push dword [ebp - 0x4ec]
push 0x457fb8
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4e8]
mov eax, 0x457fcc
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456f75
xor eax, eax
push ebp
push 0x456faa
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.00455b2c
mov edx, dword [ebp - 0x4f0]
mov eax, 0x457ff0
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456fb4
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
je 0x456fff
xor eax, eax
push ebp
push 0x456ff5
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.00455cc0
mov edx, dword [ebp - 0x4f4]
mov eax, 0x45801c
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456fff
xor eax, eax
push ebp
push 0x457144
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x458040
push 0x458068
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00401c60
mov dword [ebp - 8], eax
push 0x104
lea eax, [ebp - 0x236]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.0042c734
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__EnsureUnicodeString_qqrr20System_UnicodeString
movzx eax, byte [eax]
mov ebx, dword [0x5a7a58]
mov ebx, dword [ebx]
call ebx
mov ebx, eax
mov esi, dword [0x5a7a58]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x4570fc
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromChar_qqrr27System__AnsiStringT_us_i0__cus
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.0045675c
pop ecx
push dword [ebp - 0x4fc]
push 0x458090
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromChar_qqrr27System__AnsiStringT_us_i0__cus
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.0045675c
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4f8]
mov eax, 0x4580a0
call fcn.004568f0
pop ecx
jmp 0x45713a
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromChar_qqrr27System__AnsiStringT_us_i0__cus
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.0045675c
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x4580a0
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45714e
xor eax, eax
push ebp
push 0x457183
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.00455d8c
mov edx, dword [ebp - 0x514]
mov eax, 0x4580cc
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45718d
xor eax, eax
push ebp
push 0x4571d1
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x518]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cx, 0x30
mov edx, 1
call fcn.00405a30
mov edx, dword [ebp - 0x518]
mov eax, 0x4580f4
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4571db
xor eax, eax
push ebp
push 0x457210
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.00455f74
mov edx, dword [ebp - 0x51c]
mov eax, 0x458118
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45721a
xor eax, eax
push ebp
push 0x45724f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.00455f98
mov edx, dword [ebp - 0x520]
mov eax, 0x458148
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457259
xor eax, eax
push ebp
push 0x4572ef
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x597d7c], 0
je 0x4572e5
call sub.rtl120.bpl__System_ParamCount_qqrv
test eax, eax
jle 0x4572e5
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x4572ab
push ebp
call sub.kernel32.dll_GetCommandLineW
mov edx, eax
lea eax, [ebp - 0x524]
call sub.rtl120.bpl__System__UStrFromPWChar_qqrr20System_UnicodeStringpb
mov edx, dword [ebp - 0x524]
mov eax, 0x45817c
call fcn.004568f0
pop ecx
jmp 0x4572e5
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x528]
mov eax, 0x45817c
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4572f9
xor eax, eax
push ebp
push 0x457341
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.0042c734
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.004070ec
mov edx, dword [ebp - 0x530]
mov eax, 0x4581a4
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45734b
xor eax, eax
push ebp
push 0x4573a5
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x597e98]
je 0x45739b
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x597e98]
call fcn.0042c734
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.004070ec
mov edx, dword [ebp - 0x538]
mov eax, 0x4581c8
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4573af
xor edx, edx
push ebp
push 0x457627
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x597ea4], 0
je 0x4573d2
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.0042c734
jmp 0x4573df
lea edx, [ebp - 0x10]
mov eax, dword [0x597e98]
call fcn.0042c734
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x457402
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_FindFirstFileW
jmp 0x45742d
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x540]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x45761d
push eax
call sub.kernel32.dll_FindClose
xor eax, eax
push ebp
push 0x4575a9
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x474]
push eax
lea eax, [ebp - 0x474]
push eax
call sub.kernel32.dll_FileTimeToLocalFileTime
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x474]
push eax
call sub.kernel32.dll_FileTimeToSystemTime
cmp byte [0x597ea4], 0
jne 0x457488
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x597e98]
jne 0x457497
lea eax, [ebp - 0x14]
mov edx, 0x4581f4
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x4574a4
lea eax, [ebp - 0x14]
mov edx, 0x45820c
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call fcn.004059a0
push dword [ebp - 0x548]
push 0x457cb8
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x54c]
push 0x457cb8
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x550]
push 0x458090
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x554]
push 0x457cdc
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.004059a0
push dword [ebp - 0x558]
push 0x458228
lea eax, [ebp - 0x544]
mov edx, 0xa
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x45823c
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4575b3
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.00437ec0
cmp dword [ebp - 0x560], 0
jne 0x4575fd
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.004115b0
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
cmp dword [ebp - 0x10], 0
je 0x45761d
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x458260
call fcn.004568f0
pop ecx
jmp 0x45761d
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.00437ec0
mov edx, dword [ebp - 0x568]
mov eax, 0x458260
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457631
xor eax, eax
push ebp
push 0x45768e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x458270
call sub.kernel32.dll_GetModuleHandleW_1
mov ebx, eax
test ebx, ebx
je 0x457684
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.0042c734
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x5a754c]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x457684
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x458294
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457698
xor eax, eax
push ebp
push 0x457750
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4576f2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x597e98]
call fcn.0041233c
cmp byte [eax + 0x1a], 2
je 0x4576d7
push ebp
mov edx, 0x4582b8
mov eax, 0x4582d8
call fcn.004568f0
pop ecx
jmp 0x4576e8
push ebp
mov edx, 0x458300
mov eax, 0x4582d8
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45770d
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x597d6c]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x570]
mov eax, 0x458324
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45775a
lea ecx, [ebp - 0x14]
mov edx, 0x458354
mov eax, dword [ebp - 0x1c]
call fcn.0043a2d0
mov ebx, dword [0x5a799c]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x457933
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x45791d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x5a7ab0]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x5a9194]
call sub.rtl120.bpl__System__DynArrayHigh_qqrv
mov ebx, eax
test ebx, ebx
jl 0x457913
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 [0x5a9194]
mov eax, dword [eax + esi*4]
mov edi, dword [0x5a728c]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x457909
mov eax, dword [0x5a9194]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x457913
mov eax, dword [0x5a9194]
cmp dword [eax + esi*4 + 8], 0
je 0x45784d
push ebp
mov eax, dword [0x5a9194]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x578]
mov eax, dword [0x5a9194]
mov eax, dword [eax + esi*4]
call fcn.004568f0
pop ecx
jmp 0x457913
mov eax, dword [0x5a9194]
cmp dword [eax + esi*4 + 0xc], 0
je 0x457884
push ebp
mov eax, dword [0x5a9194]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x5a9194]
mov eax, dword [eax + esi*4]
call fcn.004568f0
pop ecx
jmp 0x457913
mov eax, dword [0x5a9194]
cmp dword [eax + esi*4 + 0x10], 0
je 0x4578d5
push ebp
mov eax, dword [0x5a9194]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4578ac
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov edx, dword [ebp - 0x584]
mov eax, dword [0x5a9194]
mov eax, dword [eax + esi*4]
call fcn.004568f0
pop ecx
jmp 0x457913
push ebp
mov eax, dword [0x5a9194]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4578f1
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x5a9194]
mov eax, dword [eax + esi*4]
call fcn.004568f0
pop ecx
jmp 0x457913
inc dword [ebp - 0x28]
dec ebx
jne 0x4577cb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457927
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x45778b
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x457963
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x458368
mov eax, 0x4583a4
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45796d
xor eax, eax
push ebp
push 0x4579c5
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x598808], 1
adc dword [0x59880c], 0
push ebp
push dword [0x59880c]
push dword [0x598808]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.004059ec
mov edx, dword [ebp - 0x590]
mov eax, 0x4583cc
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4579cf
xor eax, eax
push ebp
push 0x457ac2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x457a98
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.00456560
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.004564c0
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x4583fc
call fcn.004568f0
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System__UStrEqual_qqrv
je 0x457ab8
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.0042f960
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
push 0
mov ebx, dword [0x5a7660]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x458090
mov edx, 0x458428
call ebx
push 0
mov ebx, dword [0x5a7660]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x458090
mov edx, 0x458438
call ebx
push 1
mov ebx, dword [0x5a7660]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x458090
mov edx, 0x458448
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45845c
call fcn.004568f0
pop ecx
jmp 0x457ab8
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.00437f34
mov edx, dword [ebp - 0x598]
mov eax, 0x45845c
call fcn.004568f0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457acc
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x457b49
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x457b18
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 0x457af5
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x457c9c
call sub.rtl120.bpl__System__IntfCast_qqrr45System__DelphiInterface_t17System_IInterface_x45System__DelphiInterface_t17System_IInte
mov eax, dword [ebp - 0x59c]
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 0x457b53
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 0x457c95
lea eax, [ebp - 0x59c]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x598]
mov edx, 4
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x588]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x584]
mov edx, 2
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x57c]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x578]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x574]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x570]
mov edx, 0xc
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x540]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x53c]
mov edx, 4
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x52c]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x528]
mov edx, 6
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x510]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x50c]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x508]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x504]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x500]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x49c]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x18]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x14]
mov edx, 2
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 4]
mov edx, dword [0x456728]
call sub.rtl120.bpl__System__DynArrayClear_qqrrpvpv
ret