Function at 0x4a4510
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5ed4d8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x48
push ebx
push ebp
push esi
mov edx, dword [esp + 0x64]
push edi
push 0
mov edi, ecx
push 0
push 0
lea eax, [esp + 0x2c]
push 0
lea ecx, [esp + 0x78]
push eax
push ecx
push 0
push 0
push edx
mov ecx, edi
mov dword [esp + 0x58], edi
call fcn.0049ce70
mov esi, eax
lea eax, [esp + 0x30]
push 0
lea ecx, [esp + 0x3c]
push eax
push ecx
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x1c]
push 0
lea eax, [esp + 0x3c]
push edx
push eax
push 0
push 0
push ecx
mov ecx, edi
call fcn.0049ce70
cmp esi, 0xd
jne 0x4a4a81
cmp eax, esi
jne 0x4a4a81
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
jne 0x4a4a81
mov eax, dword [ecx + 0xcc]
test eax, eax
jne 0x4a45b3
mov dword [esp + 0x14], 0
jmp 0x4a45bd
mov edx, dword [ecx + 0xc4]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + 0x68]
test eax, eax
jne 0x4a45c8
xor esi, esi
jmp 0x4a45cb
mov esi, dword [ecx + 0x60]
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x4a45fe
mov edi, dword [esp + 0x14]
jmp 0x4a45dd
mov ecx, dword [esp + 0x68]
mov eax, dword [esi + eax*4]
add eax, edi
push eax
call fcn.004ee940
cmp eax, 1
je 0x4a45fa
mov eax, dword [esp + 0x20]
dec eax
test eax, eax
mov dword [esp + 0x20], eax
jg 0x4a45d9
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x4a462d
mov edi, dword [esp + 0x14]
jmp 0x4a4610
mov ecx, dword [esp + 0x68]
mov edx, dword [esi + eax*4]
add edx, edi
push edx
call fcn.004ee940
cmp eax, 1
mov eax, dword [esp + 0x10]
je 0x4a462d
dec eax
test eax, eax
mov dword [esp + 0x10], eax
jg 0x4a460c
mov ecx, dword [esp + 0x20]
mov ecx, dword [esi + ecx*4]
mov dword [esp + 0x1c], ecx
mov edi, dword [esi + eax*4]
test ecx, ecx
jle 0x4a464f
mov edx, dword [esp + 0x14]
cmp byte [ecx + edx - 1], 0x6d
jne 0x4a464f
dec ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x14]
lea ecx, [edi + eax]
push ecx
call fcn.004cb5c0
mov edx, dword [esp + 0x6c]
add edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
mov edi, dword [edx + 0x68]
add esp, 4
shr edi, 2
inc eax
cmp eax, edi
mov dword [esp + 0x10], eax
jge 0x4a46a1
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + eax*4]
mov ecx, dword [esp + 0x68]
add eax, ebx
push eax
call fcn.004ee940
cmp eax, 1
je 0x4a46a1
mov eax, dword [esp + 0x10]
inc eax
cmp eax, edi
mov dword [esp + 0x10], eax
jl 0x4a4680
mov eax, dword [esp + 0x68]
xor ecx, ecx
cmp dword [eax + 0x7c], ecx
jne 0x4a46b0
xor esi, esi
jmp 0x4a46b3
mov esi, dword [eax + 0x74]
mov edx, dword [eax + 0x7c]
mov eax, 0x38e38e39
mul edx
mov ebp, edx
mov dword [esp + 0x24], ecx
shr ebp, 1
cmp ebp, ecx
mov dword [esp + 0x28], ecx
jle 0x4a491a
mov edx, dword [esp + 0x1c]
mov cl, byte [esi]
mov ebx, dword [esi + 1]
inc esi
mov byte [esp + 0x6c], cl
mov eax, dword [esp + 0x6c]
add esi, 4
and eax, 0xff
mov edi, dword [esi]
add esi, 4
dec eax
cmp eax, 3
ja case.default.0x4a46f6
jmp dword [eax*4 + 0x4a4aa8]
mov eax, dword [esp + 0x18]
cmp edx, ebx
jg 0x4a4713
cmp eax, ebx
jle 0x4a4713
cmp eax, edi
jle 0x4a47c8
jmp 0x4a4717
cmp eax, edi
jle case.default.0x4a46f6
cmp edx, ebx
jle case.default.0x4a46f6
cmp edx, edi
jle 0x4a47c8
jmp case.default.0x4a46f6
mov eax, dword [esp + 0x18]
inc edi
cmp edx, ebx
jg 0x4a473c
cmp eax, ebx
jle 0x4a473c
cmp eax, edi
jle 0x4a47da
jmp 0x4a4740
cmp eax, edi
jle 0x4a474c
cmp edx, ebx
jle 0x4a474c
cmp edx, edi
jl 0x4a47da
mov eax, dword [esp + 0x24]
test eax, eax
jne case.default.0x4a46f6
cmp cl, 2
je case.default.0x4a46f6
cmp edx, ebx
jle case.default.0x4a46f6
cmp dword [esp + 0x18], edi
jg case.default.0x4a46f6
mov dword [esp + 0x24], 1
mov eax, dword [esp + 0x28]
inc eax
cmp eax, ebp
mov dword [esp + 0x28], eax
jl 0x4a46d5
cmp dword [esp + 0x24], 1
jne 0x4a491a
mov ecx, dword [esp + 0x14]
lea esi, [edx + ecx]
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0xcc]
mov edx, dword [esp + 0x18]
cmp eax, edx
jl 0x4a47a2
mov eax, edx
lea edi, [eax + ecx]
xor ebp, ebp
cmp esi, edi
jae 0x4a491a
mov bl, byte [esi]
cmp bl, 0x6d
mov byte [esp + 0x6c], bl
jne 0x4a481c
mov al, byte [esi]
inc esi
cmp al, 0x6d
mov byte [esp + 0x6c], al
jne 0x4a47ec
inc ebp
jmp 0x4a47f7
push 0x669014
call fcn.004ff630
add esp, 4
jmp 0x4a4a81
push 0x668fd8
call fcn.004ff630
add esp, 4
jmp 0x4a4a81
cmp al, 0x74
jne 0x4a47f7
dec ebp
je 0x4a4912
mov eax, dword [esp + 0x6c]
push eax
call fcn.004ee1a0
add esp, 4
cmp eax, 1
jne 0x4a4812
mov ecx, esi
call fcn.004eb460
add esi, eax
cmp esi, edi
jae 0x4a491a
jmp 0x4a47ba
cmp bl, 0x6b
jne 0x4a485f
mov al, byte [esi]
inc esi
cmp al, 0x6b
mov byte [esp + 0x6c], al
jne 0x4a482f
inc ebp
jmp 0x4a483a
cmp al, 0x72
jne 0x4a483a
dec ebp
je 0x4a4912
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.004ee1a0
add esp, 4
cmp eax, 1
jne 0x4a4855
mov ecx, esi
call fcn.004eb460
add esi, eax
cmp esi, edi
jae 0x4a491a
jmp 0x4a4821
cmp bl, 0x6c
jne 0x4a489e
mov al, byte [esi]
inc esi
cmp al, 0x6c
mov byte [esp + 0x6c], al
jne 0x4a4872
inc ebp
jmp 0x4a487d
cmp al, 0x73
jne 0x4a487d
dec ebp
je 0x4a4912
mov edx, dword [esp + 0x6c]
push edx
call fcn.004ee1a0
add esp, 4
cmp eax, 1
jne 0x4a4898
mov ecx, esi
call fcn.004eb460
add esi, eax
cmp esi, edi
jae 0x4a491a
jmp 0x4a4864
cmp bl, 0x70
jne 0x4a48d9
mov bl, byte [esi]
inc esi
cmp bl, 0x70
mov byte [esp + 0x6c], bl
jne 0x4a48b0
inc ebp
mov eax, dword [esp + 0x6c]
push eax
call fcn.004ee1a0
add esp, 4
cmp eax, 1
jne 0x4a48cb
mov ecx, esi
call fcn.004eb460
add esi, eax
cmp bl, 0x71
jne 0x4a48d3
dec ebp
je 0x4a4912
cmp esi, edi
jae 0x4a491a
jmp 0x4a48a3
mov ecx, dword [esp + 0x6c]
inc esi
push ecx
call fcn.004ee1a0
add esp, 4
cmp eax, 1
jne 0x4a4900
cmp bl, 0x6e
je 0x4a4a96
mov ecx, esi
call fcn.004eb460
add esi, eax
jmp 0x4a4912
cmp bl, 0x50
je 0x4a4a96
cmp bl, 0x53
je 0x4a4a96
cmp esi, edi
jb 0x4a47af
lea ecx, [esp + 0x44]
call fcn.004918b0
xor ebp, ebp
push 0x6a
lea ecx, [esp + 0x48]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x40], ebp
mov word [esp + 0x44], 0xffff
mov word [esp + 0x46], bp
call fcn.00491bb0
lea edx, [esp + 0x3c]
push 8
push edx
lea ecx, [esp + 0x4c]
call fcn.00492170
push ebp
lea ecx, [esp + 0x48]
call fcn.00491be0
mov esi, dword [esp + 0x70]
mov ebx, 0x668fc0
cmp esi, ebp
jne 0x4a4970
mov ebx, 0x668fac
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
lea ecx, [esp + 0x48]
call fcn.00491be0
push ebx
lea ecx, [esp + 0x48]
call fcn.00491c20
push 0x136
lea ecx, [esp + 0x48]
call fcn.00491b70
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x4c]
neg eax
sbb eax, eax
and eax, edi
mov edi, dword [esp + 0x18]
neg esi
sbb esi, esi
mov ecx, edi
and esi, 0x20
add esi, 8
or word [eax + 7], si
mov esi, dword [esp + 0x1c]
sub ecx, esi
mov dword [eax + 1], ecx
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov eax, esi
push edx
neg eax
sbb eax, eax
push esi
and eax, ecx
mov ecx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x28]
push eax
add ecx, 0xbc
call fcn.0050c360
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
push esi
push edx
call fcn.004ec550
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x1c]
push 4
push eax
mov eax, dword [esp + 0x70]
lea edx, [ecx*4]
push edx
lea ecx, [eax + 0x58]
call fcn.004920d0
mov edx, dword [esp + 0x1c]
lea ecx, [esi + edi]
add esi, edx
push ecx
mov ecx, dword [esp + 0x6c]
push esi
call fcn.004ec4d0
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
push ebp
mov eax, dword [esi + 0x78]
push 1
push ebp
add edx, ecx
push eax
push edx
mov ecx, esi
call fcn.004c63e0
push 1
push ebp
push ebp
mov ecx, esi
call fcn.004c6e30
push 1
push ebp
mov ecx, esi
call fcn.004ca1a0
lea ecx, [esp + 0x44]
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x44], 0x5f7940
call fcn.00491ab0
mov ecx, dword [esp + 0x58]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x54
ret 0xc
push 0x668f74
call fcn.004ff630
add esp, 4
jmp 0x4a4a81