Function at 0x456974
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 0x45697c
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x457c6b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1a0], 0
jne 0x4569d0
mov dl, 1
mov eax, dword [0x4336d8]
call fcn.0043b8e8
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 0x4569cb
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 0x457b3b
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x457b3b
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, 0x457c7c
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 0x456ba0
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.00405988
push dword [ebp - 0x4a4]
push 0x457c98
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x226]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x4a8]
push 0x457c98
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22a]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x4ac]
push 0x457ca8
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22c]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x4b0]
push 0x457cbc
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22e]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x4b4]
push 0x457cbc
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x230]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x4b8]
push 0x457ca8
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x232]
mov cx, 0x30
mov edx, 1
call fcn.00405988
push dword [ebp - 0x4bc]
push 0x457ccc
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4a0]
mov eax, 0x457ce0
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456baa
xor eax, eax
push ebp
push 0x456bdf
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.0042cf00
mov edx, dword [ebp - 0x4c0]
mov eax, 0x457d00
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456be9
xor eax, eax
push ebp
push 0x456c1e
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.0045521c
mov edx, dword [ebp - 0x4c4]
mov eax, 0x457d28
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456c28
xor eax, eax
push ebp
push 0x456cc7
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x456c6e
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 0x456c98
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.0045515c
test al, al
je 0x456cae
lea eax, [ebp - 0x10]
mov edx, 0x457d54
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x457d74
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456cd1
xor eax, eax
push ebp
push 0x456db8
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x456cfa
lea eax, [ebp - 0x10]
mov edx, 0x457d94
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x456d04
lea eax, [ebp - 0x10]
xor edx, edx
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
lea eax, [ebp - 0x14]
push eax
push 0x457da8
push dword [ebp - 0x10]
push 0x457dec
lea eax, [ebp - 0x4cc]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x457e18
mov eax, 0x80000002
call fcn.0042cfb4
lea eax, [ebp - 0x4d0]
push eax
push 0x457da8
push dword [ebp - 0x10]
push 0x457dec
lea eax, [ebp - 0x4d4]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x457e54
mov eax, 0x80000002
call fcn.0042cfb4
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
cmp dword [ebp - 0x14], 0
je 0x456d9f
push dword [ebp - 0x10]
push 0x457e80
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, 0x457e94
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456dc2
xor eax, eax
push ebp
push 0x456df7
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.004555d8
mov edx, dword [ebp - 0x4d8]
mov eax, 0x457ec4
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456e01
xor eax, eax
push ebp
push 0x456e36
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.00455690
mov edx, dword [ebp - 0x4dc]
mov eax, 0x457ef4
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456e40
xor eax, eax
push ebp
push 0x456e75
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.00455764
mov edx, dword [ebp - 0x4e0]
mov eax, 0x457f20
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456e7f
xor eax, eax
push ebp
push 0x456eb4
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.004557c0
mov edx, dword [ebp - 0x4e4]
mov eax, 0x457f4c
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456ebe
xor eax, eax
push ebp
push 0x456f4b
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.004558d4
cmp dword [ebp - 0x10], 0
je 0x456f41
call fcn.004559d8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x456ef9
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x457f78
call fcn.004568d0
pop ecx
jmp 0x456f41
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040588c
push dword [ebp - 0x4ec]
push 0x457f98
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, 0x457fac
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456f55
xor eax, eax
push ebp
push 0x456f8a
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.00455b0c
mov edx, dword [ebp - 0x4f0]
mov eax, 0x457fd0
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456f94
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
je 0x456fdf
xor eax, eax
push ebp
push 0x456fd5
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.00455ca0
mov edx, dword [ebp - 0x4f4]
mov eax, 0x457ffc
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456fdf
xor eax, eax
push ebp
push 0x457124
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x458020
push 0x458048
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00401c48
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.0042c714
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__EnsureUnicodeString_qqrr20System_UnicodeString
movzx eax, byte [eax]
mov ebx, dword [0x59edfc]
mov ebx, dword [ebx]
call ebx
mov ebx, eax
mov esi, dword [0x59edfc]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x4570dc
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.0045673c
pop ecx
push dword [ebp - 0x4fc]
push 0x458070
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.0045673c
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, 0x458080
call fcn.004568d0
pop ecx
jmp 0x45711a
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.0045673c
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x458080
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45712e
xor eax, eax
push ebp
push 0x457163
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.00455d6c
mov edx, dword [ebp - 0x514]
mov eax, 0x4580ac
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45716d
xor eax, eax
push ebp
push 0x4571b1
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.00405a18
mov edx, dword [ebp - 0x518]
mov eax, 0x4580d4
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4571bb
xor eax, eax
push ebp
push 0x4571f0
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.00455f54
mov edx, dword [ebp - 0x51c]
mov eax, 0x4580f8
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4571fa
xor eax, eax
push ebp
push 0x45722f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.00455f78
mov edx, dword [ebp - 0x520]
mov eax, 0x458128
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457239
xor eax, eax
push ebp
push 0x4572cf
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x58ed7c], 0
je 0x4572c5
call sub.rtl120.bpl__System_ParamCount_qqrv
test eax, eax
jle 0x4572c5
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x45728b
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, 0x45815c
call fcn.004568d0
pop ecx
jmp 0x4572c5
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, 0x45815c
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4572d9
xor eax, eax
push ebp
push 0x457321
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.0042c714
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.004070d4
mov edx, dword [ebp - 0x530]
mov eax, 0x458184
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45732b
xor eax, eax
push ebp
push 0x457385
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x58ee98]
je 0x45737b
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x58ee98]
call fcn.0042c714
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.004070d4
mov edx, dword [ebp - 0x538]
mov eax, 0x4581a8
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45738f
xor edx, edx
push ebp
push 0x457607
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x58eea4], 0
je 0x4573b2
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.0042c714
jmp 0x4573bf
lea edx, [ebp - 0x10]
mov eax, dword [0x58ee98]
call fcn.0042c714
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x4573e2
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 0x45740d
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 0x4575fd
push eax
call sub.kernel32.dll_FindClose
xor eax, eax
push ebp
push 0x457589
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 [0x58eea4], 0
jne 0x457468
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x58ee98]
jne 0x457477
lea eax, [ebp - 0x14]
mov edx, 0x4581d4
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x457484
lea eax, [ebp - 0x14]
mov edx, 0x4581ec
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.00405988
push dword [ebp - 0x548]
push 0x457c98
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x54c]
push 0x457c98
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x550]
push 0x458070
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x554]
push 0x457cbc
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.00405988
push dword [ebp - 0x558]
push 0x458208
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, 0x45821c
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457593
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.00437ea0
cmp dword [ebp - 0x560], 0
jne 0x4575dd
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.00411598
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
cmp dword [ebp - 0x10], 0
je 0x4575fd
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x458240
call fcn.004568d0
pop ecx
jmp 0x4575fd
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.00437ea0
mov edx, dword [ebp - 0x568]
mov eax, 0x458240
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457611
xor eax, eax
push ebp
push 0x45766e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x458250
call sub.kernel32.dll_GetModuleHandleW_1
mov ebx, eax
test ebx, ebx
je 0x457664
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.0042c714
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x59e8f0]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x457664
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x458274
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457678
xor eax, eax
push ebp
push 0x457730
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4576d2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x58ee98]
call fcn.00412324
cmp byte [eax + 0x1a], 2
je 0x4576b7
push ebp
mov edx, 0x458298
mov eax, 0x4582b8
call fcn.004568d0
pop ecx
jmp 0x4576c8
push ebp
mov edx, 0x4582e0
mov eax, 0x4582b8
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4576ed
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x58ed6c]
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, 0x458304
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45773a
lea ecx, [ebp - 0x14]
mov edx, 0x458334
mov eax, dword [ebp - 0x1c]
call fcn.0043a2b0
mov ebx, dword [0x59ed40]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x457913
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x4578fd
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x59ee54]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x5a0194]
call sub.rtl120.bpl__System__DynArrayHigh_qqrv
mov ebx, eax
test ebx, ebx
jl 0x4578f3
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 [0x5a0194]
mov eax, dword [eax + esi*4]
mov edi, dword [0x59e630]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x4578e9
mov eax, dword [0x5a0194]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x4578f3
mov eax, dword [0x5a0194]
cmp dword [eax + esi*4 + 8], 0
je 0x45782d
push ebp
mov eax, dword [0x5a0194]
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 [0x5a0194]
mov eax, dword [eax + esi*4]
call fcn.004568d0
pop ecx
jmp 0x4578f3
mov eax, dword [0x5a0194]
cmp dword [eax + esi*4 + 0xc], 0
je 0x457864
push ebp
mov eax, dword [0x5a0194]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x5a0194]
mov eax, dword [eax + esi*4]
call fcn.004568d0
pop ecx
jmp 0x4578f3
mov eax, dword [0x5a0194]
cmp dword [eax + esi*4 + 0x10], 0
je 0x4578b5
push ebp
mov eax, dword [0x5a0194]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45788c
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 [0x5a0194]
mov eax, dword [eax + esi*4]
call fcn.004568d0
pop ecx
jmp 0x4578f3
push ebp
mov eax, dword [0x5a0194]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4578d1
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x5a0194]
mov eax, dword [eax + esi*4]
call fcn.004568d0
pop ecx
jmp 0x4578f3
inc dword [ebp - 0x28]
dec ebx
jne 0x4577ab
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457907
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x45776b
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x457943
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x458348
mov eax, 0x458384
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45794d
xor eax, eax
push ebp
push 0x4579a5
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x58f808], 1
adc dword [0x58f80c], 0
push ebp
push dword [0x58f80c]
push dword [0x58f808]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.004059d4
mov edx, dword [ebp - 0x590]
mov eax, 0x4583ac
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4579af
xor eax, eax
push ebp
push 0x457aa2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x457a78
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.00456540
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.004564a0
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x4583dc
call fcn.004568d0
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call sub.rtl120.bpl__System__UStrEqual_qqrv
je 0x457a98
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.0042f940
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrLAsg_qqrr20System_UnicodeStringx20System_UnicodeString
push 0
mov ebx, dword [0x59ea04]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x458070
mov edx, 0x458408
call ebx
push 0
mov ebx, dword [0x59ea04]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x458070
mov edx, 0x458418
call ebx
push 1
mov ebx, dword [0x59ea04]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x458070
mov edx, 0x458428
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45843c
call fcn.004568d0
pop ecx
jmp 0x457a98
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.00437f14
mov edx, dword [ebp - 0x598]
mov eax, 0x45843c
call fcn.004568d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x457aac
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x457b29
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x457af8
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 0x457ad5
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x457c7c
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 0x457b33
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 0x457c75
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 [0x456708]
call sub.rtl120.bpl__System__DynArrayClear_qqrrpvpv
ret