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

Disassembly:
sub esp, 0x414
mov eax, dword [0x4d36a4]
xor eax, esp
mov dword [esp + 0x410], eax
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x428]
lea eax, [esp + 0x20]
push 0x400
push eax
push dword [edi + 0x70]
push dword [edi + 0x7c]
call fcn.00480e30
movzx eax, word [esp + 0x22e]
add esp, 0x10
cmp dword [edi + 0x70], 0
movzx ebp, word [esp + 0x21a]
movzx ebx, word [esp + 0x218]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ebp
movzx ebp, word [esp + 0x21c]
mov dword [edi + 0x74], eax
jne 0x487987
mov ecx, dword [esp + 0x34]
xor eax, eax
bswap ecx
mov edx, 0x200
mov esi, 0x400
cmp ecx, 0x52434842
je 0x48795e
cmp ecx, 0x42484352
jne 0x487972
movzx esi, word [esp + 0x30]
xor eax, eax
cmp byte [esp + 0x2f], 0x21
movzx edx, word [esp + 0x32]
sete al
push esi
push edx
push eax
push dword [edi + 0x7c]
call fcn.00485530
add esp, 0x10
test eax, eax
jne 0x487987
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0x74]
test eax, eax
je 0x487dd5
mov esi, dword [edi + 0x7c]
xor edx, edx
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x4879a6
cmp eax, 0xffffffff
setne dl
jmp 0x4879b4
movzx ecx, word [esi + 0x2e]
div ecx
mov ecx, dword [esi + 0x28]
neg edx
sbb edx, edx
inc edx
test edx, edx
je 0x487dd5
test ecx, ecx
je 0x4879ca
movzx eax, word [esi + 0x30]
mov dword [esp + 0x14], eax
jmp 0x4879d2
mov dword [esp + 0x14], 0
push dword [esi + 8]
call fcn.00441ab0
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x10], eax
mov esi, edx
mov eax, dword [edi + 0x74]
xor edx, edx
call fcn.004a25f0
cmp edx, esi
jg 0x487dd5
jl 0x487a05
cmp eax, dword [esp + 0x10]
jae 0x487dd5
mov ecx, dword [edi + 0x7c]
mov ax, word [esp + 0x2c]
cmp ax, word [ecx + 0x32]
ja 0x487dd5
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, cx
movzx esi, dx
mov dword [esp + 0x10], eax
add eax, esi
cmp eax, 0x200
ja 0x487dd5
mov eax, ebx
add esi, eax
mov dword [esp + 0x14], esi
cmp esi, 0x200
ja 0x487dd5
mov ecx, dword [esp + 0x10]
mov esi, ebp
add ecx, esi
mov dword [esp + 0x10], ecx
cmp ecx, 0x200
mov ecx, dword [esp + 0x18]
ja 0x487dd5
cmp bp, bx
jae 0x487a80
cmp dword [esp + 0x10], eax
jbe 0x487a94
cmp byte [esp + eax + 0x220], 0
je 0x487a94
jmp 0x487dd5
cmp dword [esp + 0x14], esi
jbe 0x487a94
cmp byte [esp + eax + 0x220], 0
jne 0x487dd5
test bp, bp
jne 0x487aab
test cx, cx
je 0x487ab5
test bx, bx
jne 0x487aab
test dx, dx
je 0x487aab
movzx ebx, cx
test cx, cx
jne 0x487ac4
cmp bx, bp
jb 0x487aba
movzx eax, bx
jmp 0x487abf
mov eax, 0x200
sub eax, ebp
movzx ecx, ax
test dx, dx
jne 0x487adb
cmp bx, bp
mov eax, 0x200
cmovbe eax, esi
sub eax, ebx
movzx ebp, ax
jmp 0x487adf
mov ebp, dword [esp + 0x1c]
movzx esi, cx
lea eax, [esi + 1]
push eax
call fcn.004340b0
push esi
lea ecx, [esp + 0x228]
mov dword [edi + 4], eax
push ecx
push eax
call fcn.0045ff80
mov eax, dword [edi + 0x7c]
add esp, 0x10
mov cx, word [esp + 0x2c]
mov word [edi + 0x16], cx
movzx ecx, cx
movzx eax, word [eax + 0x2e]
add ecx, 8
sub eax, 0xc
mov dword [edi + 0x34], 0
cdq
idiv ecx
mov dword [edi + 0x3c], 0
mov word [edi + 0x78], ax
mov al, byte [esp + 0x2e]
movzx ecx, al
mov byte [edi + 0x1b], al
mov eax, ecx
and eax, 1
mov dword [edi + 0x20], eax
mov eax, ecx
shr eax, 1
and eax, 1
shr ecx, 2
mov dword [edi + 0x30], eax
and ecx, 1
xor eax, eax
mov dword [edi + 0x24], ecx
cmp word [esp + 0x216], ax
mov dword [edi + 0x2c], ecx
sete al
mov dword [edi + 0x28], ecx
mov dword [edi + 0x38], eax
mov dword [edi + 0x1c], eax
mov al, byte [esp + 0x2f]
cmp al, 1
je 0x487b7c
cmp al, 0x21
je 0x487b7c
xor eax, eax
jmp 0x487b89
xor eax, eax
cmp byte [esp + 0x213], 1
sete al
mov dword [edi + 0x40], eax
cmp byte [edi + 0x1b], 0
jl 0x487ddc
mov edx, dword [edi + 4]
cmp byte [edx], 0
je 0x487dd5
mov eax, dword [edi + 0x7c]
push edx
mov eax, dword [eax + 0xc]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x140]
call eax
add esp, 8
cmp eax, 1
je 0x487dd5
mov ecx, dword [edi + 0x7c]
push 0
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x18]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0xc]
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x7c]
mov ecx, dword [eax + 0xc]
push ecx
mov eax, dword [ecx + 0xec]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push dword [edi + 0xc]
call fcn.0042f2a0
push eax
call fcn.00481390
movzx ecx, al
add esp, 0x10
cmp ecx, 0x43
mov word [edi + 0x14], cx
setne al
dec al
and al, 0x20
mov byte [edi + 0x1a], al
cmp ecx, 0x43
jne 0x487c2a
mov eax, dword [edi + 0x7c]
push dword [eax + 0xc]
call fcn.00481da0
add esp, 4
jmp 0x487c31
mov dword [edi + 0x40], 0
mov eax, dword [edi + 0x7c]
push dword [edi + 4]
push dword [eax + 0xc]
call fcn.0046d850
mov word [edi + 0x18], ax
add esp, 8
movzx eax, bx
lea ebx, [esp + 0x220]
add ebx, eax
cmp byte [ebx], 0
je 0x487d19
movzx esi, bp
lea eax, [esi + 1]
push eax
call fcn.004340b0
push esi
push ebx
push eax
mov dword [edi + 8], eax
call fcn.0045ff80
mov eax, dword [edi + 0x7c]
push dword [edi + 8]
mov eax, dword [eax + 0xc]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x140]
call eax
add esp, 0x18
cmp eax, 1
je 0x487d12
mov ecx, dword [edi + 0x7c]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x18]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [eax + 0x18], 0
push dword [edi + 0x10]
call fcn.0042f2a0
push eax
call fcn.00481390
add esp, 8
cmp al, 0x4c
je 0x487d19
mov eax, dword [edi + 0x7c]
mov ebx, dword [eax + 0xc]
call fcn.00433880
test ax, ax
jne 0x487d12
call fcn.0043baa0
mov esi, eax
push 0x21
push esi
call fcn.0043bba0
push 0x41d
push esi
call fcn.0043bc40
push 0
push esi
call fcn.0043bc00
push 0x21
call fcn.0044b6a0
push eax
push esi
call fcn.0043bb40
mov eax, dword [ebx]
push esi
push ebx
mov eax, dword [eax + 0x144]
call eax
push esi
call fcn.0043c2d0
add esp, 0x30
mov dword [edi + 0x74], 0
mov eax, dword [edi + 0x7c]
push dword [esp + 0x10]
mov eax, dword [eax + 0xc]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
call eax
mov ebp, dword [edi + 0x7c]
add esp, 8
movzx eax, word [edi + 0x16]
cmp ax, word [ebp + 0x32]
ja 0x487d77
movzx ecx, word [edi + 0x14]
cmp ecx, 0x55
je 0x487d77
cmp ecx, 0x4e
jne 0x487d5c
cmp eax, 8
je 0x487ddc
cmp eax, 4
jne 0x487d77
jmp 0x487ddc
cmp ecx, 0x44
jne 0x487d68
cmp eax, 8
jne 0x487d77
jmp 0x487ddc
cmp ecx, 0x54
je 0x487d61
cmp ecx, 0x4c
jne 0x487ddc
cmp eax, 1
je 0x487ddc
mov ebp, dword [ebp + 0xc]
xor ebx, ebx
cmp word [edi + 0x14], 0x55
setne bl
add ebx, 0x21
call fcn.00433880
test ax, ax
jne 0x487dd5
call fcn.0043baa0
mov esi, eax
push ebx
push esi
call fcn.0043bba0
push 0x402
push esi
call fcn.0043bc40
push 0
push esi
call fcn.0043bc00
push ebx
call fcn.0044b6a0
push eax
push esi
call fcn.0043bb40
mov eax, dword [ebp]
push esi
push ebp
mov eax, dword [eax + 0x144]
call eax
push esi
call fcn.0043c2d0
add esp, 0x30
mov dword [edi + 0x74], 0
mov ecx, dword [esp + 0x420]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004a209e
add esp, 0x414
ret