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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x72
push 0
push 0
dec ecx
jne 0x45d470
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x45e5a8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x150], 0
jne 0x45d4c3
mov dl, 1
mov eax, dword [0x4448ac]
call fcn.0044cd78
mov ebx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x150
mov edx, ebx
test edx, edx
je 0x45d4be
sub edx, 0xffffffc0
call fcn.00408d2c
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
call fcn.00408d2c
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x174], 0
je 0x45e4fa
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x150]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x45e4fa
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
call fcn.00408d2c
lea eax, [ebp - 0x290]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
mov ecx, 0x45e5bc
call fcn.00408d58
mov eax, dword [ebp - 0x290]
mov edx, dword [eax]
call dword [edx + 0x18]
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x45d685
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x298]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1d4]
mov cl, 0x30
mov edx, 4
call fcn.0041c510
push dword [ebp - 0x298]
push 0x45e5d8
lea eax, [ebp - 0x29c]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1d6]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x29c]
push 0x45e5d8
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1da]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x2a0]
push 0x45e5e8
lea eax, [ebp - 0x2a4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1dc]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x2a4]
push 0x45e5f8
lea eax, [ebp - 0x2a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1de]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x2a8]
push 0x45e5f8
lea eax, [ebp - 0x2ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1e0]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x2ac]
push 0x45e5e8
lea eax, [ebp - 0x2b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1e2]
mov cl, 0x30
mov edx, 1
call fcn.0041c510
push dword [ebp - 0x2b0]
push 0x45e608
lea eax, [ebp - 0x294]
mov edx, 0xe
call fcn.00406270
mov edx, dword [ebp - 0x294]
mov eax, 0x45e618
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d68f
xor eax, eax
push ebp
push 0x45d6c4
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2b4]
call fcn.0043f49c
mov edx, dword [ebp - 0x2b4]
mov eax, 0x45e630
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d6ce
xor eax, eax
push ebp
push 0x45d703
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2b8]
call fcn.0045c098
mov edx, dword [ebp - 0x2b8]
mov eax, 0x45e64c
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d70d
xor eax, eax
push ebp
push 0x45d776
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x139]
push eax
call sub.advapi32.dll_GetUserNameA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x139]
mov ecx, 0x105
push 0
call fcn.00406028
call fcn.0045bfd8
test al, al
je 0x45d75d
lea eax, [ebp - 0x10]
mov edx, 0x45e668
call fcn.004060b8
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45e680
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d780
xor eax, eax
push ebp
push 0x45d865
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.KERNEL32.DLL_GetVersion_1
test eax, 0x80000000
jne 0x45d7a9
lea eax, [ebp - 0x10]
mov edx, 0x45e698
call fcn.00405d8c
jmp 0x45d7b1
lea eax, [ebp - 0x10]
call fcn.00405cdc
lea eax, [ebp - 0x14]
push eax
push 0x45e6a8
push dword [ebp - 0x10]
push 0x45e6d0
lea eax, [ebp - 0x2bc]
mov edx, 3
call fcn.00406270
mov edx, dword [ebp - 0x2bc]
mov ecx, 0x45e6ec
mov eax, 0x80000002
call fcn.0043f4d4
lea eax, [ebp - 0x2c0]
push eax
push 0x45e6a8
push dword [ebp - 0x10]
push 0x45e6d0
lea eax, [ebp - 0x2c4]
mov edx, 3
call fcn.00406270
mov edx, dword [ebp - 0x2c4]
mov ecx, 0x45e710
mov eax, 0x80000002
call fcn.0043f4d4
mov edx, dword [ebp - 0x2c0]
lea eax, [ebp - 0x10]
call fcn.00405d8c
cmp dword [ebp - 0x14], 0
je 0x45d84c
push dword [ebp - 0x10]
push 0x45e72c
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00406270
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45e73c
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d86f
xor eax, eax
push ebp
push 0x45d8a4
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2c8]
call fcn.0045c418
mov edx, dword [ebp - 0x2c8]
mov eax, 0x45e75c
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d8ae
xor eax, eax
push ebp
push 0x45d8e3
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2cc]
call fcn.0045c4c8
mov edx, dword [ebp - 0x2cc]
mov eax, 0x45e77c
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d8ed
xor eax, eax
push ebp
push 0x45d922
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2d0]
call fcn.0045c510
mov edx, dword [ebp - 0x2d0]
mov eax, 0x45e798
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d92c
xor eax, eax
push ebp
push 0x45d961
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2d4]
call fcn.0045c568
mov edx, dword [ebp - 0x2d4]
mov eax, 0x45e7b4
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45d96b
xor eax, eax
push ebp
push 0x45d9f6
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.0045c66c
cmp dword [ebp - 0x10], 0
je 0x45d9ec
call fcn.0045c71c
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 1
jne 0x45d9a6
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45e7d0
call fcn.0045d380
pop ecx
jmp 0x45d9ec
push ebp
lea eax, [ebp - 0x2dc]
push eax
mov cl, 0x30
mov edx, 1
mov eax, dword [ebp - 0x2c]
call fcn.0041c3f4
push dword [ebp - 0x2dc]
push 0x45e7e8
push dword [ebp - 0x10]
lea eax, [ebp - 0x2d8]
mov edx, 3
call fcn.00406270
mov edx, dword [ebp - 0x2d8]
mov eax, 0x45e7f8
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45da00
xor eax, eax
push ebp
push 0x45da35
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2e0]
call fcn.0045c810
mov edx, dword [ebp - 0x2e0]
mov eax, 0x45e810
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45da3f
lea eax, [ebp - 0x300]
call fcn.00424b98
cmp byte [ebp - 0x2f0], 0
je 0x45da92
xor eax, eax
push ebp
push 0x45da88
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x304]
call fcn.0045c990
mov edx, dword [ebp - 0x304]
mov eax, 0x45e82c
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45da92
xor eax, eax
push ebp
push 0x45db8a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45e840
push 0x45e868
call sub.KERNEL32.DLL_GetModuleHandleW_2
push eax
call fcn.0040a06c
mov dword [ebp - 8], eax
push 0x104
lea eax, [ebp - 0x139]
push eax
call sub.KERNEL32.DLL_GetWindowsDirectoryA
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.0043eda8
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.00405eec
movzx eax, byte [eax]
call fcn.0041abb0
mov ebx, eax
movzx eax, byte [ebp - 0x139]
call fcn.0041abb0
cmp bl, al
je 0x45db5a
push ebp
push ebp
lea edx, [ebp - 0x30c]
movzx eax, byte [ebp - 0x139]
call fcn.0045d208
pop ecx
push dword [ebp - 0x30c]
push 0x45e890
push ebp
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.00405eec
movzx eax, byte [eax]
lea edx, [ebp - 0x310]
call fcn.0045d208
pop ecx
push dword [ebp - 0x310]
lea eax, [ebp - 0x308]
mov edx, 3
call fcn.00406270
mov edx, dword [ebp - 0x308]
mov eax, 0x45e8a0
call fcn.0045d380
pop ecx
jmp 0x45db80
push ebp
push ebp
lea edx, [ebp - 0x314]
movzx eax, byte [ebp - 0x139]
call fcn.0045d208
pop ecx
mov edx, dword [ebp - 0x314]
mov eax, 0x45e8a0
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45db94
xor eax, eax
push ebp
push 0x45dbc9
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x318]
call fcn.0045ca4c
mov edx, dword [ebp - 0x318]
mov eax, 0x45e8bc
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dbd3
xor eax, eax
push ebp
push 0x45dc15
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x31c]
push eax
call sub.KERNEL32.DLL_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0041c5bc
mov edx, dword [ebp - 0x31c]
mov eax, 0x45e8d8
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dc1f
xor eax, eax
push ebp
push 0x45dc54
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x320]
call fcn.0045cc28
mov edx, dword [ebp - 0x320]
mov eax, 0x45e8f0
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dc5e
xor eax, eax
push ebp
push 0x45dcb1
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x5d07ac], 0
je 0x45dca7
call fcn.00403434
test eax, eax
jle 0x45dca7
push ebp
call sub.KERNEL32.DLL_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x324]
mov ecx, 0
call fcn.00405fa4
mov edx, dword [ebp - 0x324]
mov eax, 0x45e910
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dcbb
xor eax, eax
push ebp
push 0x45dd03
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x32c]
xor eax, eax
call fcn.0043eda8
mov eax, dword [ebp - 0x32c]
lea edx, [ebp - 0x328]
call fcn.0043eddc
mov edx, dword [ebp - 0x328]
mov eax, 0x45e92c
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dd0d
xor eax, eax
push ebp
push 0x45dd67
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.KERNEL32.DLL_GetModuleHandleW_2
cmp eax, dword [0x5dbb50]
je 0x45dd5d
push ebp
lea edx, [ebp - 0x334]
mov eax, dword [0x5dbb50]
call fcn.0043eda8
mov eax, dword [ebp - 0x334]
lea edx, [ebp - 0x330]
call fcn.0043eddc
mov edx, dword [ebp - 0x330]
mov eax, 0x45e944
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dd71
xor eax, eax
push ebp
push 0x45dfb4
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x5d084c], 0
je 0x45dd94
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.0043eda8
jmp 0x45dda1
lea edx, [ebp - 0x10]
mov eax, dword [0x5dbb50]
call fcn.0043eda8
lea eax, [ebp - 0x27c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406480
push eax
call sub.KERNEL32.DLL_FindFirstFileA
mov ebx, eax
cmp ebx, 0xffffffff
je 0x45dfaa
push ebx
call sub.KERNEL32.DLL_FindClose_1
xor eax, eax
push ebp
push 0x45df2a
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x268]
push eax
call sub.KERNEL32.DLL_FileTimeToLocalFileTime
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x268]
push eax
call sub.KERNEL32.DLL_FileTimeToSystemTime
cmp byte [0x5d084c], 0
jne 0x45de13
push 0
call sub.KERNEL32.DLL_GetModuleHandleW_2
cmp eax, dword [0x5dbb50]
jne 0x45de22
lea eax, [ebp - 0x14]
mov edx, 0x45e960
call fcn.00405d8c
jmp 0x45de2f
lea eax, [ebp - 0x14]
mov edx, 0x45e974
call fcn.00405d8c
push ebp
lea eax, [ebp - 0x33c]
push eax
movzx eax, word [ebp - 0x28c]
mov cl, 0x30
mov edx, 4
call fcn.0041c510
push dword [ebp - 0x33c]
push 0x45e5d8
lea eax, [ebp - 0x340]
push eax
movzx eax, word [ebp - 0x28a]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x340]
push 0x45e5d8
lea eax, [ebp - 0x344]
push eax
movzx eax, word [ebp - 0x286]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x344]
push 0x45e890
lea eax, [ebp - 0x348]
push eax
movzx eax, word [ebp - 0x284]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x348]
push 0x45e5f8
lea eax, [ebp - 0x34c]
push eax
movzx eax, word [ebp - 0x282]
mov cl, 0x30
mov edx, 2
call fcn.0041c510
push dword [ebp - 0x34c]
push 0x45e988
lea eax, [ebp - 0x338]
mov edx, 0xa
call fcn.00406270
mov eax, dword [ebp - 0x338]
push eax
lea eax, [ebp - 0x350]
mov ecx, 0x45e998
mov edx, dword [ebp - 0x14]
call fcn.00406180
mov eax, dword [ebp - 0x350]
pop edx
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45df34
lea edx, [ebp - 0x354]
mov eax, dword [ebp - 0x1c]
call fcn.00448968
cmp dword [ebp - 0x354], 0
jne 0x45df8a
mov eax, dword [ebp - 0x10]
call fcn.0042514c
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0
jne 0x45df63
cmp dword [ebp - 0x28], 0
je 0x45dfaa
push ebp
push dword [ebp - 0x24]
push dword [ebp - 0x28]
lea eax, [ebp - 0x358]
call fcn.0042533c
mov edx, dword [ebp - 0x358]
mov eax, 0x45e9b0
call fcn.0045d380
pop ecx
jmp 0x45dfaa
push ebp
lea edx, [ebp - 0x35c]
mov eax, dword [ebp - 0x1c]
call fcn.00448968
mov edx, dword [ebp - 0x35c]
mov eax, 0x45e9b0
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45dfbe
xor eax, eax
push ebp
push 0x45e054
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45e9b8
call sub.KERNEL32.DLL_GetModuleHandleW_2
mov ebx, eax
test ebx, ebx
je 0x45e04a
push 0x104
lea eax, [ebp - 0x139]
push eax
push ebx
call sub.KERNEL32.DLL_GetModuleFileNameA
test eax, eax
jbe 0x45e04a
lea eax, [ebp - 0x360]
lea edx, [ebp - 0x139]
mov ecx, 0x105
push 0
call fcn.00406028
mov eax, dword [ebp - 0x360]
call fcn.0042514c
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0
jne 0x45e025
cmp dword [ebp - 0x28], 0
je 0x45e04a
push ebp
push dword [ebp - 0x24]
push dword [ebp - 0x28]
lea eax, [ebp - 0x364]
call fcn.0042533c
mov edx, dword [ebp - 0x364]
mov eax, 0x45e9dc
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e05e
xor eax, eax
push ebp
push 0x45e105
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x45e0b8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5dbb50]
call fcn.00425e34
cmp byte [eax + 0x1a], 2
je 0x45e09d
push ebp
mov edx, 0x45e9f4
mov eax, 0x45ea0c
call fcn.0045d380
pop ecx
jmp 0x45e0ae
push ebp
mov edx, 0x45ea28
mov eax, 0x45ea0c
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e0d3
push ebp
lea eax, [ebp - 0x368]
mov edx, dword [0x5d079c]
mov ecx, 0
call fcn.00405fa4
mov edx, dword [ebp - 0x368]
mov eax, 0x45ea40
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e10f
lea ecx, [ebp - 0x14]
mov edx, 0x45ea60
mov eax, dword [ebp - 0x1c]
call fcn.0044b648
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call fcn.0041c99c
test eax, eax
jle 0x45e2e3
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], 1
xor eax, eax
push ebp
push 0x45e2cd
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov cl, 0x7c
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
call fcn.0041ca60
mov eax, dword [0x5def24]
call fcn.00408258
mov ebx, eax
test ebx, ebx
jl 0x45e2c3
inc ebx
mov dword [ebp - 0x30], 0
mov esi, dword [ebp - 0x30]
mov eax, esi
add esi, esi
add esi, esi
add esi, esi
sub esi, eax
mov eax, dword [0x5def24]
mov eax, dword [eax + esi*4]
mov edx, dword [ebp - 0x10]
call fcn.0041ad8c
test al, al
je 0x45e2b9
mov eax, dword [0x5def24]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x45e2c3
mov eax, dword [0x5def24]
cmp dword [eax + esi*4 + 8], 0
je 0x45e1e2
push ebp
mov eax, dword [0x5def24]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x36c]
call ebx
mov edx, dword [ebp - 0x36c]
mov eax, dword [0x5def24]
mov eax, dword [eax + esi*4]
call fcn.0045d380
pop ecx
jmp 0x45e2c3
mov eax, dword [0x5def24]
cmp dword [eax + esi*4 + 0xc], 0
je 0x45e22f
push ebp
mov eax, dword [0x5def24]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x374]
call ebx
mov edx, dword [ebp - 0x374]
lea eax, [ebp - 0x370]
mov ecx, 0
call fcn.00406ea8
mov edx, dword [ebp - 0x370]
mov eax, dword [0x5def24]
mov eax, dword [eax + esi*4]
call fcn.0045d380
pop ecx
jmp 0x45e2c3
mov eax, dword [0x5def24]
cmp dword [eax + esi*4 + 0x10], 0
je 0x45e26f
push ebp
mov eax, dword [0x5def24]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x378]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45e257
sub eax, 0xfffffe18
call ebx
mov edx, dword [ebp - 0x378]
mov eax, dword [0x5def24]
mov eax, dword [eax + esi*4]
call fcn.0045d380
pop ecx
jmp 0x45e2c3
push ebp
mov eax, dword [0x5def24]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x380]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45e28b
sub eax, 0xfffffe18
call ebx
mov edx, dword [ebp - 0x380]
lea eax, [ebp - 0x37c]
mov ecx, 0
call fcn.00406ea8
mov edx, dword [ebp - 0x37c]
mov eax, dword [0x5def24]
mov eax, dword [eax + esi*4]
call fcn.0045d380
pop ecx
jmp 0x45e2c3
inc dword [ebp - 0x30]
dec ebx
jne 0x45e176
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e2d7
inc dword [ebp - 0x2c]
dec dword [ebp - 0x34]
jne 0x45e13b
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x30], eax
xor eax, eax
push ebp
push 0x45e313
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x45ea74
mov eax, 0x45ea98
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e31d
xor eax, eax
push ebp
push 0x45e373
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x5d109c], 1
adc dword [0x5d10a0], 0
push ebp
push dword [0x5d10a0]
push dword [0x5d109c]
lea ecx, [ebp - 0x384]
mov dl, 0x30
mov eax, 1
call fcn.0041c568
mov edx, dword [ebp - 0x384]
mov eax, 0x45eab4
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e37d
xor eax, eax
push ebp
push 0x45e461
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x45e437
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.0045d05c
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.0045cff0
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x45ead4
call fcn.0045d380
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.00406468
je 0x45e457
lea edx, [ebp - 0x388]
mov eax, dword [ebp - 0x10]
call fcn.004410fc
mov edx, dword [ebp - 0x388]
lea eax, [ebp - 0x10]
call fcn.00405d8c
push 0
lea eax, [ebp - 0x10]
mov ecx, 0x45e890
mov edx, 0x45eaf0
call fcn.0041aa78
push 0
lea eax, [ebp - 0x10]
mov ecx, 0x45e890
mov edx, 0x45eb00
call fcn.0041aa78
push 1
lea eax, [ebp - 0x10]
mov ecx, 0x45e890
mov edx, 0x45eb10
call fcn.0041aa78
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45eb20
call fcn.0045d380
pop ecx
jmp 0x45e457
push ebp
lea edx, [ebp - 0x38c]
mov eax, dword [ebp - 0x1c]
call fcn.004489dc
mov edx, dword [ebp - 0x38c]
mov eax, 0x45eb20
call fcn.0045d380
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e46b
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x45e4e8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x45e4b7
inc eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x2c]
mov edx, dword [eax + edx*8]
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x28]
inc dword [ebp - 0x2c]
dec dword [ebp - 0x34]
jne 0x45e494
lea eax, [ebp - 0x390]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
mov ecx, 0x45e5bc
call fcn.00408d58
mov eax, dword [ebp - 0x390]
mov edx, dword [ebp - 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x14]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45e4f2
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 0x45e5b2
lea eax, [ebp - 0x390]
call fcn.00408d14
lea eax, [ebp - 0x38c]
mov edx, 3
call fcn.00405d00
lea eax, [ebp - 0x380]
call fcn.00406c54
lea eax, [ebp - 0x37c]
mov edx, 2
call fcn.00405d00
lea eax, [ebp - 0x374]
call fcn.00406c54
lea eax, [ebp - 0x370]
mov edx, 0x1c
call fcn.00405d00
lea eax, [ebp - 0x300]
mov edx, dword [0x424a7c]
call fcn.0040778c
lea eax, [ebp - 0x2e0]
mov edx, 0x14
call fcn.00405d00
lea eax, [ebp - 0x290]
call fcn.00408d14
lea eax, [ebp - 0x18]
call fcn.00408d14
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00405d00
lea eax, [ebp - 4]
mov edx, dword [0x45d1d4]
call fcn.00408538
ret