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

Disassembly:
sub esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push eax
push ecx
mov dword [esp + 0x18], ebx
call fcn.00409180
mov esi, eax
add esp, 8
test esi, esi
je 0x47ca8f
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x14], ebp
cmp ebx, 0x100
jge 0x47ca8f
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x34]
test eax, eax
jne 0x47ca80
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
test eax, eax
je 0x47c94c
mov ax, word [esi + 0x3c]
and eax, 0xffff
cmp eax, 0x1b5
jg 0x47c8d3
cmp eax, 0x1ae
jge 0x47ca80
mov ecx, eax
sub ecx, 2
je 0x47ca80
jmp 0x47c8de
cmp eax, 0x1db
je 0x47ca80
mov ecx, dword [esp + 0x2c]
mov ebx, 1
sub ecx, 2
je 0x47c908
mov edx, dword [0xcc53c4]
lea ecx, [eax*8]
sub ecx, eax
test byte [edx + ecx*4], 0x40
jne 0x47c90d
mov ebx, 7
jmp 0x47c90d
mov ebx, 6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov edx, dword [esi]
mov ecx, esi
movsx edi, ax
call dword [edx + 0x44]
mov edx, dword [esp + 0x10]
movsx ecx, ax
mov eax, ebp
inc edx
add ebp, 0xc
mov dword [esp + 0x10], edx
mov word [eax + 4], cx
sub ecx, edi
mov dword [esp + 0x14], ebp
mov word [eax], bx
mov word [eax + 2], di
mov word [eax + 6], cx
mov dword [eax + 8], esi
jmp 0x47ca80
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
test eax, eax
je 0x47ca80
mov eax, dword [0xcc535c]
xor ebx, ebx
cmp esi, eax
je 0x47ca80
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x24]
test eax, eax
jne 0x47ca80
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, edx
mov dword [esp + 0x18], ecx
sub eax, 2
je 0x47cae3
test ecx, 0x240
je 0x47c9a2
mov ebx, 1
test cl, 0x40
jne 0x47c9b7
test ch, 2
je 0x47c9af
or ebx, 2
test ch, 4
je 0x47c9b7
or ebx, 4
cmp edx, 1
jne 0x47ca0c
xor eax, eax
mov ax, word [esi + 0x3c]
cmp eax, 0x846
jg 0x47c9e2
je 0x47ca09
cmp eax, 0x692
je 0x47ca09
cmp eax, 0x6f4
jle 0x47c9e9
cmp eax, 0x6f6
jle 0x47ca09
jmp 0x47c9e9
cmp eax, 0x873
je 0x47ca09
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
test eax, eax
je 0x47c9ff
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x64]
test eax, eax
jne 0x47ca09
test dword [esp + 0x18], 0x20000000
je 0x47ca0c
and ebx, 0xfffffffe
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
test eax, eax
je 0x47ca2a
mov ax, word [esi + 0x3c]
cmp ax, 0x3946
jb 0x47ca2a
cmp ax, 0x3964
ja 0x47ca2a
and ebx, 0xfffffffe
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
test eax, eax
je 0x47ca40
cmp word [esi + 0x3c], 0x82
jne 0x47ca40
and ebx, 0xfffffffe
test ebx, ebx
je 0x47ca80
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x78]
mov edi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x44]
mov dx, word [esi + 0x28]
mov ecx, ebp
mov ebp, dword [esp + 0x10]
inc ebp
mov word [ecx], bx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
add ebp, 0xc
mov word [ecx + 2], dx
mov dword [esp + 0x14], ebp
mov word [ecx + 4], ax
mov word [ecx + 6], di
mov dword [ecx + 8], esi
mov esi, dword [esi + 0x1c]
mov ebx, dword [esp + 0x10]
test esi, esi
jne 0x47c881
mov al, byte [0xcc5184]
test al, al
jne 0x47cb60
mov edi, dword [0xcc5394]
test edi, edi
je 0x47cb60
mov edx, dword [esp + 0x20]
lea ecx, [ebx + ebx*2]
lea ebx, [edx + ecx*4]
movsx eax, word [edi + 0x24]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], 0
cmp ecx, eax
jne 0x47cb46
movsx ecx, word [edi + 0x26]
cmp dword [esp + 0x28], ecx
jne 0x47cb46
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x47caed
jle 0x47cb18
cmp eax, 2
jg 0x47cb18
jmp 0x47cb46
mov ebx, 6
jmp 0x47ca44
mov eax, dword [0xcc535c]
mov edx, dword [eax + 0x1f0]
mov ecx, dword [eax + 0x1f4]
cmp edx, ecx
je 0x47cb46
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xa0]
test eax, eax
jne 0x47cb46
mov dword [esp + 0x20], 1
mov ebp, dword [esp + 0x10]
mov cx, word [edi + 0x28]
inc ebp
mov eax, ebx
mov dword [esp + 0x10], ebp
mov bp, word [esp + 0x20]
lea edx, [ecx + 0x10]
add ebx, 0xc
mov word [eax], bp
mov word [eax + 2], cx
mov word [eax + 4], dx
mov word [eax + 6], 0x10
mov dword [eax + 8], esi
mov edi, dword [edi + 0xc0]
test edi, edi
jne 0x47cab4
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0xc
ret