Function at 0x4a68660c
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 0x4a686614
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x4a6878f8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x3a0], 0
jne 0x4a686668
mov dl, 1
mov eax, dword [0x4a65e1bc]
call fcn.4a6682e0
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 0x4a686663
sub edx, 0xffffffc0
call fcn.4a60a7e4
mov eax, esi
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
call fcn.4a60a7e4
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x3c4], 0
je 0x4a6877c8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3a0]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x4a6877c8
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
call fcn.4a60a7e4
lea eax, [ebp - 0x49c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
mov ecx, 0x4a68790c
call fcn.4a60a810
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 0x4a686838
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.4a610b00
push dword [ebp - 0x4a4]
push 0x4a687928
lea eax, [ebp - 0x4a8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x426]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x4a8]
push 0x4a687928
lea eax, [ebp - 0x4ac]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x42a]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x4ac]
push 0x4a687938
lea eax, [ebp - 0x4b0]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x42c]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x4b0]
push 0x4a68794c
lea eax, [ebp - 0x4b4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x42e]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x4b4]
push 0x4a68794c
lea eax, [ebp - 0x4b8]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x430]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x4b8]
push 0x4a687938
lea eax, [ebp - 0x4bc]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x432]
mov cx, 0x30
mov edx, 1
call fcn.4a610b00
push dword [ebp - 0x4bc]
push 0x4a68795c
lea eax, [ebp - 0x4a0]
mov edx, 0xe
call fcn.4a6084c4
mov edx, dword [ebp - 0x4a0]
mov eax, 0x4a687970
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686842
xor eax, eax
push ebp
push 0x4a686877
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c0]
call fcn.4a6529e8
mov edx, dword [ebp - 0x4c0]
mov eax, 0x4a687990
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686881
xor eax, eax
push ebp
push 0x4a6868b6
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4c4]
call fcn.4a684e58
mov edx, dword [ebp - 0x4c4]
mov eax, 0x4a6879b8
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a6868c0
xor eax, eax
push ebp
push 0x4a68695f
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x20], 0x104
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a686906
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.4a6082f8
jmp 0x4a686930
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.4a608314
call fcn.4a684d94
test al, al
je 0x4a686946
lea eax, [ebp - 0x10]
mov edx, 0x4a6879e4
call fcn.4a6083e4
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a687a04
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686969
xor eax, eax
push ebp
push 0x4a686a4e
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a686992
lea eax, [ebp - 0x10]
mov edx, 0x4a687a24
call fcn.4a607990
jmp 0x4a68699a
lea eax, [ebp - 0x10]
call fcn.4a607588
lea eax, [ebp - 0x14]
push eax
push 0x4a687a38
push dword [ebp - 0x10]
push 0x4a687a7c
lea eax, [ebp - 0x4cc]
mov edx, 3
call fcn.4a6084c4
mov edx, dword [ebp - 0x4cc]
mov ecx, 0x4a687aa8
mov eax, 0x80000002
call fcn.4a652a9c
lea eax, [ebp - 0x4d0]
push eax
push 0x4a687a38
push dword [ebp - 0x10]
push 0x4a687a7c
lea eax, [ebp - 0x4d4]
mov edx, 3
call fcn.4a6084c4
mov edx, dword [ebp - 0x4d4]
mov ecx, 0x4a687ae4
mov eax, 0x80000002
call fcn.4a652a9c
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x10]
call fcn.4a607990
cmp dword [ebp - 0x14], 0
je 0x4a686a35
push dword [ebp - 0x10]
push 0x4a687b10
push dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.4a6084c4
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a687b24
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686a58
xor eax, eax
push ebp
push 0x4a686a8d
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4d8]
call fcn.4a68520c
mov edx, dword [ebp - 0x4d8]
mov eax, 0x4a687b54
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686a97
xor eax, eax
push ebp
push 0x4a686acc
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4dc]
call fcn.4a6852c4
mov edx, dword [ebp - 0x4dc]
mov eax, 0x4a687b84
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686ad6
xor eax, eax
push ebp
push 0x4a686b0b
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e0]
call fcn.4a685394
mov edx, dword [ebp - 0x4e0]
mov eax, 0x4a687bb0
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686b15
xor eax, eax
push ebp
push 0x4a686b4a
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4e4]
call fcn.4a6853ec
mov edx, dword [ebp - 0x4e4]
mov eax, 0x4a687bdc
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686b54
xor eax, eax
push ebp
push 0x4a686be1
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
call fcn.4a685500
cmp dword [ebp - 0x10], 0
je 0x4a686bd7
call fcn.4a685604
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jne 0x4a686b8f
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a687c08
call fcn.4a686568
pop ecx
jmp 0x4a686bd7
push ebp
lea eax, [ebp - 0x4ec]
push eax
mov cx, 0x30
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.4a610a04
push dword [ebp - 0x4ec]
push 0x4a687c28
push dword [ebp - 0x10]
lea eax, [ebp - 0x4e8]
mov edx, 3
call fcn.4a6084c4
mov edx, dword [ebp - 0x4e8]
mov eax, 0x4a687c3c
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686beb
xor eax, eax
push ebp
push 0x4a686c20
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f0]
call fcn.4a685738
mov edx, dword [ebp - 0x4f0]
mov eax, 0x4a687c60
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686c2a
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
je 0x4a686c75
xor eax, eax
push ebp
push 0x4a686c6b
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x4f4]
call fcn.4a6858cc
mov edx, dword [ebp - 0x4f4]
mov eax, 0x4a687c8c
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686c75
xor eax, eax
push ebp
push 0x4a686db5
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4a687cb0
push 0x4a687cd8
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.4a60d6e0
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.4a652200
mov ebx, dword [0x4a6ce7e8]
mov ebx, dword [ebx]
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
call ebx
mov ebx, eax
mov esi, dword [0x4a6ce7e8]
mov esi, dword [esi]
lea eax, [ebp - 0x236]
movzx eax, byte [eax]
call esi
cmp bl, al
je 0x4a686d6d
push ebp
push ebp
lea eax, [ebp - 0x500]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.4a607bf4
mov eax, dword [ebp - 0x500]
lea edx, [ebp - 0x4fc]
call fcn.4a6863d4
pop ecx
push dword [ebp - 0x4fc]
push 0x4a687d00
push ebp
lea eax, [ebp - 0x508]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edx]
mov ecx, 0
call fcn.4a607bf4
mov eax, dword [ebp - 0x508]
lea edx, [ebp - 0x504]
call fcn.4a6863d4
pop ecx
push dword [ebp - 0x504]
lea eax, [ebp - 0x4f8]
mov edx, 3
call fcn.4a6084c4
mov edx, dword [ebp - 0x4f8]
mov eax, 0x4a687d10
call fcn.4a686568
pop ecx
jmp 0x4a686dab
push ebp
push ebp
lea eax, [ebp - 0x510]
lea edx, [ebp - 0x236]
movzx edx, byte [edx]
mov ecx, 0
call fcn.4a607bf4
mov eax, dword [ebp - 0x510]
lea edx, [ebp - 0x50c]
call fcn.4a6863d4
pop ecx
mov edx, dword [ebp - 0x50c]
mov eax, 0x4a687d10
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686dbf
xor eax, eax
push ebp
push 0x4a686df4
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x514]
call fcn.4a685998
mov edx, dword [ebp - 0x514]
mov eax, 0x4a687d3c
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686dfe
xor eax, eax
push ebp
push 0x4a686e42
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.4a610b90
mov edx, dword [ebp - 0x518]
mov eax, 0x4a687d64
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686e4c
xor eax, eax
push ebp
push 0x4a686e81
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x51c]
call fcn.4a685b7c
mov edx, dword [ebp - 0x51c]
mov eax, 0x4a687d88
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686e8b
xor eax, eax
push ebp
push 0x4a686ec0
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea eax, [ebp - 0x520]
call fcn.4a685ba0
mov edx, dword [ebp - 0x520]
mov eax, 0x4a687db8
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686eca
xor eax, eax
push ebp
push 0x4a686f60
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4a6cb424], 0
je 0x4a686f56
call fcn.4a604c08
test eax, eax
jle 0x4a686f56
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a686f1c
push ebp
call sub.kernel32.dll_GetCommandLineW_1
mov edx, eax
lea eax, [ebp - 0x524]
call fcn.4a6082a4
mov edx, dword [ebp - 0x524]
mov eax, 0x4a687dec
call fcn.4a686568
pop ecx
jmp 0x4a686f56
push ebp
call sub.kernel32.dll_GetCommandLineA
mov edx, eax
lea eax, [ebp - 0x52c]
mov ecx, 0
call fcn.4a607c04
mov edx, dword [ebp - 0x52c]
lea eax, [ebp - 0x528]
call fcn.4a608314
mov edx, dword [ebp - 0x528]
mov eax, 0x4a687dec
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686f6a
xor eax, eax
push ebp
push 0x4a686fb2
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
lea edx, [ebp - 0x534]
xor eax, eax
call fcn.4a652200
mov eax, dword [ebp - 0x534]
lea edx, [ebp - 0x530]
call fcn.4a612238
mov edx, dword [ebp - 0x530]
mov eax, 0x4a687e14
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a686fbc
xor eax, eax
push ebp
push 0x4a687016
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a6cb51c]
je 0x4a68700c
push ebp
lea edx, [ebp - 0x53c]
mov eax, dword [0x4a6cb51c]
call fcn.4a652200
mov eax, dword [ebp - 0x53c]
lea edx, [ebp - 0x538]
call fcn.4a612238
mov edx, dword [ebp - 0x538]
mov eax, 0x4a687e38
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a687020
xor edx, edx
push ebp
push 0x4a687294
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [0x4a6cb528], 0
je 0x4a687043
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.4a652200
jmp 0x4a687050
lea edx, [ebp - 0x10]
mov eax, dword [0x4a6cb51c]
call fcn.4a652200
call sub.kernel32.dll_GetVersion_1
test eax, 0x80000000
jne 0x4a687073
lea eax, [ebp - 0x488]
push eax
mov eax, dword [ebp - 0x10]
call fcn.4a60824c
push eax
call sub.kernel32.dll_FindFirstFileW_1
jmp 0x4a68709e
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x540]
mov edx, dword [ebp - 0x10]
mov ecx, 0
call fcn.4a608094
mov eax, dword [ebp - 0x540]
call fcn.4a607ee8
push eax
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
je 0x4a68728a
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
push ebp
push 0x4a687216
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x474]
lea eax, [ebp - 0x474]
call fcn.4a60d548
lea edx, [ebp - 0x498]
lea eax, [ebp - 0x474]
call fcn.4a60d558
cmp byte [0x4a6cb528], 0
jne 0x4a6870f5
push 0
call sub.kernel32.dll_GetModuleHandleW_1
cmp eax, dword [0x4a6cb51c]
jne 0x4a687104
lea eax, [ebp - 0x14]
mov edx, 0x4a687e64
call fcn.4a607990
jmp 0x4a687111
lea eax, [ebp - 0x14]
mov edx, 0x4a687e7c
call fcn.4a607990
push ebp
lea eax, [ebp - 0x548]
push eax
movzx eax, word [ebp - 0x498]
mov cx, 0x30
mov edx, 4
call fcn.4a610b00
push dword [ebp - 0x548]
push 0x4a687928
lea eax, [ebp - 0x54c]
push eax
movzx eax, word [ebp - 0x496]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x54c]
push 0x4a687928
lea eax, [ebp - 0x550]
push eax
movzx eax, word [ebp - 0x492]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x550]
push 0x4a687d00
lea eax, [ebp - 0x554]
push eax
movzx eax, word [ebp - 0x490]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x554]
push 0x4a68794c
lea eax, [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x48e]
mov cx, 0x30
mov edx, 2
call fcn.4a610b00
push dword [ebp - 0x558]
push 0x4a687e98
lea eax, [ebp - 0x544]
mov edx, 0xa
call fcn.4a6084c4
mov eax, dword [ebp - 0x544]
push eax
lea eax, [ebp - 0x55c]
mov ecx, 0x4a687eac
mov edx, dword [ebp - 0x14]
call fcn.4a60843c
mov eax, dword [ebp - 0x55c]
pop edx
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a687220
lea edx, [ebp - 0x560]
mov eax, dword [ebp - 0x1c]
call fcn.4a664918
cmp dword [ebp - 0x560], 0
jne 0x4a68726a
lea edx, [ebp - 0x564]
mov eax, dword [ebp - 0x10]
call fcn.4a615a64
mov edx, dword [ebp - 0x564]
lea eax, [ebp - 0x10]
call fcn.4a607990
cmp dword [ebp - 0x10], 0
je 0x4a68728a
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a687ed0
call fcn.4a686568
pop ecx
jmp 0x4a68728a
push ebp
lea edx, [ebp - 0x568]
mov eax, dword [ebp - 0x1c]
call fcn.4a664918
mov edx, dword [ebp - 0x568]
mov eax, 0x4a687ed0
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a68729e
xor eax, eax
push ebp
push 0x4a6872fb
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4a687ee0
call sub.kernel32.dll_GetModuleHandleW_1
mov ebx, eax
test ebx, ebx
je 0x4a6872f1
lea edx, [ebp - 0x56c]
mov eax, ebx
call fcn.4a652200
mov eax, dword [ebp - 0x56c]
mov ebx, dword [0x4a6ce65c]
mov ebx, dword [ebx]
lea edx, [ebp - 0x10]
call ebx
cmp dword [ebp - 0x10], 0
je 0x4a6872f1
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a687f04
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a687305
xor eax, eax
push ebp
push 0x4a6873bd
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4a68735f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4a6cb51c]
call fcn.4a6168a8
cmp byte [eax + 0x1a], 2
je 0x4a687344
push ebp
mov edx, 0x4a687f28
mov eax, 0x4a687f44
call fcn.4a686568
pop ecx
jmp 0x4a687355
push ebp
mov edx, 0x4a687f6c
mov eax, 0x4a687f44
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a68737a
push ebp
lea eax, [ebp - 0x574]
mov edx, dword [0x4a6cb414]
mov ecx, 0
call fcn.4a607c04
mov edx, dword [ebp - 0x574]
lea eax, [ebp - 0x570]
call fcn.4a608314
mov edx, dword [ebp - 0x570]
mov eax, 0x4a687f90
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a6873c7
lea ecx, [ebp - 0x14]
mov edx, 0x4a687fc0
mov eax, dword [ebp - 0x1c]
call fcn.4a666cec
mov ebx, dword [0x4a6ce7a8]
mov ebx, dword [ebx]
mov dl, 0x7c
mov eax, dword [ebp - 0x14]
call ebx
test eax, eax
jle 0x4a6875a0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 1
xor eax, eax
push ebp
push 0x4a68758a
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ebx, dword [0x4a6ce804]
mov ebx, dword [ebx]
mov cl, 0x7c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call ebx
mov eax, dword [0x4a6d50bc]
call fcn.4a608f38
mov ebx, eax
test ebx, ebx
jl 0x4a687580
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 [0x4a6d50bc]
mov eax, dword [eax + esi*4]
mov edi, dword [0x4a6ce5a0]
mov edi, dword [edi]
mov edx, dword [ebp - 0x10]
call edi
test al, al
je 0x4a687576
mov eax, dword [0x4a6d50bc]
cmp byte [eax + esi*4 + 0x18], 0
jne 0x4a687580
mov eax, dword [0x4a6d50bc]
cmp dword [eax + esi*4 + 8], 0
je 0x4a6874ba
push ebp
mov eax, dword [0x4a6d50bc]
mov ebx, dword [eax + esi*4 + 8]
lea eax, [ebp - 0x57c]
call ebx
mov edx, dword [ebp - 0x57c]
lea eax, [ebp - 0x578]
call fcn.4a608314
mov edx, dword [ebp - 0x578]
mov eax, dword [0x4a6d50bc]
mov eax, dword [eax + esi*4]
call fcn.4a686568
pop ecx
jmp 0x4a687580
mov eax, dword [0x4a6d50bc]
cmp dword [eax + esi*4 + 0xc], 0
je 0x4a6874f1
push ebp
mov eax, dword [0x4a6d50bc]
mov ebx, dword [eax + esi*4 + 0xc]
lea eax, [ebp - 0x580]
call ebx
mov edx, dword [ebp - 0x580]
mov eax, dword [0x4a6d50bc]
mov eax, dword [eax + esi*4]
call fcn.4a686568
pop ecx
jmp 0x4a687580
mov eax, dword [0x4a6d50bc]
cmp dword [eax + esi*4 + 0x10], 0
je 0x4a687542
push ebp
mov eax, dword [0x4a6d50bc]
mov ebx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x588]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4a687519
sub eax, 0xfffffbc0
call ebx
mov edx, dword [ebp - 0x588]
lea eax, [ebp - 0x584]
call fcn.4a608314
mov edx, dword [ebp - 0x584]
mov eax, dword [0x4a6d50bc]
mov eax, dword [eax + esi*4]
call fcn.4a686568
pop ecx
jmp 0x4a687580
push ebp
mov eax, dword [0x4a6d50bc]
mov ebx, dword [eax + esi*4 + 0x14]
lea edx, [ebp - 0x58c]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4a68755e
sub eax, 0xfffffbc0
call ebx
mov edx, dword [ebp - 0x58c]
mov eax, dword [0x4a6d50bc]
mov eax, dword [eax + esi*4]
call fcn.4a686568
pop ecx
jmp 0x4a687580
inc dword [ebp - 0x28]
dec ebx
jne 0x4a687438
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a687594
inc dword [ebp - 0x24]
dec dword [ebp - 0x2c]
jne 0x4a6873f8
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x4a6875d0
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov edx, 0x4a687fd4
mov eax, 0x4a688010
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a6875da
xor eax, eax
push ebp
push 0x4a687632
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [0x4a6cbe90], 1
adc dword [0x4a6cbe94], 0
push ebp
push dword [0x4a6cbe94]
push dword [0x4a6cbe90]
lea ecx, [ebp - 0x590]
mov dx, 0x30
mov eax, 1
call fcn.4a610b4c
mov edx, dword [ebp - 0x590]
mov eax, 0x4a688038
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a68763c
xor eax, eax
push ebp
push 0x4a68772f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x4f], 1
je 0x4a687705
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call fcn.4a6861a8
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.4a686108
push ebp
mov edx, dword [ebp - 0x14]
mov eax, 0x4a688068
call fcn.4a686568
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
call fcn.4a608574
je 0x4a687725
lea edx, [ebp - 0x594]
mov eax, dword [ebp - 0x10]
call fcn.4a6553f4
mov edx, dword [ebp - 0x594]
lea eax, [ebp - 0x10]
call fcn.4a607990
push 0
mov ebx, dword [0x4a6ce6bc]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4a687d00
mov edx, 0x4a688094
call ebx
push 0
mov ebx, dword [0x4a6ce6bc]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4a687d00
mov edx, 0x4a6880a4
call ebx
push 1
mov ebx, dword [0x4a6ce6bc]
mov ebx, dword [ebx]
lea eax, [ebp - 0x10]
mov ecx, 0x4a687d00
mov edx, 0x4a6880b4
call ebx
push ebp
mov edx, dword [ebp - 0x10]
mov eax, 0x4a6880c8
call fcn.4a686568
pop ecx
jmp 0x4a687725
push ebp
lea edx, [ebp - 0x598]
mov eax, dword [ebp - 0x1c]
call fcn.4a66498c
mov edx, dword [ebp - 0x598]
mov eax, 0x4a6880c8
call fcn.4a686568
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a687739
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0xc]
xor eax, eax
push ebp
push 0x4a6877b6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x4a687785
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 0x4a687762
lea eax, [ebp - 0x59c]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x3a0]
mov ecx, 0x4a68790c
call fcn.4a60a810
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 0x4a6877c0
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 0x4a687902
lea eax, [ebp - 0x59c]
call fcn.4a60a7cc
lea eax, [ebp - 0x598]
mov edx, 4
call fcn.4a6075e8
lea eax, [ebp - 0x588]
call fcn.4a6075ac
lea eax, [ebp - 0x584]
mov edx, 2
call fcn.4a6075e8
lea eax, [ebp - 0x57c]
call fcn.4a6075ac
lea eax, [ebp - 0x578]
call fcn.4a607588
lea eax, [ebp - 0x574]
call fcn.4a6075ac
lea eax, [ebp - 0x570]
mov edx, 0xc
call fcn.4a6075e8
lea eax, [ebp - 0x540]
call fcn.4a6075ac
lea eax, [ebp - 0x53c]
mov edx, 4
call fcn.4a6075e8
lea eax, [ebp - 0x52c]
call fcn.4a6075ac
lea eax, [ebp - 0x528]
mov edx, 6
call fcn.4a6075e8
lea eax, [ebp - 0x510]
call fcn.4a6075ac
lea eax, [ebp - 0x50c]
call fcn.4a607588
lea eax, [ebp - 0x508]
call fcn.4a6075ac
lea eax, [ebp - 0x504]
call fcn.4a607588
lea eax, [ebp - 0x500]
call fcn.4a6075ac
lea eax, [ebp - 0x4fc]
mov edx, 0xd
call fcn.4a6075e8
lea eax, [ebp - 0x4c4]
mov edx, 0xa
call fcn.4a6075e8
lea eax, [ebp - 0x49c]
call fcn.4a60a7cc
lea eax, [ebp - 0x18]
call fcn.4a60a7cc
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.4a6075e8
lea eax, [ebp - 4]
mov edx, dword [0x4a68639c]
call fcn.4a609274
ret