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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
push ebx
push esi
push edi
xor esi, esi
lea eax, [esp + 0x28]
push 0x40
mov ecx, eax
push esi
push ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x30], eax
call fcn.0065b340
mov edx, dword [ebp + 0xc]
mov edi, dword [edx + 0x3c]
add esp, 0xc
mov dword [esp + 0xc], edi
cmp edi, esi
je 0x47d96a
jmp 0x47d777
mov edi, dword [esp + 0xc]
cmp dword [edi + 0x50], 0x10
mov ebx, dword [edi + 4]
jne 0x47da6d
test ebx, ebx
je 0x47d7c3
cmp byte [ebx + 4], 0x72
jne 0x47d799
push ebx
call fcn.004c74c0
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x47d7c3
cmp byte [ebx + 4], 0x64
jne 0x47d7c3
push 0
push 0x98aa60
call fcn.004bb9f0
add esp, 8
test eax, eax
js 0x47d7c3
mov ecx, dword [ebx + 0x18]
mov ebx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x10], ebx
jmp 0x47d7cf
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x47d80a
cmp byte [ebx + 4], 0x72
jne 0x47d7e4
push ebx
call fcn.004c74c0
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x47d80a
cmp byte [ebx + 4], 0x64
jne 0x47d80a
push 0
push 0x98a7f8
call fcn.004bb9f0
add esp, 8
test eax, eax
js 0x47d80a
mov edx, dword [ebx + 0x18]
mov esi, dword [edx + eax*8 + 4]
jmp 0x47d80c
xor esi, esi
push 0x98a7f0
push 0x98a7f4
call fcn.004bbcf0
mov esi, dword [edi + 4]
add esp, 8
mov ebx, eax
mov dword [esp + 0x14], ebx
test esi, esi
je 0x47d868
cmp byte [esi + 4], 0x72
jne 0x47d83c
push esi
call fcn.004c74c0
add esp, 4
mov esi, eax
test esi, esi
je 0x47d868
cmp byte [esi + 4], 0x64
jne 0x47d868
push 0
push str.Rect
mov ebx, esi
call fcn.004bb9f0
mov ebx, dword [esp + 0x1c]
add esp, 8
test eax, eax
js 0x47d868
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x47d86a
xor eax, eax
lea edi, [esp + 0x70]
mov esi, eax
call fcn.004d1e40
mov ecx, dword [esp + 0x10]
xor esi, esi
cmp ecx, esi
je 0x47d9a6
cmp ebx, esi
je 0x47d9a6
fld dword [esp + 0x70]
fld dword [esp + 0x78]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x47d9a6
fld dword [esp + 0x74]
fld dword [esp + 0x7c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x47d9a6
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
push eax
mov eax, ecx
mov dword [esp + 0x84], 3
call fcn.004e0c50
mov dword [esp + 0x88], eax
mov al, byte [ebx + 4]
add esp, 4
mov dword [esp + 0x88], 1
cmp al, 0x72
jne 0x47d8f6
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x90], ecx
jmp 0x47d8fd
mov dword [esp + 0x90], esi
cmp al, 0x72
jne 0x47d90d
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x94], edx
jmp 0x47d914
mov dword [esp + 0x94], esi
mov ebx, dword [ebp + 0xc]
mov ecx, ebx
lea edx, [esp + 0x70]
mov dword [esp + 0x8c], esi
call fcn.004beb60
sub esp, 0x28
mov edi, esp
mov ecx, 0xa
lea esi, [esp + 0xa8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
mov eax, edx
mov edx, dword [ecx + 0x28]
push eax
push edx
call fcn.004d4570
mov ecx, dword [ebx + 0x38]
mov dword [eax + 0x3c], ecx
add esp, 0x30
mov dword [ebx + 0x38], eax
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x48]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x47d773
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x47dc56
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x28]
cmp eax, ecx
je 0x47dc4b
mov ecx, dword [esp + 0x68]
push eax
test ecx, ecx
jne 0x47dc44
call fcn.00658a01
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esp + 0xc]
mov ebx, dword [edx + 4]
cmp ebx, esi
je 0x47d9e7
cmp byte [ebx + 4], 0x72
jne 0x47d9c2
push ebx
call fcn.004c74c0
add esp, 4
mov ebx, eax
cmp ebx, esi
je 0x47d9e7
cmp byte [ebx + 4], 0x64
jne 0x47d9e7
push esi
push str.Contents
call fcn.004bb9f0
add esp, 8
test eax, eax
js 0x47d9e7
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x47d9e9
xor eax, eax
test eax, eax
je 0x47da66
cmp byte [eax + 4], 0x72
jne 0x47d9fc
push eax
call fcn.004c74c0
add esp, 4
test eax, eax
je 0x47da66
cmp byte [eax + 4], 0x73
jne 0x47da66
add eax, 0x12
test eax, eax
je 0x47d957
cmp byte [eax], 0
je 0x47d957
mov ebx, dword [esp + 0x18]
lea edi, [ebx + 1]
mov ecx, edi
lea esi, [esp + 0x18]
call fcn.0044f630
test al, al
jne 0x47da34
xor eax, eax
mov byte [eax], al
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
lea esi, [edx + ebx*4]
cmp eax, ebx
jbe 0x47da57
sub eax, ebx
add eax, eax
add eax, eax
push eax
lea eax, [esi + 4]
push esi
push eax
call fcn.006586a0
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], edi
mov dword [esi], ecx
jmp 0x47d957
mov eax, 0x925010
jmp 0x47da11
test ebx, ebx
je 0x47daa8
cmp byte [ebx + 4], 0x72
jne 0x47da82
push ebx
call fcn.004c74c0
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x47daa8
cmp byte [ebx + 4], 0x64
jne 0x47daa8
push 0
push str.Contents
call fcn.004bb9f0
add esp, 8
test eax, eax
js 0x47daa8
mov edx, dword [ebx + 0x18]
mov eax, dword [edx + eax*8 + 4]
jmp 0x47daaa
xor eax, eax
test eax, eax
je 0x47db25
cmp byte [eax + 4], 0x72
jne 0x47dabd
push eax
call fcn.004c74c0
add esp, 4
test eax, eax
je 0x47db25
cmp byte [eax + 4], 0x73
jne 0x47db25
add eax, 0x12
test eax, eax
je 0x47db2c
cmp byte [eax], 0
je 0x47db2c
cmp dword [edi + 0x50], 2
je 0x47db2c
mov ebx, dword [esp + 0x18]
lea edi, [ebx + 1]
mov ecx, edi
lea esi, [esp + 0x18]
call fcn.0044f630
test al, al
jne 0x47daf3
xor eax, eax
mov byte [eax], al
mov eax, dword [esp + 0x24]
lea esi, [eax + ebx*4]
mov eax, dword [esp + 0x18]
cmp eax, ebx
jbe 0x47db16
sub eax, ebx
add eax, eax
add eax, eax
push eax
lea ecx, [esi + 4]
push esi
push ecx
call fcn.006586a0
add esp, 0xc
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], edi
mov dword [esi], edx
jmp 0x47d957
mov eax, 0x925010
jmp 0x47dace
cmp dword [edi + 0x50], 0x13
jne 0x47d95b
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x47db74
cmp byte [ebx + 4], 0x72
jne 0x47db4e
push ebx
call fcn.004c74c0
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x47db74
cmp byte [ebx + 4], 0x64
jne 0x47db74
push 0
push 0x98aa5c
call fcn.004bb9f0
add esp, 8
test eax, eax
js 0x47db74
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x47db76
xor eax, eax
test eax, eax
je 0x47dbe5
cmp byte [eax + 4], 0x72
jne 0x47db89
push eax
call fcn.004c74c0
add esp, 4
test eax, eax
je 0x47dbe5
cmp byte [eax + 4], 0x73
jne 0x47dbe5
add eax, 0x12
test eax, eax
je 0x47d95b
cmp byte [eax], 0
je 0x47d95b
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x47dbec
cmp byte [ebx + 4], 0x72
jne 0x47dbbf
push ebx
call fcn.004c74c0
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x47dbec
cmp byte [ebx + 4], 0x64
jne 0x47dbec
push 0
push 0x98aa6c
call fcn.004bb9f0
add esp, 8
test eax, eax
js 0x47dbec
mov edx, dword [ebx + 0x18]
mov eax, dword [edx + eax*8 + 4]
jmp 0x47dbee
mov eax, 0x925010
jmp 0x47db9e
xor eax, eax
test eax, eax
je 0x47dc27
cmp byte [eax + 4], 0x72
jne 0x47dc01
push eax
call fcn.004c74c0
add esp, 4
test eax, eax
je 0x47dc27
mov cl, byte [eax + 4]
cmp cl, 0x69
jne 0x47dc12
mov eax, dword [eax + 0x10]
jmp 0x47dc29
cmp cl, 0x66
jne 0x47dc27
fld dword [eax + 0x10]
fadd qword [0x9ad788]
call fcn.0065d070
jmp 0x47dc29
xor eax, eax
test al, 1
jne 0x47d95b
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x1c]
call fcn.0044f5d0
jmp 0x47d95b
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
test ecx, 0xfffffffe
jbe 0x47dc85
mov edx, ecx
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + eax*4]
sub edx, eax
mov edi, dword [ecx + edx*4 - 4]
lea edx, [ecx + edx*4 - 4]
mov dword [ecx + eax*4], edi
mov dword [edx], esi
mov ecx, dword [esp + 0x18]
mov edx, ecx
inc eax
shr edx, 1
cmp eax, edx
jb 0x47dc60
lea ebx, [ecx + 1]
mov edi, ecx
mov ecx, ebx
lea esi, [esp + 0x18]
call fcn.0044f630
test al, al
jne 0x47dc9d
xor eax, eax
mov byte [eax], al
mov eax, dword [esp + 0x24]
lea esi, [eax + edi*4]
mov eax, dword [esp + 0x18]
cmp eax, edi
jbe 0x47dcc0
sub eax, edi
add eax, eax
add eax, eax
push eax
lea ecx, [esi + 4]
push esi
push ecx
call fcn.006586a0
add esp, 0xc
mov dword [esp + 0x18], ebx
mov dword [esi], 0
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x28]
mov esi, eax
cmp eax, edx
jne 0x47dd12
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x68]
lea edi, [edi*4 + 4]
push edi
test ecx, ecx
jne 0x47dcf6
call fcn.00658d9b
add esp, 4
jmp 0x47dcfd
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov esi, eax
test esi, esi
je 0x47dd12
push edi
lea eax, [esp + 0x2c]
push eax
push esi
call fcn.0065b3c0
add esp, 0xc
lea ecx, [esp + 0x28]
push 0x40
mov edx, ecx
push 0
push edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x30], ecx
call fcn.0065b340
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x34]
add esp, 0xc
cmp eax, ecx
je 0x47dd68
mov ecx, dword [esp + 0x68]
push eax
test ecx, ecx
jne 0x47dd61
call fcn.00658a01
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8