Function at 0x45faac
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 0x45fab4
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x460da3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1a0], 0
jne 0x45fb08
mov dl, 1
mov eax, dword [0x43c820]
call fcn.00444a30
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 0x45fb03
sub edx, 0xffffffc0
call fcn.00408e00
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.00408e00
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x1c4], 0
je 0x460c73
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x460c73
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.00408e00
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x460db4
call fcn.00408e2c
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 0x45fcd8
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.0040e0f8
push dword [ebp - 0x4a4]
push 0x460dd0
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x226]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x4a8]
push 0x460dd0
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22a]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x4ac]
push 0x460de0
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22c]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x4b0]
push 0x460df4
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22e]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x4b4]
push 0x460df4
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x230]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x4b8]
push 0x460de0
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x232]
mov cx, 0x30
mov edx, 1
call fcn.0040e0f8
push dword [ebp - 0x4bc]
push 0x460e04
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call fcn.0040705c
mov edx, dword [ebp - 0x4a0]
mov eax, 0x460e18
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fce2
xor eax, eax
push ebp
push 0x45fd17
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.00436048
mov edx, dword [ebp - 0x4c0]
mov eax, 0x460e38
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fd21
xor eax, eax
push ebp
push 0x45fd56
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.0045e354
mov edx, dword [ebp - 0x4c4]
mov eax, 0x460e60
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fd60
xor eax, eax
push ebp
push 0x45fdff
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45fda6
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.00406db8
jmp 0x45fdd0
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.00406dd4
call fcn.0045e294
test al, al
je 0x45fde6
lea eax, [ebp - 0x10]
mov edx, 0x460e8c
call fcn.00406f0c
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x460eac
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fe09
xor eax, eax
push ebp
push 0x45fef0
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45fe32
lea eax, [ebp - 0x10]
mov edx, 0x460ecc
call fcn.00406bfc
jmp 0x45fe3c
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.00406bfc
lea eax, [ebp - 0x14]
push eax
push 0x460ee0
push dword [ebp - 0x10]
push 0x460f24
lea eax, [ebp - 0x4cc]
mov edx, 3
call fcn.0040705c
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x460f50
mov eax, 0x80000002
call fcn.004360fc
lea eax, [ebp - 0x4d0]
push eax
push 0x460ee0
push dword [ebp - 0x10]
push 0x460f24
lea eax, [ebp - 0x4d4]
mov edx, 3
call fcn.0040705c
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x460f8c
mov eax, 0x80000002
call fcn.004360fc
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call fcn.00406bfc
cmp dword [ebp - 0x14], 0
je 0x45fed7
push dword [ebp - 0x10]
push 0x460fb8
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.0040705c
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x460fcc
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fefa
xor eax, eax
push ebp
push 0x45ff2f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.0045e710
mov edx, dword [ebp - 0x4d8]
mov eax, 0x460ffc
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ff39
xor eax, eax
push ebp
push 0x45ff6e
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.0045e7c8
mov edx, dword [ebp - 0x4dc]
mov eax, 0x46102c
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ff78
xor eax, eax
push ebp
push 0x45ffad
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.0045e89c
mov edx, dword [ebp - 0x4e0]
mov eax, 0x461058
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ffb7
xor eax, eax
push ebp
push 0x45ffec
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.0045e8f8
mov edx, dword [ebp - 0x4e4]
mov eax, 0x461084
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fff6
xor eax, eax
push ebp
push 0x460083
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.0045ea0c
cmp dword [ebp - 0x10], 0
je 0x460079
call fcn.0045eb10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x460031
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4610b0
call fcn.0045fa08
pop ecx
jmp 0x460079
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040dffc
push dword [ebp - 0x4ec]
push 0x4610d0
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call fcn.0040705c
mov edx, dword [ebp - 0x4e8]
mov eax, 0x4610e4
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46008d
xor eax, eax
push ebp
push 0x4600c2
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.0045ec44
mov edx, dword [ebp - 0x4f0]
mov eax, 0x461108
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4600cc
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
je 0x460117
xor eax, eax
push ebp
push 0x46010d
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.0045edd8
mov edx, dword [ebp - 0x4f4]
mov eax, 0x461134
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460117
xor eax, eax
push ebp
push 0x46025c
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x461158
push 0x461180
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.0040a178
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.0043585c
lea eax, [ebp - 0x10]
call fcn.00405d1c
movzx eax, byte [eax]
mov ebx, dword [0x6942fc]
mov ebx, dword [ebx]
call ebx
mov ebx, eax
mov esi, dword [0x6942fc]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x460214
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405de0
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.0045f874
pop ecx
push dword [ebp - 0x4fc]
push 0x4611a8
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405de0
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.0045f874
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call fcn.0040705c
mov edx, dword [ebp - 0x4f8]
mov eax, 0x4611b8
call fcn.0045fa08
pop ecx
jmp 0x460252
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405de0
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.0045f874
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x4611b8
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460266
xor eax, eax
push ebp
push 0x46029b
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.0045eea4
mov edx, dword [ebp - 0x514]
mov eax, 0x4611e4
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4602a5
xor eax, eax
push ebp
push 0x4602e9
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.0040e188
mov edx, dword [ebp - 0x518]
mov eax, 0x46120c
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4602f3
xor eax, eax
push ebp
push 0x460328
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.0045f08c
mov edx, dword [ebp - 0x51c]
mov eax, 0x461230
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460332
xor eax, eax
push ebp
push 0x460367
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.0045f0b0
mov edx, dword [ebp - 0x520]
mov eax, 0x461260
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460371
xor eax, eax
push ebp
push 0x460407
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x683578], 0
je 0x4603fd
call fcn.004035d4
test eax, eax
jle 0x4603fd
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4603c3
push ebp
call sub.kernel32.dll_GetCommandLineW_1
mov edx, eax
lea eax, [ebp - 0x524]
call fcn.00406d64
mov edx, dword [ebp - 0x524]
mov eax, 0x461294
call fcn.0045fa08
pop ecx
jmp 0x4603fd
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call fcn.00405df0
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call fcn.00406dd4
mov edx, dword [ebp - 0x528]
mov eax, 0x461294
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460411
xor eax, eax
push ebp
push 0x460459
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.0043585c
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.0040f844
mov edx, dword [ebp - 0x530]
mov eax, 0x4612bc
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460463
xor eax, eax
push ebp
push 0x4604bd
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x683694]
je 0x4604b3
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x683694]
call fcn.0043585c
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.0040f844
mov edx, dword [ebp - 0x538]
mov eax, 0x4612e0
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4604c7
xor edx, edx
push ebp
push 0x46073f
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x6836a0], 0
je 0x4604ea
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.0043585c
jmp 0x4604f7
lea edx, [ebp - 0x10]
mov eax, dword [0x683694]
call fcn.0043585c
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x46051a
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406c34
push eax
call sub.kernel32.dll_FindFirstFileW_1
jmp 0x460545
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call fcn.00406dfc
mov eax, dword [ebp - 0x540]
call fcn.004061f8
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x460735
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
push ebp
push 0x4606c1
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 [0x6836a0], 0
jne 0x4605a0
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x683694]
jne 0x4605af
lea eax, [ebp - 0x14]
mov edx, 0x46130c
call fcn.00406bfc
jmp 0x4605bc
lea eax, [ebp - 0x14]
mov edx, 0x461324
call fcn.00406bfc
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call fcn.0040e0f8
push dword [ebp - 0x548]
push 0x460dd0
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x54c]
push 0x460dd0
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x550]
push 0x4611a8
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x554]
push 0x460df4
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.0040e0f8
push dword [ebp - 0x558]
push 0x461340
lea eax, [ebp - 0x544]
mov edx, 0xa
call fcn.0040705c
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x461354
mov edx, dword [ebp - 0x14]
call fcn.00406f8c
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4606cb
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.00440fe8
cmp dword [ebp - 0x560], 0
jne 0x460715
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.00419d94
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call fcn.00406bfc
cmp dword [ebp - 0x10], 0
je 0x460735
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x461378
call fcn.0045fa08
pop ecx
jmp 0x460735
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.00440fe8
mov edx, dword [ebp - 0x568]
mov eax, 0x461378
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460749
xor eax, eax
push ebp
push 0x4607a6
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x461388
call sub.kernel32.dll_GetModuleHandleW_2
mov ebx, eax
test ebx, ebx
je 0x46079c
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.0043585c
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x693c3c]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x46079c
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4613ac
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4607b0
xor eax, eax
push ebp
push 0x460868
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x46080a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x683694]
call fcn.0041ab20
cmp byte [eax + 0x1a], 2
je 0x4607ef
push ebp
mov edx, 0x4613d0
mov eax, 0x4613f0
call fcn.0045fa08
pop ecx
jmp 0x460800
push ebp
mov edx, 0x461418
mov eax, 0x4613f0
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460825
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x683568]
mov ecx, 0
call fcn.00405df0
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call fcn.00406dd4
mov edx, dword [ebp - 0x570]
mov eax, 0x46143c
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460872
lea ecx, [ebp - 0x14]
mov edx, 0x46146c
mov eax, dword [ebp - 0x1c]
call fcn.004433f8
mov ebx, dword [0x694218]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x460a4b
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x460a35
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x694380]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x698cbc]
call fcn.0040832c
mov ebx, eax
test ebx, ebx
jl 0x460a2b
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 [0x698cbc]
mov eax, dword [eax + esi*4]
mov edi, dword [0x69383c]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x460a21
mov eax, dword [0x698cbc]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x460a2b
mov eax, dword [0x698cbc]
cmp dword [eax + esi*4 + 8], 0
je 0x460965
push ebp
mov eax, dword [0x698cbc]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call fcn.00406dd4
mov edx, dword [ebp - 0x578]
mov eax, dword [0x698cbc]
mov eax, dword [eax + esi*4]
call fcn.0045fa08
pop ecx
jmp 0x460a2b
mov eax, dword [0x698cbc]
cmp dword [eax + esi*4 + 0xc], 0
je 0x46099c
push ebp
mov eax, dword [0x698cbc]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x698cbc]
mov eax, dword [eax + esi*4]
call fcn.0045fa08
pop ecx
jmp 0x460a2b
mov eax, dword [0x698cbc]
cmp dword [eax + esi*4 + 0x10], 0
je 0x4609ed
push ebp
mov eax, dword [0x698cbc]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4609c4
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call fcn.00406dd4
mov edx, dword [ebp - 0x584]
mov eax, dword [0x698cbc]
mov eax, dword [eax + esi*4]
call fcn.0045fa08
pop ecx
jmp 0x460a2b
push ebp
mov eax, dword [0x698cbc]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x460a09
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x698cbc]
mov eax, dword [eax + esi*4]
call fcn.0045fa08
pop ecx
jmp 0x460a2b
inc dword [ebp - 0x28]
dec ebx
jne 0x4608e3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460a3f
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x4608a3
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x460a7b
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x461480
mov eax, 0x4614bc
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460a85
xor eax, eax
push ebp
push 0x460add
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x684004], 1
adc dword [0x684008], 0
push ebp
push dword [0x684008]
push dword [0x684004]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.0040e144
mov edx, dword [ebp - 0x590]
mov eax, 0x4614e4
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460ae7
xor eax, eax
push ebp
push 0x460bda
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x460bb0
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.0045f678
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.0045f5d8
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x461514
call fcn.0045fa08
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.00407204
je 0x460bd0
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.00438a88
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call fcn.00406bfc
push 0
mov ebx, dword [0x693dcc]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4611a8
mov edx, 0x461540
call ebx
push 0
mov ebx, dword [0x693dcc]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4611a8
mov edx, 0x461550
call ebx
push 1
mov ebx, dword [0x693dcc]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4611a8
mov edx, 0x461560
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x461574
call fcn.0045fa08
pop ecx
jmp 0x460bd0
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.0044105c
mov edx, dword [ebp - 0x598]
mov eax, 0x461574
call fcn.0045fa08
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460be4
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x460c61
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x460c30
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 0x460c0d
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x460db4
call fcn.00408e2c
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 0x460c6b
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 0x460dad
lea eax, [ebp - 0x59c]
call fcn.00408de8
lea eax, [ebp - 0x598]
mov edx, 4
call fcn.00406ba0
lea eax, [ebp - 0x588]
call fcn.00405b3c
lea eax, [ebp - 0x584]
mov edx, 2
call fcn.00406ba0
lea eax, [ebp - 0x57c]
call fcn.00405b3c
lea eax, [ebp - 0x578]
call fcn.00406b98
lea eax, [ebp - 0x574]
call fcn.00405b3c
lea eax, [ebp - 0x570]
mov edx, 0xc
call fcn.00406ba0
lea eax, [ebp - 0x540]
call fcn.00405b3c
lea eax, [ebp - 0x53c]
mov edx, 4
call fcn.00406ba0
lea eax, [ebp - 0x52c]
call fcn.00405b3c
lea eax, [ebp - 0x528]
mov edx, 6
call fcn.00406ba0
lea eax, [ebp - 0x510]
call fcn.00405b3c
lea eax, [ebp - 0x50c]
call fcn.00406b98
lea eax, [ebp - 0x508]
call fcn.00405b3c
lea eax, [ebp - 0x504]
call fcn.00406b98
lea eax, [ebp - 0x500]
call fcn.00405b3c
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call fcn.00406ba0
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call fcn.00406ba0
lea eax, [ebp - 0x49c]
call fcn.00408de8
lea eax, [ebp - 0x18]
call fcn.00408de8
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00406ba0
lea eax, [ebp - 4]
mov edx, dword [0x45f840]
call fcn.0040860c
ret