Function at 0x45dff4
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 0x45dffc
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x45f2eb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1a0], 0
jne 0x45e050
mov dl, 1
mov eax, dword [0x43ae60]
call fcn.00443070
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 0x45e04b
sub edx, 0xffffffc0
call fcn.0040807c
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.0040807c
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x1c4], 0
je 0x45f1bb
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x45f1bb
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.0040807c
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x45f2fc
call fcn.004080a8
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 0x45e220
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.0040ce24
push dword [ebp - 0x4a4]
push 0x45f318
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x226]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x4a8]
push 0x45f318
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22a]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x4ac]
push 0x45f328
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22c]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x4b0]
push 0x45f33c
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22e]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x4b4]
push 0x45f33c
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x230]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x4b8]
push 0x45f328
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x232]
mov cx, 0x30
mov edx, 1
call fcn.0040ce24
push dword [ebp - 0x4bc]
push 0x45f34c
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call fcn.00406664
mov edx, dword [ebp - 0x4a0]
mov eax, 0x45f360
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e22a
xor eax, eax
push ebp
push 0x45e25f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.00434688
mov edx, dword [ebp - 0x4c0]
mov eax, 0x45f380
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e269
xor eax, eax
push ebp
push 0x45e29e
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.0045c89c
mov edx, dword [ebp - 0x4c4]
mov eax, 0x45f3a8
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e2a8
xor eax, eax
push ebp
push 0x45e347
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45e2ee
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 fcn.004063c0
jmp 0x45e318
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 fcn.004063dc
call fcn.0045c7dc
test al, al
je 0x45e32e
lea eax, [ebp - 0x10]
mov edx, 0x45f3d4
call fcn.00406514
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f3f4
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e351
xor eax, eax
push ebp
push 0x45e438
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45e37a
lea eax, [ebp - 0x10]
mov edx, 0x45f414
call fcn.00406214
jmp 0x45e384
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.00406214
lea eax, [ebp - 0x14]
push eax
push 0x45f428
push dword [ebp - 0x10]
push 0x45f46c
lea eax, [ebp - 0x4cc]
mov edx, 3
call fcn.00406664
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x45f498
mov eax, 0x80000002
call fcn.0043473c
lea eax, [ebp - 0x4d0]
push eax
push 0x45f428
push dword [ebp - 0x10]
push 0x45f46c
lea eax, [ebp - 0x4d4]
mov edx, 3
call fcn.00406664
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x45f4d4
mov eax, 0x80000002
call fcn.0043473c
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call fcn.00406214
cmp dword [ebp - 0x14], 0
je 0x45e41f
push dword [ebp - 0x10]
push 0x45f500
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00406664
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f514
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e442
xor eax, eax
push ebp
push 0x45e477
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.0045cc58
mov edx, dword [ebp - 0x4d8]
mov eax, 0x45f544
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e481
xor eax, eax
push ebp
push 0x45e4b6
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.0045cd10
mov edx, dword [ebp - 0x4dc]
mov eax, 0x45f574
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e4c0
xor eax, eax
push ebp
push 0x45e4f5
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.0045cde4
mov edx, dword [ebp - 0x4e0]
mov eax, 0x45f5a0
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e4ff
xor eax, eax
push ebp
push 0x45e534
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.0045ce40
mov edx, dword [ebp - 0x4e4]
mov eax, 0x45f5cc
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e53e
xor eax, eax
push ebp
push 0x45e5cb
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.0045cf54
cmp dword [ebp - 0x10], 0
je 0x45e5c1
call fcn.0045d058
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x45e579
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f5f8
call fcn.0045df50
pop ecx
jmp 0x45e5c1
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040cd28
push dword [ebp - 0x4ec]
push 0x45f618
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call fcn.00406664
mov edx, dword [ebp - 0x4e8]
mov eax, 0x45f62c
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e5d5
xor eax, eax
push ebp
push 0x45e60a
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.0045d18c
mov edx, dword [ebp - 0x4f0]
mov eax, 0x45f650
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e614
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
je 0x45e65f
xor eax, eax
push ebp
push 0x45e655
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.0045d320
mov edx, dword [ebp - 0x4f4]
mov eax, 0x45f67c
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e65f
xor eax, eax
push ebp
push 0x45e7a4
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45f6a0
push 0x45f6c8
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00409134
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.00433e9c
lea eax, [ebp - 0x10]
call fcn.004056e0
movzx eax, byte [eax]
mov ebx, dword [0x52a330]
mov ebx, dword [ebx]
call ebx
mov ebx, eax
mov esi, dword [0x52a330]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x45e75c
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.004057a4
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.0045ddbc
pop ecx
push dword [ebp - 0x4fc]
push 0x45f6f0
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call fcn.004057a4
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.0045ddbc
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call fcn.00406664
mov edx, dword [ebp - 0x4f8]
mov eax, 0x45f700
call fcn.0045df50
pop ecx
jmp 0x45e79a
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.004057a4
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.0045ddbc
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x45f700
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e7ae
xor eax, eax
push ebp
push 0x45e7e3
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.0045d3ec
mov edx, dword [ebp - 0x514]
mov eax, 0x45f72c
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e7ed
xor eax, eax
push ebp
push 0x45e831
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.0040ceb4
mov edx, dword [ebp - 0x518]
mov eax, 0x45f754
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e83b
xor eax, eax
push ebp
push 0x45e870
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.0045d5d4
mov edx, dword [ebp - 0x51c]
mov eax, 0x45f778
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e87a
xor eax, eax
push ebp
push 0x45e8af
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.0045d5f8
mov edx, dword [ebp - 0x520]
mov eax, 0x45f7a8
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e8b9
xor eax, eax
push ebp
push 0x45e94f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x524548], 0
je 0x45e945
call fcn.00403404
test eax, eax
jle 0x45e945
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45e90b
push ebp
call sub.kernel32.dll_GetCommandLineW_1
mov edx, eax
lea eax, [ebp - 0x524]
call fcn.0040636c
mov edx, dword [ebp - 0x524]
mov eax, 0x45f7dc
call fcn.0045df50
pop ecx
jmp 0x45e945
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call fcn.004057b4
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call fcn.004063dc
mov edx, dword [ebp - 0x528]
mov eax, 0x45f7dc
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e959
xor eax, eax
push ebp
push 0x45e9a1
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.00433e9c
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.0040e570
mov edx, dword [ebp - 0x530]
mov eax, 0x45f804
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e9ab
xor eax, eax
push ebp
push 0x45ea05
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x524664]
je 0x45e9fb
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x524664]
call fcn.00433e9c
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.0040e570
mov edx, dword [ebp - 0x538]
mov eax, 0x45f828
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ea0f
xor edx, edx
push ebp
push 0x45ec87
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x524670], 0
je 0x45ea32
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00433e9c
jmp 0x45ea3f
lea edx, [ebp - 0x10]
mov eax, dword [0x524664]
call fcn.00433e9c
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45ea62
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call fcn.0040624c
push eax
call sub.kernel32.dll_FindFirstFileW_1
jmp 0x45ea8d
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call fcn.00406404
mov eax, dword [ebp - 0x540]
call fcn.00405bbc
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x45ec7d
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
push ebp
push 0x45ec09
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 [0x524670], 0
jne 0x45eae8
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x524664]
jne 0x45eaf7
lea eax, [ebp - 0x14]
mov edx, 0x45f854
call fcn.00406214
jmp 0x45eb04
lea eax, [ebp - 0x14]
mov edx, 0x45f86c
call fcn.00406214
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call fcn.0040ce24
push dword [ebp - 0x548]
push 0x45f318
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x54c]
push 0x45f318
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x550]
push 0x45f6f0
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x554]
push 0x45f33c
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.0040ce24
push dword [ebp - 0x558]
push 0x45f888
lea eax, [ebp - 0x544]
mov edx, 0xa
call fcn.00406664
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x45f89c
mov edx, dword [ebp - 0x14]
call fcn.00406594
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ec13
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.0043f628
cmp dword [ebp - 0x560], 0
jne 0x45ec5d
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.00418a34
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call fcn.00406214
cmp dword [ebp - 0x10], 0
je 0x45ec7d
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f8c0
call fcn.0045df50
pop ecx
jmp 0x45ec7d
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.0043f628
mov edx, dword [ebp - 0x568]
mov eax, 0x45f8c0
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ec91
xor eax, eax
push ebp
push 0x45ecee
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45f8d0
call sub.kernel32.dll_GetModuleHandleW_1
mov ebx, eax
test ebx, ebx
je 0x45ece4
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.00433e9c
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x529eb0]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x45ece4
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f8f4
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ecf8
xor eax, eax
push ebp
push 0x45edb0
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x45ed52
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x524664]
call fcn.004197c0
cmp byte [eax + 0x1a], 2
je 0x45ed37
push ebp
mov edx, 0x45f918
mov eax, 0x45f938
call fcn.0045df50
pop ecx
jmp 0x45ed48
push ebp
mov edx, 0x45f960
mov eax, 0x45f938
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ed6d
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x524538]
mov ecx, 0
call fcn.004057b4
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call fcn.004063dc
mov edx, dword [ebp - 0x570]
mov eax, 0x45f984
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45edba
lea ecx, [ebp - 0x14]
mov edx, 0x45f9b4
mov eax, dword [ebp - 0x1c]
call fcn.00441a38
mov ebx, dword [0x52a27c]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x45ef93
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x45ef7d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x52a390]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x52ecac]
call fcn.004075a8
mov ebx, eax
test ebx, ebx
jl 0x45ef73
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 [0x52ecac]
mov eax, dword [eax + esi*4]
mov edi, dword [0x529b90]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x45ef69
mov eax, dword [0x52ecac]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x45ef73
mov eax, dword [0x52ecac]
cmp dword [eax + esi*4 + 8], 0
je 0x45eead
push ebp
mov eax, dword [0x52ecac]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call fcn.004063dc
mov edx, dword [ebp - 0x578]
mov eax, dword [0x52ecac]
mov eax, dword [eax + esi*4]
call fcn.0045df50
pop ecx
jmp 0x45ef73
mov eax, dword [0x52ecac]
cmp dword [eax + esi*4 + 0xc], 0
je 0x45eee4
push ebp
mov eax, dword [0x52ecac]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x52ecac]
mov eax, dword [eax + esi*4]
call fcn.0045df50
pop ecx
jmp 0x45ef73
mov eax, dword [0x52ecac]
cmp dword [eax + esi*4 + 0x10], 0
je 0x45ef35
push ebp
mov eax, dword [0x52ecac]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45ef0c
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call fcn.004063dc
mov edx, dword [ebp - 0x584]
mov eax, dword [0x52ecac]
mov eax, dword [eax + esi*4]
call fcn.0045df50
pop ecx
jmp 0x45ef73
push ebp
mov eax, dword [0x52ecac]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45ef51
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x52ecac]
mov eax, dword [eax + esi*4]
call fcn.0045df50
pop ecx
jmp 0x45ef73
inc dword [ebp - 0x28]
dec ebx
jne 0x45ee2b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ef87
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x45edeb
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x45efc3
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x45f9c8
mov eax, 0x45fa04
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45efcd
xor eax, eax
push ebp
push 0x45f025
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x524fd4], 1
adc dword [0x524fd8], 0
push ebp
push dword [0x524fd8]
push dword [0x524fd4]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.0040ce70
mov edx, dword [ebp - 0x590]
mov eax, 0x45fa2c
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f02f
xor eax, eax
push ebp
push 0x45f122
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x45f0f8
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.0045dbc0
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.0045db20
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x45fa5c
call fcn.0045df50
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.0040680c
je 0x45f118
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.004370c8
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call fcn.00406214
push 0
mov ebx, dword [0x529fa0]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x45f6f0
mov edx, 0x45fa88
call ebx
push 0
mov ebx, dword [0x529fa0]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x45f6f0
mov edx, 0x45fa98
call ebx
push 1
mov ebx, dword [0x529fa0]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x45f6f0
mov edx, 0x45faa8
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45fabc
call fcn.0045df50
pop ecx
jmp 0x45f118
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.0043f69c
mov edx, dword [ebp - 0x598]
mov eax, 0x45fabc
call fcn.0045df50
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f12c
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x45f1a9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x45f178
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 0x45f155
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x45f2fc
call fcn.004080a8
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 0x45f1b3
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 0x45f2f5
lea eax, [ebp - 0x59c]
call fcn.00408064
lea eax, [ebp - 0x598]
mov edx, 4
call fcn.004061b8
lea eax, [ebp - 0x588]
call fcn.00405500
lea eax, [ebp - 0x584]
mov edx, 2
call fcn.004061b8
lea eax, [ebp - 0x57c]
call fcn.00405500
lea eax, [ebp - 0x578]
call fcn.004061b0
lea eax, [ebp - 0x574]
call fcn.00405500
lea eax, [ebp - 0x570]
mov edx, 0xc
call fcn.004061b8
lea eax, [ebp - 0x540]
call fcn.00405500
lea eax, [ebp - 0x53c]
mov edx, 4
call fcn.004061b8
lea eax, [ebp - 0x52c]
call fcn.00405500
lea eax, [ebp - 0x528]
mov edx, 6
call fcn.004061b8
lea eax, [ebp - 0x510]
call fcn.00405500
lea eax, [ebp - 0x50c]
call fcn.004061b0
lea eax, [ebp - 0x508]
call fcn.00405500
lea eax, [ebp - 0x504]
call fcn.004061b0
lea eax, [ebp - 0x500]
call fcn.00405500
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call fcn.004061b8
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call fcn.004061b8
lea eax, [ebp - 0x49c]
call fcn.00408064
lea eax, [ebp - 0x18]
call fcn.00408064
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004061b8
lea eax, [ebp - 4]
mov edx, dword [0x45dd88]
call fcn.00407888
ret