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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x70
push 0
push 0
dec ecx
jne 0x45a644
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x45b746
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x150], 0
jne 0x45a698
mov dl, 1
mov eax, dword [0x43ed9c]
call fcn.00448f90
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 0x45a693
sub edx, 0xffffffc0
call fcn.0040a2d0
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
call fcn.0040a2d0
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x174], 0
je 0x45b698
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x150]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x45b698
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
call fcn.0040a2d0
lea eax, [ebp - 0x288]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
mov ecx, 0x45b758
call fcn.0040a2fc
mov eax, dword [ebp - 0x288]
mov edx, dword [eax]
call dword [edx + 0x18]
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x45a85a
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x290]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1d4]
mov cl, 0x30
mov edx, 4
call fcn.0040f29c
push dword [ebp - 0x290]
push 0x45b774
lea eax, [ebp - 0x294]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1d6]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x294]
push 0x45b774
lea eax, [ebp - 0x298]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1da]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x298]
push 0x45b784
lea eax, [ebp - 0x29c]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1dc]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x29c]
push 0x45b794
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1de]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x2a0]
push 0x45b794
lea eax, [ebp - 0x2a4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1e0]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x2a4]
push 0x45b784
lea eax, [ebp - 0x2a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x1e2]
mov cl, 0x30
mov edx, 1
call fcn.0040f29c
push dword [ebp - 0x2a8]
push 0x45b7a4
lea eax, [ebp - 0x28c]
mov edx, 0xe
call fcn.004075b4
mov edx, dword [ebp - 0x28c]
mov eax, 0x45b7b4
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a864
xor eax, eax
push ebp
push 0x45a899
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2ac]
call fcn.00434e78
mov edx, dword [ebp - 0x2ac]
mov eax, 0x45b7cc
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a8a3
xor eax, eax
push ebp
push 0x45a8d8
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2b0]
call fcn.004591b0
mov edx, dword [ebp - 0x2b0]
mov eax, 0x45b7e8
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a8e2
xor eax, eax
push ebp
push 0x45a94b
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x131]
push eax
call sub.advapi32.dll_GetUserNameA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x131]
mov ecx, 0x105
push 0
call fcn.0040747c
call fcn.004590f0
test al, al
je 0x45a932
lea eax, [ebp - 0x10]
mov edx, 0x45b804
call fcn.004074d8
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b81c
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45a955
xor eax, eax
push ebp
push 0x45aa3a
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45a97e
lea eax, [ebp - 0x10]
mov edx, 0x45b834
call fcn.00407268
jmp 0x45a986
lea eax, [ebp - 0x10]
call fcn.00406de8
lea eax, [ebp - 0x14]
push eax
push 0x45b844
push dword [ebp - 0x10]
push 0x45b86c
lea eax, [ebp - 0x2b4]
mov edx, 3
call fcn.004075b4
mov edx, dword [ebp - 0x2b4]
mov ecx, 0x45b888
mov eax, 0x80000002
call fcn.00434eb0
lea eax, [ebp - 0x2b8]
push eax
push 0x45b844
push dword [ebp - 0x10]
push 0x45b86c
lea eax, [ebp - 0x2bc]
mov edx, 3
call fcn.004075b4
mov edx, dword [ebp - 0x2bc]
mov ecx, 0x45b8ac
mov eax, 0x80000002
call fcn.00434eb0
mov edx, dword [ebp - 0x2b8]
lea eax, [ebp - 0x10]
call fcn.00407268
cmp dword [ebp - 0x14], 0
je 0x45aa21
push dword [ebp - 0x10]
push 0x45b8c8
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004075b4
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b8d8
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aa44
xor eax, eax
push ebp
push 0x45aa79
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2c0]
call fcn.00459530
mov edx, dword [ebp - 0x2c0]
mov eax, 0x45b8f8
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aa83
xor eax, eax
push ebp
push 0x45aab8
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2c4]
call fcn.004595e0
mov edx, dword [ebp - 0x2c4]
mov eax, 0x45b918
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aac2
xor eax, eax
push ebp
push 0x45aaf7
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2c8]
call fcn.00459628
mov edx, dword [ebp - 0x2c8]
mov eax, 0x45b934
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ab01
xor eax, eax
push ebp
push 0x45ab36
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2cc]
call fcn.00459680
mov edx, dword [ebp - 0x2cc]
mov eax, 0x45b950
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ab40
xor eax, eax
push ebp
push 0x45abcb
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.00459784
cmp dword [ebp - 0x10], 0
je 0x45abc1
call fcn.00459834
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x45ab7b
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45b96c
call fcn.0045a554
pop ecx
jmp 0x45abc1
push ebp
lea eax, [ebp - 0x2d4]
push eax
mov cl, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040f1a8
push dword [ebp - 0x2d4]
push 0x45b984
push dword [ebp - 0x10]
lea eax, [ebp - 0x2d0]
mov edx, 3
call fcn.004075b4
mov edx, dword [ebp - 0x2d0]
mov eax, 0x45b994
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45abd5
xor eax, eax
push ebp
push 0x45ac0a
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2d8]
call fcn.00459928
mov edx, dword [ebp - 0x2d8]
mov eax, 0x45b9ac
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ac14
lea eax, [ebp - 0x2f8]
call fcn.0041033c
cmp byte [ebp - 0x2e8], 0
je 0x45ac67
xor eax, eax
push ebp
push 0x45ac5d
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x2fc]
call fcn.00459aa8
mov edx, dword [ebp - 0x2fc]
mov eax, 0x45b9c8
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ac67
xor eax, eax
push ebp
push 0x45ad51
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45b9dc
push 0x45ba04
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.0040ba0c
mov dword [ebp - 8], eax
push 0x104
lea eax, [ebp - 0x131]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00434784
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
call fcn.0040e090
mov ebx, eax
movzx eax, byte [ebp - 0x131]
call fcn.0040e090
cmp bl, al
je 0x45ad21
push ebp
push ebp
lea edx, [ebp - 0x304]
movzx eax, byte [ebp - 0x131]
call fcn.0045a3dc
pop ecx
push dword [ebp - 0x304]
push 0x45ba2c
push ebp
lea edx, [ebp - 0x308]
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
call fcn.0045a3dc
pop ecx
push dword [ebp - 0x308]
lea eax, [ebp - 0x300]
mov edx, 3
call fcn.004075b4
mov edx, dword [ebp - 0x300]
mov eax, 0x45ba3c
call fcn.0045a554
pop ecx
jmp 0x45ad47
push ebp
push ebp
lea edx, [ebp - 0x30c]
movzx eax, byte [ebp - 0x131]
call fcn.0045a3dc
pop ecx
mov edx, dword [ebp - 0x30c]
mov eax, 0x45ba3c
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ad5b
xor eax, eax
push ebp
push 0x45ad90
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x310]
call fcn.00459b64
mov edx, dword [ebp - 0x310]
mov eax, 0x45ba58
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ad9a
xor eax, eax
push ebp
push 0x45addc
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x314]
push eax
call sub.kernel32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.0040f32c
mov edx, dword [ebp - 0x314]
mov eax, 0x45ba74
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ade6
xor eax, eax
push ebp
push 0x45ae1b
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x318]
call fcn.00459d40
mov edx, dword [ebp - 0x318]
mov eax, 0x45ba8c
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ae25
xor eax, eax
push ebp
push 0x45ae78
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4b8660], 0
je 0x45ae6e
call fcn.004046a4
test eax, eax
jle 0x45ae6e
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x31c]
mov ecx, 0
call fcn.004073f4
mov edx, dword [ebp - 0x31c]
mov eax, 0x45baac
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ae82
xor eax, eax
push ebp
push 0x45aeca
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x324]
xor eax, eax
call fcn.00434784
mov eax, dword [ebp - 0x324]
lea edx, [ebp - 0x320]
call fcn.004347b8
mov edx, dword [ebp - 0x320]
mov eax, 0x45bac8
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aed4
xor eax, eax
push ebp
push 0x45af2e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x4bcc30]
je 0x45af24
push ebp
lea edx, [ebp - 0x32c]
mov eax, dword [0x4bcc30]
call fcn.00434784
mov eax, dword [ebp - 0x32c]
lea edx, [ebp - 0x328]
call fcn.004347b8
mov edx, dword [ebp - 0x328]
mov eax, 0x45bae0
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45af38
xor eax, eax
push ebp
push 0x45b16f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4b86f0], 0
je 0x45af5b
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00434784
jmp 0x45af68
lea edx, [ebp - 0x10]
mov eax, dword [0x4bcc30]
call fcn.00434784
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004076c4
push eax
call sub.kernel32.dll_FindFirstFileA
mov ebx, eax
cmp ebx, 0xffffffff
je 0x45b165
push ebx
call sub.kernel32.dll_FindClose_1
xor eax, eax
push ebp
push 0x45b0f1
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x260]
push eax
call sub.kernel32.dll_FileTimeToLocalFileTime
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x260]
push eax
call sub.kernel32.dll_FileTimeToSystemTime
cmp byte [0x4b86f0], 0
jne 0x45afda
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x4bcc30]
jne 0x45afe9
lea eax, [ebp - 0x14]
mov edx, 0x45bafc
call fcn.00407268
jmp 0x45aff6
lea eax, [ebp - 0x14]
mov edx, 0x45bb10
call fcn.00407268
push ebp
lea eax, [ebp - 0x334]
push eax
movzx eax, word [ebp - 0x284]
mov cl, 0x30
mov edx, 4
call fcn.0040f29c
push dword [ebp - 0x334]
push 0x45b774
lea eax, [ebp - 0x338]
push eax
movzx eax, word [ebp - 0x282]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x338]
push 0x45b774
lea eax, [ebp - 0x33c]
push eax
movzx eax, word [ebp - 0x27e]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x33c]
push 0x45ba2c
lea eax, [ebp - 0x340]
push eax
movzx eax, word [ebp - 0x27c]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x340]
push 0x45b794
lea eax, [ebp - 0x344]
push eax
movzx eax, word [ebp - 0x27a]
mov cl, 0x30
mov edx, 2
call fcn.0040f29c
push dword [ebp - 0x344]
push 0x45bb24
lea eax, [ebp - 0x330]
mov edx, 0xa
call fcn.004075b4
mov eax, dword [ebp - 0x330]
push eax
lea eax, [ebp - 0x348]
mov ecx, 0x45bb34
mov edx, dword [ebp - 0x14]
call fcn.00407530
mov eax, dword [ebp - 0x348]
pop edx
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b0fb
lea edx, [ebp - 0x34c]
mov eax, dword [ebp - 0x1c]
call fcn.00444b48
cmp dword [ebp - 0x34c], 0
jne 0x45b145
lea edx, [ebp - 0x350]
mov eax, dword [ebp - 0x10]
call fcn.004109bc
mov edx, dword [ebp - 0x350]
lea eax, [ebp - 0x10]
call fcn.00407268
cmp dword [ebp - 0x10], 0
je 0x45b165
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45bb4c
call fcn.0045a554
pop ecx
jmp 0x45b165
push ebp
lea edx, [ebp - 0x354]
mov eax, dword [ebp - 0x1c]
call fcn.00444b48
mov edx, dword [ebp - 0x354]
mov eax, 0x45bb4c
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b179
xor eax, eax
push ebp
push 0x45b1f2
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x45bb54
call sub.kernel32.dll_GetModuleHandleW_2
mov ebx, eax
test ebx, ebx
je 0x45b1e8
push 0x104
lea eax, [ebp - 0x131]
push eax
push ebx
call sub.kernel32.dll_GetModuleFileNameA
test eax, eax
jbe 0x45b1e8
lea eax, [ebp - 0x358]
lea edx, [ebp - 0x131]
mov ecx, 0x105
push 0
call fcn.0040747c
mov eax, dword [ebp - 0x358]
lea edx, [ebp - 0x10]
call fcn.004109bc
cmp dword [ebp - 0x10], 0
je 0x45b1e8
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45bb78
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b1fc
xor eax, eax
push ebp
push 0x45b2a3
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x45b256
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4bcc30]
call fcn.00411888
cmp byte [eax + 0x1a], 2
je 0x45b23b
push ebp
mov edx, 0x45bb90
mov eax, 0x45bba4
call fcn.0045a554
pop ecx
jmp 0x45b24c
push ebp
mov edx, 0x45bbc0
mov eax, 0x45bba4
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b271
push ebp
lea eax, [ebp - 0x35c]
mov edx, dword [0x4b8650]
mov ecx, 0
call fcn.004073f4
mov edx, dword [ebp - 0x35c]
mov eax, 0x45bbd8
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b2ad
lea ecx, [ebp - 0x14]
mov edx, 0x45bbf8
mov eax, dword [ebp - 0x1c]
call fcn.00447814
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call fcn.0040f6d0
test eax, eax
jle 0x45b481
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x45b46b
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call fcn.0040f708
mov eax, dword [0x4bdd9c]
call fcn.00408a58
mov ebx, eax
test ebx, ebx
jl 0x45b461
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 [0x4bdd9c]
mov eax, dword [eax + esi*4]
mov edx, dword [ebp - 0x10]
call fcn.0040e1ac
test al, al
je 0x45b457
mov eax, dword [0x4bdd9c]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x45b461
mov eax, dword [0x4bdd9c]
cmp dword [eax + esi*4 + 8], 0
je 0x45b380
push ebp
mov eax, dword [0x4bdd9c]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x360]
call ebx
mov edx, dword [ebp - 0x360]
mov eax, dword [0x4bdd9c]
mov eax, dword [eax + esi*4]
call fcn.0045a554
pop ecx
jmp 0x45b461
mov eax, dword [0x4bdd9c]
cmp dword [eax + esi*4 + 0xc], 0
je 0x45b3cd
push ebp
mov eax, dword [0x4bdd9c]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x368]
call ebx
mov edx, dword [ebp - 0x368]
lea eax, [ebp - 0x364]
mov ecx, 0
call fcn.00407850
mov edx, dword [ebp - 0x364]
mov eax, dword [0x4bdd9c]
mov eax, dword [eax + esi*4]
call fcn.0045a554
pop ecx
jmp 0x45b461
mov eax, dword [0x4bdd9c]
cmp dword [eax + esi*4 + 0x10], 0
je 0x45b40d
push ebp
mov eax, dword [0x4bdd9c]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x36c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45b3f5
sub eax, 0xfffffe18
call ebx
mov edx, dword [ebp - 0x36c]
mov eax, dword [0x4bdd9c]
mov eax, dword [eax + esi*4]
call fcn.0045a554
pop ecx
jmp 0x45b461
push ebp
mov eax, dword [0x4bdd9c]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x374]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x45b429
sub eax, 0xfffffe18
call ebx
mov edx, dword [ebp - 0x374]
lea eax, [ebp - 0x370]
mov ecx, 0
call fcn.00407850
mov edx, dword [ebp - 0x370]
mov eax, dword [0x4bdd9c]
mov eax, dword [eax + esi*4]
call fcn.0045a554
pop ecx
jmp 0x45b461
inc dword [ebp - 0x28]
dec ebx
jne 0x45b314
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b475
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x45b2d9
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x45b4b1
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x45bc0c
mov eax, 0x45bc30
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b4bb
xor eax, eax
push ebp
push 0x45b511
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x4b8f48], 1
adc dword [0x4b8f4c], 0
push ebp
push dword [0x4b8f4c]
push dword [0x4b8f48]
lea ecx, [ebp - 0x378]
mov dl, 0x30
mov eax, 1
call fcn.0040f2e8
mov edx, dword [ebp - 0x378]
mov eax, 0x45bc4c
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b51b
xor eax, eax
push ebp
push 0x45b5ff
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x45b5d5
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.0045a1b0
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.0045a144
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x45bc6c
call fcn.0045a554
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.0040767c
je 0x45b5f5
lea edx, [ebp - 0x37c]
mov eax, dword [ebp - 0x10]
call fcn.00436af8
mov edx, dword [ebp - 0x37c]
lea eax, [ebp - 0x10]
call fcn.00407268
push 0
lea eax, [ebp - 0x10]
mov ecx, 0x45ba2c
mov edx, 0x45bc88
call fcn.0040dfbc
push 0
lea eax, [ebp - 0x10]
mov ecx, 0x45ba2c
mov edx, 0x45bc98
call fcn.0040dfbc
push 1
lea eax, [ebp - 0x10]
mov ecx, 0x45ba2c
mov edx, 0x45bca8
call fcn.0040dfbc
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x45bcb8
call fcn.0045a554
pop ecx
jmp 0x45b5f5
push ebp
lea edx, [ebp - 0x380]
mov eax, dword [ebp - 0x1c]
call fcn.00444bbc
mov edx, dword [ebp - 0x380]
mov eax, 0x45bcb8
call fcn.0045a554
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45b609
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x45b686
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x45b655
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 0x45b632
lea eax, [ebp - 0x384]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x150]
mov ecx, 0x45b758
call fcn.0040a2fc
mov eax, dword [ebp - 0x384]
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 0x45b690
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 0x45b750
lea eax, [ebp - 0x384]
call fcn.0040a2b8
lea eax, [ebp - 0x380]
mov edx, 3
call fcn.00406e54
lea eax, [ebp - 0x374]
call fcn.00406dc4
lea eax, [ebp - 0x370]
mov edx, 2
call fcn.00406e54
lea eax, [ebp - 0x368]
call fcn.00406dc4
lea eax, [ebp - 0x364]
mov edx, 0x1b
call fcn.00406e54
lea eax, [ebp - 0x2f8]
mov edx, dword [0x410014]
call fcn.00408284
lea eax, [ebp - 0x2d8]
mov edx, 0x14
call fcn.00406e54
lea eax, [ebp - 0x288]
call fcn.0040a2b8
lea eax, [ebp - 0x18]
call fcn.0040a2b8
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00406e54
lea eax, [ebp - 4]
mov edx, dword [0x45a3a4]
call fcn.00408d3c
ret