Function at 0x4a586618
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 0x4a586620
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x4a587904
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x3a0], 0
jne 0x4a586674
mov dl, 1
mov eax, dword [0x4a55e390]
call fcn.4a5684b4
mov ebx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x3a0
mov edx, ebx
test edx, edx
je 0x4a58666f
sub edx, 0xffffffc0
call fcn.4a50ab0c
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
call fcn.4a50ab0c
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x3c4], 0
je 0x4a5877d4
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x4a5877d4
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
call fcn.4a50ab0c
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
mov ecx, 0x4a587918
call fcn.4a50ab38
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 0x4a586844
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 + 0x424]
mov cx, 0x30
mov edx, 4
call fcn.4a510fe8
push dword [ebp - 0x4a4]
push 0x4a587934
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x426]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x4a8]
push 0x4a587934
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x42a]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x4ac]
push 0x4a587944
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x42c]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x4b0]
push 0x4a587958
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x42e]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x4b4]
push 0x4a587958
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x430]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x4b8]
push 0x4a587944
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x432]
mov cx, 0x30
mov edx, 1
call fcn.4a510fe8
push dword [ebp - 0x4bc]
push 0x4a587968
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call fcn.4a508570
mov edx, dword [ebp - 0x4a0]
mov eax, 0x4a58797c
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a58684e
xor eax, eax
push ebp
push 0x4a586883
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.4a552bbc
mov edx, dword [ebp - 0x4c0]
mov eax, 0x4a58799c
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a58688d
xor eax, eax
push ebp
push 0x4a5868c2
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.4a584e64
mov edx, dword [ebp - 0x4c4]
mov eax, 0x4a5879c4
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a5868cc
xor eax, eax
push ebp
push 0x4a58696b
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a586912
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.4a5083a4
jmp 0x4a58693c
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.4a5083c0
call fcn.4a584da0
test al, al
je 0x4a586952
lea eax, [ebp - 0x10]
mov edx, 0x4a5879f0
call fcn.4a508490
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a587a10
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586975
xor eax, eax
push ebp
push 0x4a586a5a
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a58699e
lea eax, [ebp - 0x10]
mov edx, 0x4a587a30
call fcn.4a507a20
jmp 0x4a5869a6
lea eax, [ebp - 0x10]
call fcn.4a507618
lea eax, [ebp - 0x14]
push eax
push 0x4a587a44
push dword [ebp - 0x10]
push 0x4a587a88
lea eax, [ebp - 0x4cc]
mov edx, 3
call fcn.4a508570
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x4a587ab4
mov eax, 0x80000002
call fcn.4a552c70
lea eax, [ebp - 0x4d0]
push eax
push 0x4a587a44
push dword [ebp - 0x10]
push 0x4a587a88
lea eax, [ebp - 0x4d4]
mov edx, 3
call fcn.4a508570
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x4a587af0
mov eax, 0x80000002
call fcn.4a552c70
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call fcn.4a507a20
cmp dword [ebp - 0x14], 0
je 0x4a586a41
push dword [ebp - 0x10]
push 0x4a587b1c
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.4a508570
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a587b30
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586a64
xor eax, eax
push ebp
push 0x4a586a99
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.4a585218
mov edx, dword [ebp - 0x4d8]
mov eax, 0x4a587b60
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586aa3
xor eax, eax
push ebp
push 0x4a586ad8
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.4a5852d0
mov edx, dword [ebp - 0x4dc]
mov eax, 0x4a587b90
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586ae2
xor eax, eax
push ebp
push 0x4a586b17
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.4a5853a0
mov edx, dword [ebp - 0x4e0]
mov eax, 0x4a587bbc
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586b21
xor eax, eax
push ebp
push 0x4a586b56
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.4a5853f8
mov edx, dword [ebp - 0x4e4]
mov eax, 0x4a587be8
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586b60
xor eax, eax
push ebp
push 0x4a586bed
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.4a58550c
cmp dword [ebp - 0x10], 0
je 0x4a586be3
call fcn.4a585610
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x4a586b9b
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a587c14
call fcn.4a586574
pop ecx
jmp 0x4a586be3
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.4a510eec
push dword [ebp - 0x4ec]
push 0x4a587c34
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call fcn.4a508570
mov edx, dword [ebp - 0x4e8]
mov eax, 0x4a587c48
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586bf7
xor eax, eax
push ebp
push 0x4a586c2c
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.4a585744
mov edx, dword [ebp - 0x4f0]
mov eax, 0x4a587c6c
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586c36
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
je 0x4a586c81
xor eax, eax
push ebp
push 0x4a586c77
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.4a5858d8
mov edx, dword [ebp - 0x4f4]
mov eax, 0x4a587c98
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586c81
xor eax, eax
push ebp
push 0x4a586dc1
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4a587cbc
push 0x4a587ce4
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.4a50d92c
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.4a5523d4
mov ebx, dword [0x4a5ed5e0]
mov ebx, dword [ebx]
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
call ebx
mov ebx, eax
mov esi, dword [0x4a5ed5e0]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x4a586d79
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.4a507c84
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.4a5863e0
pop ecx
push dword [ebp - 0x4fc]
push 0x4a587d0c
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call fcn.4a507c84
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.4a5863e0
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call fcn.4a508570
mov edx, dword [ebp - 0x4f8]
mov eax, 0x4a587d1c
call fcn.4a586574
pop ecx
jmp 0x4a586db7
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.4a507c84
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.4a5863e0
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x4a587d1c
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586dcb
xor eax, eax
push ebp
push 0x4a586e00
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.4a5859a4
mov edx, dword [ebp - 0x514]
mov eax, 0x4a587d48
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586e0a
xor eax, eax
push ebp
push 0x4a586e4e
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.4a511078
mov edx, dword [ebp - 0x518]
mov eax, 0x4a587d70
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586e58
xor eax, eax
push ebp
push 0x4a586e8d
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.4a585b88
mov edx, dword [ebp - 0x51c]
mov eax, 0x4a587d94
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586e97
xor eax, eax
push ebp
push 0x4a586ecc
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.4a585bac
mov edx, dword [ebp - 0x520]
mov eax, 0x4a587dc4
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586ed6
xor eax, eax
push ebp
push 0x4a586f6c
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4a5e8424], 0
je 0x4a586f62
call fcn.4a504c50
test eax, eax
jle 0x4a586f62
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a586f28
push ebp
call sub.kernel32.dll_GetCommandLineW_1
mov edx, eax
lea eax, [ebp - 0x524]
call fcn.4a508350
mov edx, dword [ebp - 0x524]
mov eax, 0x4a587df8
call fcn.4a586574
pop ecx
jmp 0x4a586f62
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call fcn.4a507c94
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call fcn.4a5083c0
mov edx, dword [ebp - 0x528]
mov eax, 0x4a587df8
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586f76
xor eax, eax
push ebp
push 0x4a586fbe
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.4a5523d4
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.4a512544
mov edx, dword [ebp - 0x530]
mov eax, 0x4a587e20
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a586fc8
xor eax, eax
push ebp
push 0x4a587022
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a5e851c]
je 0x4a587018
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x4a5e851c]
call fcn.4a5523d4
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.4a512544
mov edx, dword [ebp - 0x538]
mov eax, 0x4a587e44
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a58702c
xor edx, edx
push ebp
push 0x4a5872a0
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x4a5e8528], 0
je 0x4a58704f
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.4a5523d4
jmp 0x4a58705c
lea edx, [ebp - 0x10]
mov eax, dword [0x4a5e851c]
call fcn.4a5523d4
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a58707f
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call fcn.4a5082f8
push eax
call sub.kernel32.dll_FindFirstFileW_1
jmp 0x4a5870aa
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call fcn.4a508124
mov eax, dword [ebp - 0x540]
call fcn.4a507f78
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x4a587296
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
push ebp
push 0x4a587222
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x474]
lea eax, [ebp - 0x474]
call fcn.4a50d79c
lea edx, [ebp - 0x498]
lea eax, [ebp - 0x474]
call fcn.4a50d7ac
cmp byte [0x4a5e8528], 0
jne 0x4a587101
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a5e851c]
jne 0x4a587110
lea eax, [ebp - 0x14]
mov edx, 0x4a587e70
call fcn.4a507a20
jmp 0x4a58711d
lea eax, [ebp - 0x14]
mov edx, 0x4a587e88
call fcn.4a507a20
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call fcn.4a510fe8
push dword [ebp - 0x548]
push 0x4a587934
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x54c]
push 0x4a587934
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x550]
push 0x4a587d0c
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x554]
push 0x4a587958
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.4a510fe8
push dword [ebp - 0x558]
push 0x4a587ea4
lea eax, [ebp - 0x544]
mov edx, 0xa
call fcn.4a508570
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x4a587eb8
mov edx, dword [ebp - 0x14]
call fcn.4a5084e8
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a58722c
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.4a564aec
cmp dword [ebp - 0x560], 0
jne 0x4a587276
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.4a515b80
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call fcn.4a507a20
cmp dword [ebp - 0x10], 0
je 0x4a587296
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a587edc
call fcn.4a586574
pop ecx
jmp 0x4a587296
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.4a564aec
mov edx, dword [ebp - 0x568]
mov eax, 0x4a587edc
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a5872aa
xor eax, eax
push ebp
push 0x4a587307
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4a587eec
call sub.kernel32.dll_GetModuleHandleW_1
mov ebx, eax
test ebx, ebx
je 0x4a5872fd
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.4a5523d4
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x4a5ed45c]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x4a5872fd
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a587f10
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a587311
xor eax, eax
push ebp
push 0x4a5873c9
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4a58736b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4a5e851c]
call fcn.4a5169c4
cmp byte [eax + 0x1a], 2
je 0x4a587350
push ebp
mov edx, 0x4a587f34
mov eax, 0x4a587f50
call fcn.4a586574
pop ecx
jmp 0x4a587361
push ebp
mov edx, 0x4a587f78
mov eax, 0x4a587f50
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a587386
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x4a5e8414]
mov ecx, 0
call fcn.4a507c94
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call fcn.4a5083c0
mov edx, dword [ebp - 0x570]
mov eax, 0x4a587f9c
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a5873d3
lea ecx, [ebp - 0x14]
mov edx, 0x4a587fcc
mov eax, dword [ebp - 0x1c]
call fcn.4a566ec0
mov ebx, dword [0x4a5ed5a0]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x4a5875ac
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x4a587596
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x4a5ed5fc]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x4a5f40bc]
call fcn.4a509260
mov ebx, eax
test ebx, ebx
jl 0x4a58758c
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 [0x4a5f40bc]
mov eax, dword [eax + esi*4]
mov edi, dword [0x4a5ed39c]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x4a587582
mov eax, dword [0x4a5f40bc]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x4a58758c
mov eax, dword [0x4a5f40bc]
cmp dword [eax + esi*4 + 8], 0
je 0x4a5874c6
push ebp
mov eax, dword [0x4a5f40bc]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call fcn.4a5083c0
mov edx, dword [ebp - 0x578]
mov eax, dword [0x4a5f40bc]
mov eax, dword [eax + esi*4]
call fcn.4a586574
pop ecx
jmp 0x4a58758c
mov eax, dword [0x4a5f40bc]
cmp dword [eax + esi*4 + 0xc], 0
je 0x4a5874fd
push ebp
mov eax, dword [0x4a5f40bc]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x4a5f40bc]
mov eax, dword [eax + esi*4]
call fcn.4a586574
pop ecx
jmp 0x4a58758c
mov eax, dword [0x4a5f40bc]
cmp dword [eax + esi*4 + 0x10], 0
je 0x4a58754e
push ebp
mov eax, dword [0x4a5f40bc]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4a587525
sub eax, 0xfffffbc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call fcn.4a5083c0
mov edx, dword [ebp - 0x584]
mov eax, dword [0x4a5f40bc]
mov eax, dword [eax + esi*4]
call fcn.4a586574
pop ecx
jmp 0x4a58758c
push ebp
mov eax, dword [0x4a5f40bc]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4a58756a
sub eax, 0xfffffbc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x4a5f40bc]
mov eax, dword [eax + esi*4]
call fcn.4a586574
pop ecx
jmp 0x4a58758c
inc dword [ebp - 0x28]
dec ebx
jne 0x4a587444
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a5875a0
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x4a587404
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x4a5875dc
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x4a587fe0
mov eax, 0x4a58801c
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a5875e6
xor eax, eax
push ebp
push 0x4a58763e
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x4a5e8e90], 1
adc dword [0x4a5e8e94], 0
push ebp
push dword [0x4a5e8e94]
push dword [0x4a5e8e90]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.4a511034
mov edx, dword [ebp - 0x590]
mov eax, 0x4a588044
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a587648
xor eax, eax
push ebp
push 0x4a58773b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x4a587711
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.4a5861b4
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.4a586114
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x4a588074
call fcn.4a586574
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.4a508620
je 0x4a587731
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.4a5555c8
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call fcn.4a507a20
push 0
mov ebx, dword [0x4a5ed4b4]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4a587d0c
mov edx, 0x4a5880a0
call ebx
push 0
mov ebx, dword [0x4a5ed4b4]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4a587d0c
mov edx, 0x4a5880b0
call ebx
push 1
mov ebx, dword [0x4a5ed4b4]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4a587d0c
mov edx, 0x4a5880c0
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a5880d4
call fcn.4a586574
pop ecx
jmp 0x4a587731
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.4a564b60
mov edx, dword [ebp - 0x598]
mov eax, 0x4a5880d4
call fcn.4a586574
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a587745
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x4a5877c2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x4a587791
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 0x4a58776e
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
mov ecx, 0x4a587918
call fcn.4a50ab38
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 0x4a5877cc
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 0x4a58790e
lea eax, [ebp - 0x59c]
call fcn.4a50aaf4
lea eax, [ebp - 0x598]
mov edx, 4
call fcn.4a507678
lea eax, [ebp - 0x588]
call fcn.4a50763c
lea eax, [ebp - 0x584]
mov edx, 2
call fcn.4a507678
lea eax, [ebp - 0x57c]
call fcn.4a50763c
lea eax, [ebp - 0x578]
call fcn.4a507618
lea eax, [ebp - 0x574]
call fcn.4a50763c
lea eax, [ebp - 0x570]
mov edx, 0xc
call fcn.4a507678
lea eax, [ebp - 0x540]
call fcn.4a50763c
lea eax, [ebp - 0x53c]
mov edx, 4
call fcn.4a507678
lea eax, [ebp - 0x52c]
call fcn.4a50763c
lea eax, [ebp - 0x528]
mov edx, 6
call fcn.4a507678
lea eax, [ebp - 0x510]
call fcn.4a50763c
lea eax, [ebp - 0x50c]
call fcn.4a507618
lea eax, [ebp - 0x508]
call fcn.4a50763c
lea eax, [ebp - 0x504]
call fcn.4a507618
lea eax, [ebp - 0x500]
call fcn.4a50763c
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call fcn.4a507678
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call fcn.4a507678
lea eax, [ebp - 0x49c]
call fcn.4a50aaf4
lea eax, [ebp - 0x18]
call fcn.4a50aaf4
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.4a507678
lea eax, [ebp - 4]
mov edx, dword [0x4a5863a8]
call fcn.4a50959c
ret