Function at 0x45e374
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 0x45e37c
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x45f66b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1a0], 0
jne 0x45e3d0
mov dl, 1
mov eax, dword [0x43b0d8]
call fcn.004432e8
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 0x45e3cb
sub edx, 0xffffffc0
call fcn.00408310
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.00408310
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x1c4], 0
je 0x45f53b
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x45f53b
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.00408310
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x45f67c
call fcn.0040833c
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 0x45e5a0
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.0040cfb4
push dword [ebp - 0x4a4]
push 0x45f698
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x226]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x4a8]
push 0x45f698
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22a]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x4ac]
push 0x45f6a8
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22c]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x4b0]
push 0x45f6bc
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22e]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x4b4]
push 0x45f6bc
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x230]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x4b8]
push 0x45f6a8
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x232]
mov cx, 0x30
mov edx, 1
call fcn.0040cfb4
push dword [ebp - 0x4bc]
push 0x45f6cc
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call fcn.00406760
mov edx, dword [ebp - 0x4a0]
mov eax, 0x45f6e0
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e5aa
xor eax, eax
push ebp
push 0x45e5df
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.00434900
mov edx, dword [ebp - 0x4c0]
mov eax, 0x45f700
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e5e9
xor eax, eax
push ebp
push 0x45e61e
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.0045cc1c
mov edx, dword [ebp - 0x4c4]
mov eax, 0x45f728
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e628
xor eax, eax
push ebp
push 0x45e6c7
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45e66e
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.004064bc
jmp 0x45e698
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.004064d8
call fcn.0045cb5c
test al, al
je 0x45e6ae
lea eax, [ebp - 0x10]
mov edx, 0x45f754
call fcn.00406610
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f774
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e6d1
xor eax, eax
push ebp
push 0x45e7b8
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45e6fa
lea eax, [ebp - 0x10]
mov edx, 0x45f794
call fcn.00406310
jmp 0x45e704
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.00406310
lea eax, [ebp - 0x14]
push eax
push 0x45f7a8
push dword [ebp - 0x10]
push 0x45f7ec
lea eax, [ebp - 0x4cc]
mov edx, 3
call fcn.00406760
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x45f818
mov eax, 0x80000002
call fcn.004349b4
lea eax, [ebp - 0x4d0]
push eax
push 0x45f7a8
push dword [ebp - 0x10]
push 0x45f7ec
lea eax, [ebp - 0x4d4]
mov edx, 3
call fcn.00406760
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x45f854
mov eax, 0x80000002
call fcn.004349b4
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call fcn.00406310
cmp dword [ebp - 0x14], 0
je 0x45e79f
push dword [ebp - 0x10]
push 0x45f880
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00406760
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f894
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e7c2
xor eax, eax
push ebp
push 0x45e7f7
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.0045cfd8
mov edx, dword [ebp - 0x4d8]
mov eax, 0x45f8c4
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e801
xor eax, eax
push ebp
push 0x45e836
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.0045d090
mov edx, dword [ebp - 0x4dc]
mov eax, 0x45f8f4
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e840
xor eax, eax
push ebp
push 0x45e875
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.0045d164
mov edx, dword [ebp - 0x4e0]
mov eax, 0x45f920
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e87f
xor eax, eax
push ebp
push 0x45e8b4
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.0045d1c0
mov edx, dword [ebp - 0x4e4]
mov eax, 0x45f94c
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e8be
xor eax, eax
push ebp
push 0x45e94b
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.0045d2d4
cmp dword [ebp - 0x10], 0
je 0x45e941
call fcn.0045d3d8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x45e8f9
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45f978
call fcn.0045e2d0
pop ecx
jmp 0x45e941
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040ceb8
push dword [ebp - 0x4ec]
push 0x45f998
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call fcn.00406760
mov edx, dword [ebp - 0x4e8]
mov eax, 0x45f9ac
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e955
xor eax, eax
push ebp
push 0x45e98a
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.0045d50c
mov edx, dword [ebp - 0x4f0]
mov eax, 0x45f9d0
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e994
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
je 0x45e9df
xor eax, eax
push ebp
push 0x45e9d5
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.0045d6a0
mov edx, dword [ebp - 0x4f4]
mov eax, 0x45f9fc
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e9df
xor eax, eax
push ebp
push 0x45eb24
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45fa20
push 0x45fa48
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.0040929c
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.00434114
lea eax, [ebp - 0x10]
call fcn.0040569c
movzx eax, byte [eax]
mov ebx, dword [0x551344]
mov ebx, dword [ebx]
call ebx
mov ebx, eax
mov esi, dword [0x551344]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x45eadc
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405760
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.0045e13c
pop ecx
push dword [ebp - 0x4fc]
push 0x45fa70
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405760
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.0045e13c
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call fcn.00406760
mov edx, dword [ebp - 0x4f8]
mov eax, 0x45fa80
call fcn.0045e2d0
pop ecx
jmp 0x45eb1a
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405760
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.0045e13c
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x45fa80
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45eb2e
xor eax, eax
push ebp
push 0x45eb63
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.0045d76c
mov edx, dword [ebp - 0x514]
mov eax, 0x45faac
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45eb6d
xor eax, eax
push ebp
push 0x45ebb1
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.0040d044
mov edx, dword [ebp - 0x518]
mov eax, 0x45fad4
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ebbb
xor eax, eax
push ebp
push 0x45ebf0
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.0045d954
mov edx, dword [ebp - 0x51c]
mov eax, 0x45faf8
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ebfa
xor eax, eax
push ebp
push 0x45ec2f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.0045d978
mov edx, dword [ebp - 0x520]
mov eax, 0x45fb28
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ec39
xor eax, eax
push ebp
push 0x45eccf
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x549548], 0
je 0x45ecc5
call fcn.004033ec
test eax, eax
jle 0x45ecc5
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45ec8b
push ebp
call sub.kernel32.dll_GetCommandLineW_1
mov edx, eax
lea eax, [ebp - 0x524]
call fcn.00406468
mov edx, dword [ebp - 0x524]
mov eax, 0x45fb5c
call fcn.0045e2d0
pop ecx
jmp 0x45ecc5
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call fcn.00405770
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call fcn.004064d8
mov edx, dword [ebp - 0x528]
mov eax, 0x45fb5c
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ecd9
xor eax, eax
push ebp
push 0x45ed21
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.00434114
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.0040e700
mov edx, dword [ebp - 0x530]
mov eax, 0x45fb84
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ed2b
xor eax, eax
push ebp
push 0x45ed85
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x549664]
je 0x45ed7b
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x549664]
call fcn.00434114
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.0040e700
mov edx, dword [ebp - 0x538]
mov eax, 0x45fba8
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ed8f
xor edx, edx
push ebp
push 0x45f007
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x549670], 0
je 0x45edb2
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00434114
jmp 0x45edbf
lea edx, [ebp - 0x10]
mov eax, dword [0x549664]
call fcn.00434114
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45ede2
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406348
push eax
call sub.kernel32.dll_FindFirstFileW_1
jmp 0x45ee0d
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call fcn.00406500
mov eax, dword [ebp - 0x540]
call fcn.00405b78
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x45effd
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
push ebp
push 0x45ef89
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 [0x549670], 0
jne 0x45ee68
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x549664]
jne 0x45ee77
lea eax, [ebp - 0x14]
mov edx, 0x45fbd4
call fcn.00406310
jmp 0x45ee84
lea eax, [ebp - 0x14]
mov edx, 0x45fbec
call fcn.00406310
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call fcn.0040cfb4
push dword [ebp - 0x548]
push 0x45f698
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x54c]
push 0x45f698
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x550]
push 0x45fa70
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x554]
push 0x45f6bc
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.0040cfb4
push dword [ebp - 0x558]
push 0x45fc08
lea eax, [ebp - 0x544]
mov edx, 0xa
call fcn.00406760
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x45fc1c
mov edx, dword [ebp - 0x14]
call fcn.00406690
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ef93
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.0043f8a0
cmp dword [ebp - 0x560], 0
jne 0x45efdd
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.00418bc4
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call fcn.00406310
cmp dword [ebp - 0x10], 0
je 0x45effd
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45fc40
call fcn.0045e2d0
pop ecx
jmp 0x45effd
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.0043f8a0
mov edx, dword [ebp - 0x568]
mov eax, 0x45fc40
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f011
xor eax, eax
push ebp
push 0x45f06e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45fc50
call sub.kernel32.dll_GetModuleHandleW_2
mov ebx, eax
test ebx, ebx
je 0x45f064
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.00434114
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x550f18]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x45f064
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45fc74
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f078
xor eax, eax
push ebp
push 0x45f130
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x45f0d2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x549664]
call fcn.00419950
cmp byte [eax + 0x1a], 2
je 0x45f0b7
push ebp
mov edx, 0x45fc98
mov eax, 0x45fcb8
call fcn.0045e2d0
pop ecx
jmp 0x45f0c8
push ebp
mov edx, 0x45fce0
mov eax, 0x45fcb8
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f0ed
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x549538]
mov ecx, 0
call fcn.00405770
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call fcn.004064d8
mov edx, dword [ebp - 0x570]
mov eax, 0x45fd04
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f13a
lea ecx, [ebp - 0x14]
mov edx, 0x45fd34
mov eax, dword [ebp - 0x1c]
call fcn.00441cb0
mov ebx, dword [0x5512a0]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x45f313
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x45f2fd
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x5513a8]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x555cb0]
call fcn.0040783c
mov ebx, eax
test ebx, ebx
jl 0x45f2f3
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 [0x555cb0]
mov eax, dword [eax + esi*4]
mov edi, dword [0x550ca4]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x45f2e9
mov eax, dword [0x555cb0]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x45f2f3
mov eax, dword [0x555cb0]
cmp dword [eax + esi*4 + 8], 0
je 0x45f22d
push ebp
mov eax, dword [0x555cb0]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call fcn.004064d8
mov edx, dword [ebp - 0x578]
mov eax, dword [0x555cb0]
mov eax, dword [eax + esi*4]
call fcn.0045e2d0
pop ecx
jmp 0x45f2f3
mov eax, dword [0x555cb0]
cmp dword [eax + esi*4 + 0xc], 0
je 0x45f264
push ebp
mov eax, dword [0x555cb0]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x555cb0]
mov eax, dword [eax + esi*4]
call fcn.0045e2d0
pop ecx
jmp 0x45f2f3
mov eax, dword [0x555cb0]
cmp dword [eax + esi*4 + 0x10], 0
je 0x45f2b5
push ebp
mov eax, dword [0x555cb0]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45f28c
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call fcn.004064d8
mov edx, dword [ebp - 0x584]
mov eax, dword [0x555cb0]
mov eax, dword [eax + esi*4]
call fcn.0045e2d0
pop ecx
jmp 0x45f2f3
push ebp
mov eax, dword [0x555cb0]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45f2d1
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x555cb0]
mov eax, dword [eax + esi*4]
call fcn.0045e2d0
pop ecx
jmp 0x45f2f3
inc dword [ebp - 0x28]
dec ebx
jne 0x45f1ab
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f307
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x45f16b
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x45f343
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x45fd48
mov eax, 0x45fd84
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f34d
xor eax, eax
push ebp
push 0x45f3a5
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x549fd4], 1
adc dword [0x549fd8], 0
push ebp
push dword [0x549fd8]
push dword [0x549fd4]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.0040d000
mov edx, dword [ebp - 0x590]
mov eax, 0x45fdac
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f3af
xor eax, eax
push ebp
push 0x45f4a2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x45f478
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.0045df40
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.0045dea0
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x45fddc
call fcn.0045e2d0
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.00406908
je 0x45f498
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.00437340
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call fcn.00406310
push 0
mov ebx, dword [0x551014]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x45fa70
mov edx, 0x45fe08
call ebx
push 0
mov ebx, dword [0x551014]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x45fa70
mov edx, 0x45fe18
call ebx
push 1
mov ebx, dword [0x551014]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x45fa70
mov edx, 0x45fe28
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45fe3c
call fcn.0045e2d0
pop ecx
jmp 0x45f498
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.0043f914
mov edx, dword [ebp - 0x598]
mov eax, 0x45fe3c
call fcn.0045e2d0
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45f4ac
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x45f529
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x45f4f8
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 0x45f4d5
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x45f67c
call fcn.0040833c
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 0x45f533
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 0x45f675
lea eax, [ebp - 0x59c]
call fcn.004082f8
lea eax, [ebp - 0x598]
mov edx, 4
call fcn.004062b4
lea eax, [ebp - 0x588]
call fcn.004054bc
lea eax, [ebp - 0x584]
mov edx, 2
call fcn.004062b4
lea eax, [ebp - 0x57c]
call fcn.004054bc
lea eax, [ebp - 0x578]
call fcn.004062ac
lea eax, [ebp - 0x574]
call fcn.004054bc
lea eax, [ebp - 0x570]
mov edx, 0xc
call fcn.004062b4
lea eax, [ebp - 0x540]
call fcn.004054bc
lea eax, [ebp - 0x53c]
mov edx, 4
call fcn.004062b4
lea eax, [ebp - 0x52c]
call fcn.004054bc
lea eax, [ebp - 0x528]
mov edx, 6
call fcn.004062b4
lea eax, [ebp - 0x510]
call fcn.004054bc
lea eax, [ebp - 0x50c]
call fcn.004062ac
lea eax, [ebp - 0x508]
call fcn.004054bc
lea eax, [ebp - 0x504]
call fcn.004062ac
lea eax, [ebp - 0x500]
call fcn.004054bc
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call fcn.004062b4
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call fcn.004062b4
lea eax, [ebp - 0x49c]
call fcn.004082f8
lea eax, [ebp - 0x18]
call fcn.004082f8
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004062b4
lea eax, [ebp - 4]
mov edx, dword [0x45e108]
call fcn.00407b1c
ret