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

Disassembly:
sub esp, 0x418
mov eax, dword [0x984164]
xor eax, esp
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x41c]
push ebx
push ebp
push esi
mov esi, dword [eax + 0x40]
mov dword [esp + 0x38], eax
mov al, byte [esi + 0xbd]
and al, 1
movzx ebp, al
neg ebp
sbb ebp, ebp
push edi
and ebp, 0x4c
mov edi, ecx
add ebp, 0x5c
xor ebx, ebx
lea eax, [edi + 0x90]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x64], ebp
mov dword [esp + 0x28], eax
cmp dword [esi + 0x98], ebx
je 0x47875c
cmp dword [esi + 0x1a68], edi
jne 0x47875c
mov ecx, ebp
push 0x208
shr ecx, 1
lea edx, [esp + ecx*2 + 0x6c]
push ebx
push edx
call fcn.0051c1b0
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x44]
mov eax, dword [esi + 0x98]
add esp, 0xc
push esi
push ecx
xor cl, cl
lea edx, [esp + 0x320]
call fcn.00471c50
lea edx, [esp + 0x318]
mov eax, edx
mov dword [esp + 0x28], edx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x478745
sub eax, edx
lea ecx, [ebp + 0x208]
add eax, eax
mov dword [esp + 0x2c], ecx
jmp 0x478773
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x478760
sub eax, edx
add eax, eax
lea edx, [eax + ebp + 2]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
push ebx
push eax
lea eax, [esi + 0x960]
push esi
call fcn.0045a2b0
mov esi, eax
mov ecx, esi
or ecx, edx
mov dword [esp + 0x34], edx
je 0x478bcc
mov dword [edi + 0x44], edx
mov edx, dword [esp + 0x28]
push 0x5c
push edx
mov dword [edi + 0x40], esi
call fcn.0050a4d0
mov ecx, eax
sub ecx, dword [esp + 0x30]
add esp, 8
lea ecx, [ecx + ecx + 2]
mov dword [esp + 0x18], ecx
cmp eax, ebx
jne 0x4787c6
xor ecx, ecx
mov dword [esp + 0x18], ecx
xor eax, eax
add ebp, esi
adc eax, dword [esp + 0x34]
xor edx, edx
add ecx, ebp
adc edx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 0x50]
mov dword [esp + 0x44], edx
mov edx, dword [edi + 0x30]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x18], ecx
test ecx, 0x2000
jne 0x478822
cmp dword [edi + 0x60], ebx
jne 0x478822
test cl, 0x80
je 0x478828
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 8]
test dword [ecx + 0xc0], 0x1000000
je 0x478828
xor edx, edx
mov dword [esp + 0x54], ebx
mov ecx, dword [esp + 0x18]
shr ecx, 0xd
not cl
and cl, 1
mov byte [esp + 0x17], cl
mov ecx, edx
or ecx, dword [esp + 0x54]
mov dword [esp + 0x24], 0x4000
je 0x478856
cmp byte [esp + 0x17], bl
jne 0x478856
mov dword [esp + 0x24], 0x84000
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
shr ecx, 0xe
and ebp, 0x200
and ecx, 0x400
or ecx, ebp
shr ecx, 8
or dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
movzx ebp, byte [ecx + 0xc0]
neg ebp
sbb ebp, ebp
and ebp, 0xffff0002
add ebp, 0xffff
test byte [ecx + 0xbd], 1
mov ecx, dword [esp + 0x34]
movzx ebp, bp
mov dword [esp + 0x18], ebp
mov ebp, esi
mov dword [esp + 0x68], esi
je 0x478a22
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x74], ecx
add ebp, 0x10
adc ecx, ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x98], ecx
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0xa0], edx
mov dword [esp + 0x100], edx
mov edx, dword [edi + 0x48]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xa8], edx
mov word [esp + 0xc0], ax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x20]
add eax, 2
lea edx, [ecx + 2]
mov word [esp + 0xb2], dx
mov edx, dword [esp + 0x48]
mov word [esp + 0xc2], ax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0xcc], edx
mov dx, word [esp + 0x18]
mov word [esp + 0xd6], ax
movzx eax, byte [esp + 0x17]
mov word [esp + 0xd4], dx
mov edx, dword [edi + 0x54]
mov dword [esp + 0x70], esi
mov dword [esp + 0x78], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0xac], ebx
mov word [esp + 0xb0], cx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ebx
jmp 0x478b00
add ebp, 8
adc ecx, ebx
mov dword [esp + 0x5c], ecx
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x20]
mov word [esp + 0x8c], cx
add ecx, 2
mov word [esp + 0x8e], cx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x84], edx
mov dword [esp + 0xb8], edx
mov edx, dword [edi + 0x48]
mov dword [esp + 0x90], ecx
mov cx, word [esp + 0x18]
mov word [esp + 0x94], ax
add eax, 2
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x40]
mov word [esp + 0x96], ax
mov eax, dword [esp + 0x24]
mov word [esp + 0xa0], cx
movzx ecx, byte [esp + 0x17]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov eax, dword [edi + 0x54]
xor edx, edx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov word [esp + 0xa2], dx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xbc], ebx
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x28]
shr eax, 1
lea eax, [esp + eax*2 + 0x68]
shr ecx, 1
mov dl, byte [edi]
movzx dx, dl
mov word [eax], dx
inc edi
add eax, 2
sub ecx, 1
jne 0x478b10
mov edi, dword [esp + 0x3c]
mov word [eax], cx
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x68]
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [edi + 0x24]
push esi
mov ecx, edi
call eax
test al, al
jne 0x478bcc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 0x1a78]
test byte [eax + 0xbd], 1
mov eax, dword [eax + 0x1a7c]
push ecx
push esi
mov esi, edi
je 0x478b9a
add edx, 0x10
adc eax, ebx
push eax
push edx
call fcn.00455a70
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x1a78]
mov ecx, dword [esp + 0x5c]
mov eax, dword [eax + 0x1a7c]
push ecx
add edx, 0x20
push ebp
adc eax, ebx
push eax
push edx
call fcn.00455a70
xor eax, eax
jmp 0x478bd1
add edx, 0xc
adc eax, ebx
push eax
push edx
call fcn.00455960
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x1a78]
mov ecx, dword [esp + 0x5c]
mov eax, dword [eax + 0x1a7c]
push ecx
add edx, 0x14
push ebp
adc eax, ebx
push eax
push edx
call fcn.00455960
xor eax, eax
jmp 0x478bd1
mov eax, 0xc000009a
mov ecx, dword [esp + 0x424]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005078c8
add esp, 0x418
ret 4