Function at 0x45f970
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 0x45f978
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x460c67
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x1a0], 0
jne 0x45f9cc
mov dl, 1
mov eax, dword [0x43c4ac]
call fcn.004446bc
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 0x45f9c7
sub edx, 0xffffffc0
call fcn.00408dac
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.00408dac
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x1c4], 0
je 0x460b37
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x1a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x460b37
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
call fcn.00408dac
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x460c78
call fcn.00408dd8
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 0x45fb9c
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.0040dd64
push dword [ebp - 0x4a4]
push 0x460c94
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x226]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x4a8]
push 0x460c94
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22a]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x4ac]
push 0x460ca4
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22c]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x4b0]
push 0x460cb8
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x22e]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x4b4]
push 0x460cb8
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x230]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x4b8]
push 0x460ca4
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x232]
mov cx, 0x30
mov edx, 1
call fcn.0040dd64
push dword [ebp - 0x4bc]
push 0x460cc8
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call fcn.00406fc0
mov edx, dword [ebp - 0x4a0]
mov eax, 0x460cdc
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fba6
xor eax, eax
push ebp
push 0x45fbdb
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.00435cd4
mov edx, dword [ebp - 0x4c0]
mov eax, 0x460cfc
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fbe5
xor eax, eax
push ebp
push 0x45fc1a
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.0045e218
mov edx, dword [ebp - 0x4c4]
mov eax, 0x460d24
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fc24
xor eax, eax
push ebp
push 0x45fcc3
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45fc6a
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.00406c08
jmp 0x45fc94
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.00406c24
call fcn.0045e158
test al, al
je 0x45fcaa
lea eax, [ebp - 0x10]
mov edx, 0x460d50
call fcn.00406e1c
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x460d70
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fccd
xor eax, eax
push ebp
push 0x45fdb4
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x45fcf6
lea eax, [ebp - 0x10]
mov edx, 0x460d90
call fcn.00406a5c
jmp 0x45fd00
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.00406a5c
lea eax, [ebp - 0x14]
push eax
push 0x460da4
push dword [ebp - 0x10]
push 0x460de8
lea eax, [ebp - 0x4cc]
mov edx, 3
call fcn.00406fc0
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x460e14
mov eax, 0x80000002
call fcn.00435d88
lea eax, [ebp - 0x4d0]
push eax
push 0x460da4
push dword [ebp - 0x10]
push 0x460de8
lea eax, [ebp - 0x4d4]
mov edx, 3
call fcn.00406fc0
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x460e50
mov eax, 0x80000002
call fcn.00435d88
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call fcn.00406a5c
cmp dword [ebp - 0x14], 0
je 0x45fd9b
push dword [ebp - 0x10]
push 0x460e7c
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00406fc0
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x460e90
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fdbe
xor eax, eax
push ebp
push 0x45fdf3
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.0045e5d4
mov edx, dword [ebp - 0x4d8]
mov eax, 0x460ec0
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fdfd
xor eax, eax
push ebp
push 0x45fe32
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.0045e68c
mov edx, dword [ebp - 0x4dc]
mov eax, 0x460ef0
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fe3c
xor eax, eax
push ebp
push 0x45fe71
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.0045e760
mov edx, dword [ebp - 0x4e0]
mov eax, 0x460f1c
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45fe7b
xor eax, eax
push ebp
push 0x45feb0
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.0045e7bc
mov edx, dword [ebp - 0x4e4]
mov eax, 0x460f48
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45feba
xor eax, eax
push ebp
push 0x45ff47
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.0045e8d0
cmp dword [ebp - 0x10], 0
je 0x45ff3d
call fcn.0045e9d4
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x45fef5
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x460f74
call fcn.0045f8cc
pop ecx
jmp 0x45ff3d
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.0040dc68
push dword [ebp - 0x4ec]
push 0x460f94
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call fcn.00406fc0
mov edx, dword [ebp - 0x4e8]
mov eax, 0x460fa8
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ff51
xor eax, eax
push ebp
push 0x45ff86
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.0045eb08
mov edx, dword [ebp - 0x4f0]
mov eax, 0x460fcc
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ff90
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
je 0x45ffdb
xor eax, eax
push ebp
push 0x45ffd1
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.0045ec9c
mov edx, dword [ebp - 0x4f4]
mov eax, 0x460ff8
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45ffdb
xor eax, eax
push ebp
push 0x460120
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x46101c
push 0x461044
call sub.kernel32.dll_GetModuleHandleW_2
push eax
call fcn.00409e4c
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.004354e8
lea eax, [ebp - 0x10]
call fcn.00405c38
movzx eax, byte [eax]
mov ebx, dword [0x6133b8]
mov ebx, dword [ebx]
call ebx
mov ebx, eax
mov esi, dword [0x6133b8]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x4600d8
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405d10
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.0045f738
pop ecx
push dword [ebp - 0x4fc]
push 0x46106c
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405d10
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.0045f738
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call fcn.00406fc0
mov edx, dword [ebp - 0x4f8]
mov eax, 0x46107c
call fcn.0045f8cc
pop ecx
jmp 0x460116
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.00405d10
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.0045f738
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x46107c
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46012a
xor eax, eax
push ebp
push 0x46015f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.0045ed68
mov edx, dword [ebp - 0x514]
mov eax, 0x4610a8
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460169
xor eax, eax
push ebp
push 0x4601ad
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.0040ddf4
mov edx, dword [ebp - 0x518]
mov eax, 0x4610d0
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4601b7
xor eax, eax
push ebp
push 0x4601ec
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.0045ef50
mov edx, dword [ebp - 0x51c]
mov eax, 0x4610f4
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4601f6
xor eax, eax
push ebp
push 0x46022b
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.0045ef74
mov edx, dword [ebp - 0x520]
mov eax, 0x461124
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460235
xor eax, eax
push ebp
push 0x4602cb
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x60555c], 0
je 0x4602c1
call fcn.00403488
test eax, eax
jle 0x4602c1
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x460287
push ebp
call sub.kernel32.dll_GetCommandLineW_1
mov edx, eax
lea eax, [ebp - 0x524]
call fcn.00406bb4
mov edx, dword [ebp - 0x524]
mov eax, 0x461158
call fcn.0045f8cc
pop ecx
jmp 0x4602c1
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call fcn.00405d20
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call fcn.00406c24
mov edx, dword [ebp - 0x528]
mov eax, 0x461158
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4602d5
xor eax, eax
push ebp
push 0x46031d
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.004354e8
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.0040f4b0
mov edx, dword [ebp - 0x530]
mov eax, 0x461180
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460327
xor eax, eax
push ebp
push 0x460381
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x605678]
je 0x460377
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x605678]
call fcn.004354e8
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.0040f4b0
mov edx, dword [ebp - 0x538]
mov eax, 0x4611a4
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46038b
xor edx, edx
push ebp
push 0x460603
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x605684], 0
je 0x4603ae
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.004354e8
jmp 0x4603bb
lea edx, [ebp - 0x10]
mov eax, dword [0x605678]
call fcn.004354e8
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4603de
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call fcn.00406a94
push eax
call sub.kernel32.dll_FindFirstFileW_1
jmp 0x460409
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call fcn.00406c4c
mov eax, dword [ebp - 0x540]
call fcn.004061fc
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x4605f9
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
push ebp
push 0x460585
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 [0x605684], 0
jne 0x460464
push 0
call sub.kernel32.dll_GetModuleHandleW_2
cmp eax, dword [0x605678]
jne 0x460473
lea eax, [ebp - 0x14]
mov edx, 0x4611d0
call fcn.00406a5c
jmp 0x460480
lea eax, [ebp - 0x14]
mov edx, 0x4611e8
call fcn.00406a5c
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call fcn.0040dd64
push dword [ebp - 0x548]
push 0x460c94
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x54c]
push 0x460c94
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x550]
push 0x46106c
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x554]
push 0x460cb8
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.0040dd64
push dword [ebp - 0x558]
push 0x461204
lea eax, [ebp - 0x544]
mov edx, 0xa
call fcn.00406fc0
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x461218
mov edx, dword [ebp - 0x14]
call fcn.00406edc
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46058f
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.00440c74
cmp dword [ebp - 0x560], 0
jne 0x4605d9
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.00419a00
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call fcn.00406a5c
cmp dword [ebp - 0x10], 0
je 0x4605f9
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x46123c
call fcn.0045f8cc
pop ecx
jmp 0x4605f9
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.00440c74
mov edx, dword [ebp - 0x568]
mov eax, 0x46123c
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46060d
xor eax, eax
push ebp
push 0x46066a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x46124c
call sub.kernel32.dll_GetModuleHandleW_2
mov ebx, eax
test ebx, ebx
je 0x460660
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.004354e8
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x612e28]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x460660
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x461270
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460674
xor eax, eax
push ebp
push 0x46072c
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4606ce
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x605678]
call fcn.0041a78c
cmp byte [eax + 0x1a], 2
je 0x4606b3
push ebp
mov edx, 0x461294
mov eax, 0x4612b4
call fcn.0045f8cc
pop ecx
jmp 0x4606c4
push ebp
mov edx, 0x4612dc
mov eax, 0x4612b4
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4606e9
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x60554c]
mov ecx, 0
call fcn.00405d20
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call fcn.00406c24
mov edx, dword [ebp - 0x570]
mov eax, 0x461300
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460736
lea ecx, [ebp - 0x14]
mov edx, 0x461330
mov eax, dword [ebp - 0x1c]
call fcn.00443084
mov ebx, dword [0x6132e0]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x46090f
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x4608f9
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x613420]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x617cec]
call fcn.004082d8
mov ebx, eax
test ebx, ebx
jl 0x4608ef
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 [0x617cec]
mov eax, dword [eax + esi*4]
mov edi, dword [0x612af0]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x4608e5
mov eax, dword [0x617cec]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x4608ef
mov eax, dword [0x617cec]
cmp dword [eax + esi*4 + 8], 0
je 0x460829
push ebp
mov eax, dword [0x617cec]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call fcn.00406c24
mov edx, dword [ebp - 0x578]
mov eax, dword [0x617cec]
mov eax, dword [eax + esi*4]
call fcn.0045f8cc
pop ecx
jmp 0x4608ef
mov eax, dword [0x617cec]
cmp dword [eax + esi*4 + 0xc], 0
je 0x460860
push ebp
mov eax, dword [0x617cec]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x617cec]
mov eax, dword [eax + esi*4]
call fcn.0045f8cc
pop ecx
jmp 0x4608ef
mov eax, dword [0x617cec]
cmp dword [eax + esi*4 + 0x10], 0
je 0x4608b1
push ebp
mov eax, dword [0x617cec]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x460888
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call fcn.00406c24
mov edx, dword [ebp - 0x584]
mov eax, dword [0x617cec]
mov eax, dword [eax + esi*4]
call fcn.0045f8cc
pop ecx
jmp 0x4608ef
push ebp
mov eax, dword [0x617cec]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4608cd
sub eax, 0xfffffdc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x617cec]
mov eax, dword [eax + esi*4]
call fcn.0045f8cc
pop ecx
jmp 0x4608ef
inc dword [ebp - 0x28]
dec ebx
jne 0x4607a7
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460903
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x460767
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x46093f
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x461344
mov eax, 0x461380
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460949
xor eax, eax
push ebp
push 0x4609a1
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x605fe8], 1
adc dword [0x605fec], 0
push ebp
push dword [0x605fec]
push dword [0x605fe8]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.0040ddb0
mov edx, dword [ebp - 0x590]
mov eax, 0x4613a8
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4609ab
xor eax, eax
push ebp
push 0x460a9e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x460a74
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.0045f53c
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.0045f49c
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x4613d8
call fcn.0045f8cc
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.004071ac
je 0x460a94
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.00438714
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call fcn.00406a5c
push 0
mov ebx, dword [0x612f74]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x46106c
mov edx, 0x461404
call ebx
push 0
mov ebx, dword [0x612f74]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x46106c
mov edx, 0x461414
call ebx
push 1
mov ebx, dword [0x612f74]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x46106c
mov edx, 0x461424
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x461438
call fcn.0045f8cc
pop ecx
jmp 0x460a94
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.00440ce8
mov edx, dword [ebp - 0x598]
mov eax, 0x461438
call fcn.0045f8cc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x460aa8
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x460b25
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x460af4
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 0x460ad1
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x1a0]
mov ecx, 0x460c78
call fcn.00408dd8
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 0x460b2f
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 0x460c71
lea eax, [ebp - 0x59c]
call fcn.00408d94
lea eax, [ebp - 0x598]
mov edx, 4
call fcn.00406a00
lea eax, [ebp - 0x588]
call fcn.00405a3c
lea eax, [ebp - 0x584]
mov edx, 2
call fcn.00406a00
lea eax, [ebp - 0x57c]
call fcn.00405a3c
lea eax, [ebp - 0x578]
call fcn.004069f8
lea eax, [ebp - 0x574]
call fcn.00405a3c
lea eax, [ebp - 0x570]
mov edx, 0xc
call fcn.00406a00
lea eax, [ebp - 0x540]
call fcn.00405a3c
lea eax, [ebp - 0x53c]
mov edx, 4
call fcn.00406a00
lea eax, [ebp - 0x52c]
call fcn.00405a3c
lea eax, [ebp - 0x528]
mov edx, 6
call fcn.00406a00
lea eax, [ebp - 0x510]
call fcn.00405a3c
lea eax, [ebp - 0x50c]
call fcn.004069f8
lea eax, [ebp - 0x508]
call fcn.00405a3c
lea eax, [ebp - 0x504]
call fcn.004069f8
lea eax, [ebp - 0x500]
call fcn.00405a3c
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call fcn.00406a00
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call fcn.00406a00
lea eax, [ebp - 0x49c]
call fcn.00408d94
lea eax, [ebp - 0x18]
call fcn.00408d94
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00406a00
lea eax, [ebp - 4]
mov edx, dword [0x45f704]
call fcn.004085b8
ret