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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x244
mov eax, dword [0x5ff004]
xor eax, esp
mov dword [esp + 0x240], eax
push ebx
mov ebx, ecx
push esi
push edi
mov edi, edx
mov dword [esp + 0x24], ebx
cmp dword [ebx], 0
je 0x4b4756
mov esi, fcn.004108c0
mov ecx, 0x4042e0
jmp 0x4b4760
mov esi, fcn.00410860
mov ecx, fcn.00404290
mov eax, dword [ebx + 0x70]
add eax, 4
mov dword [esp + 0x14], ecx
push edi
push eax
mov dword [esp + 0x30], esi
call ecx
movzx eax, ax
xor ecx, ecx
add esp, 8
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x4b4af2
lea ebx, [ebx]
mov eax, dword [ebx + 0x70]
push edi
lea eax, [eax + ecx*4]
add eax, 0x10
push eax
call esi
mov esi, dword [ebx + 0x70]
add esi, eax
push 1
mov eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x2c]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x1c
cmp eax, 1
je 0x4b47c2
mov byte [esp + 0x13], 0xff
jmp 0x4b47ca
mov al, byte [esp + 0x18]
mov byte [esp + 0x13], al
lea eax, [esi + 2]
push edi
push eax
call dword [esp + 0x1c]
movzx eax, ax
mov dword [esp + 0x38], eax
lea eax, [esi + 5]
cdq
push 1
push edx
push eax
lea eax, [esp + 0x2d]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x1c
cmp eax, 1
je 0x4b47f8
or al, 0xff
jmp 0x4b47fc
mov al, byte [esp + 0x19]
movzx eax, al
mov dword [esp + 0x38], eax
lea eax, [esi + 0x1a]
push edi
push eax
call dword [esp + 0x1c]
add esp, 8
movzx eax, ax
cmp byte [esp + 0x13], 8
mov dword [esp + 0x20], eax
ja 0x4b482c
mov dword [esp + 0x34], 0xf
mov eax, 0x50
jmp 0x4b4859
push 1
lea eax, [esi + 0x23]
cdq
push edx
push eax
lea eax, [esp + 0x26]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x14
cmp eax, 1
je 0x4b484a
or al, 0xff
jmp 0x4b484e
mov al, byte [esp + 0x1a]
movzx eax, al
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
add eax, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
add eax, esi
cmp dword [esp + 0x38], 0
mov dword [esp + 0x2c], eax
jbe 0x4b4adb
add eax, 2
push edi
push eax
call dword [esp + 0x1c]
movzx esi, ax
mov eax, dword [esp + 0x34]
add eax, 4
push edi
push eax
call dword [esp + 0x24]
add dword [esp + 0x3c], esi
movzx ecx, ax
mov eax, dword [ebx + 0x74]
push edi
lea eax, [eax + ecx*4]
add eax, 0x10
push eax
call dword [esp + 0x40]
mov esi, dword [ebx + 0x74]
add esi, eax
push 1
mov eax, esi
mov dword [esp + 0x3c], esi
cdq
push edx
push eax
lea eax, [esp + 0x3f]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x2c
cmp eax, 1
jne 0x4b48cf
cmp byte [esp + 0x1b], 2
lea eax, [esi + 0x16]
jbe 0x4b48d2
lea eax, [esi + 6]
push edi
push eax
call dword [esp + 0x1c]
movzx eax, ax
add esp, 8
movzx esi, ax
add esi, dword [esp + 0x20]
cmp esi, dword [ebx + 0x78]
jae 0x4b4acc
mov edi, edi
push 1
lea eax, [esi + 1]
mov dword [esp + 0x24], esi
cdq
push edx
push eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x14
cmp eax, 1
je 0x4b4913
or bh, 0xff
jmp 0x4b4917
mov bh, byte [esp + 0x1c]
push 1
lea eax, [esi + 2]
cdq
push edx
push eax
lea eax, [esp + 0x29]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x14
cmp eax, 1
je 0x4b4936
or bl, 0xff
jmp 0x4b493a
mov bl, byte [esp + 0x1d]
push 1
lea eax, [esi + 3]
cdq
push edx
push eax
lea eax, [esp + 0x2a]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x14
cmp eax, 1
je 0x4b495b
mov byte [esp + 0x13], 0xff
jmp 0x4b4963
mov al, byte [esp + 0x1e]
mov byte [esp + 0x13], al
cmp bl, 2
jne 0x4b4aa6
movzx eax, bh
add eax, esi
push edi
push eax
call dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push edi
mov ecx, dword [ecx + 0x78]
add ecx, 0x10
lea eax, [ecx + eax*4]
push eax
call dword [esp + 0x38]
mov ecx, eax
mov eax, dword [esp + 0x34]
push 1
add ecx, dword [eax + 0x78]
mov dword [esp + 0x54], ecx
lea eax, [ecx + 1]
cdq
push edx
push eax
lea eax, [esp + 0x3b]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x24
cmp eax, 1
je 0x4b49c4
movzx eax, byte [esp + 0x13]
add eax, dword [esp + 0x20]
movzx esi, bh
add esi, eax
jmp 0x4b4ab9
cmp byte [esp + 0x1f], 1
jne 0x4b4aa6
mov eax, dword [esp + 0x40]
add eax, 4
push edi
push eax
call dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
add esp, 8
movzx eax, ax
cmp ax, word [ecx + 0x14]
jne 0x4b4aa6
mov edx, dword [ecx + 0x48]
cmp edx, 0xff
ja 0x4b4aa6
cmp byte [ecx + 0x88], 0
lea esi, [ecx + 0x88]
mov eax, dword [esp + 0x34]
push edi
jne 0x4b4a68
push dword [ecx + 0x44]
inc edx
lea ecx, [esp + 0x150]
call fcn.00404590
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x50]
push edi
push dword [esp + 0x3c]
lea edx, [edx + 1]
call fcn.00404590
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x15c]
push eax
push 0x5f51ec
push 0xff
push esi
call fcn.00401080
movzx eax, byte [esp + 0x37]
add esp, 0x24
add eax, dword [esp + 0x20]
movzx esi, bh
add esi, eax
jmp 0x4b4ab9
push dword [esp + 0x34]
lea edx, [eax + 1]
lea ecx, [esp + 0x50]
call fcn.00404590
push 0x5f4964
mov ecx, esi
call fcn.004b41d0
add esp, 0xc
lea eax, [esp + 0x48]
mov ecx, esi
push eax
call fcn.004b41d0
movzx esi, byte [esp + 0x17]
add esp, 4
movzx eax, bh
add eax, dword [esp + 0x20]
add esi, eax
jmp 0x4b4ab9
movzx ecx, byte [esp + 0x13]
dec bl
movzx eax, bh
add esi, eax
add esi, ecx
cmp bl, 7
ja 0x4b4ac8
mov ebx, dword [esp + 0x24]
cmp esi, dword [ebx + 0x78]
jb 0x4b48f0
jmp 0x4b4acc
mov ebx, dword [esp + 0x24]
sub dword [esp + 0x38], 1
mov eax, dword [esp + 0x2c]
jne 0x4b4874
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [esp + 0x44]
jl 0x4b4790
mov ecx, dword [esp + 0x24c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret