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

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x24]
push edi
call fcn.004bb170
mov edi, eax
test edi, edi
mov dword [esp + 4], edi
je 0x4c1b6a
inc dword [edi + 4]
push ebp
push esi
mov esi, dword [edi + 0xb0]
test esi, esi
mov dword [esp + 0x1c], esi
je 0x4c1ba7
mov eax, dword [esi + 4]
inc eax
push esi
push 0x72aacc
mov dword [esi + 4], eax
call fcn.004492f0
add esp, 8
test eax, eax
je 0x4c1ba7
mov ebp, dword [eax + 0x30]
test ebp, ebp
je 0x4c1ba7
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0xc]
cmp eax, 1
je 0x4c1bab
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x4c20b0
push 0xd8
call fcn.005354dd
mov edi, eax
add esp, 4
test edi, edi
je 0x4c1bd7
push 0x578c20
push 0x12
push 0xc
push edi
call fcn.004127b0
jmp 0x4c1bd9
xor edi, edi
push ebx
push 0x12
call fcn.005354dd
push 0x120
mov esi, eax
call fcn.005354dd
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4c1c0b
push 0x4b1630
push 0x12
push 0x10
push ebx
call fcn.004127b0
mov dword [esp + 0x18], ebx
jmp 0x4c1c13
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
mov ecx, 0x12
lea esp, [esp]
mov ebx, dword [0x71979c]
mov edx, eax
mov dword [edx], ebx
mov ebx, dword [0x7197a0]
mov dword [edx + 4], ebx
mov ebx, dword [0x7197a4]
mov dword [edx + 8], ebx
mov ebx, dword [0x7197a8]
add eax, 0x10
dec ecx
mov dword [edx + 0xc], ebx
jne 0x4c1c20
fld dword [ebp + 4]
mov eax, edi
fsub dword [ebp + 0x34]
fld dword [ebp + 0x38]
fadd dword [ebp + 8]
fld dword [ebp + 0xc]
fsub dword [ebp + 0x3c]
fld dword [ebp + 4]
fadd dword [ebp + 0x34]
fld dword [ebp + 8]
fsub dword [ebp + 0x38]
fst dword [esp + 0x14]
fld dword [ebp + 0xc]
fadd dword [ebp + 0x3c]
fst dword [esp + 0x1c]
fld st(5)
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
fld st(4)
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
mov dword [eax + 4], edx
fld st(3)
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
fld st(2)
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
fld st(4)
lea edx, [edi + 0xc]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov dword [edx], eax
fld st(3)
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [edx + 4], ecx
fld st(2)
fstp dword [esp + 0x24]
mov dword [edx + 8], eax
mov edx, dword [esp + 0x24]
fld st(1)
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fld st(3)
lea ecx, [edi + 0x18]
fstp dword [esp + 0x2c]
mov dword [ecx], edx
mov edx, dword [esp + 0x2c]
fld st(5)
fstp dword [esp + 0x24]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
fld st(1)
mov ecx, dword [esp + 0x24]
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
fld st(3)
fstp dword [esp + 0x2c]
lea eax, [edi + 0x24]
mov dword [eax], ecx
fld st(5)
mov ecx, dword [esp + 0x2c]
fstp dword [esp + 0x24]
mov dword [eax + 4], edx
fld st(4)
mov dword [eax + 8], ecx
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x24]
fld st(3)
mov ecx, dword [esp + 0x28]
fstp dword [esp + 0x2c]
lea edx, [edi + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov byte [esi], 1
mov byte [esi + 1], 1
mov byte [esi + 2], 1
fld st(5)
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov byte [esi + 3], 1
fld st(4)
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov byte [esi + 4], 0
fst dword [esp + 0x2c]
lea ecx, [edi + 0x3c]
mov dword [ecx], edx
fld st(2)
mov edx, dword [esp + 0x2c]
fstp dword [esp + 0x24]
mov dword [ecx + 4], eax
fld st(4)
fstp dword [esp + 0x28]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
fst dword [esp + 0x2c]
fld st(2)
lea eax, [edi + 0x48]
mov dword [eax], ecx
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
fld st(1)
mov dword [eax + 4], edx
fstp dword [esp + 0x28]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x24]
fst dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
fld st(5)
fstp dword [esp + 0x24]
lea edx, [edi + 0x54]
mov dword [edx], eax
fld st(1)
mov eax, dword [esp + 0x2c]
fstp dword [esp + 0x28]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
fst dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
fld st(5)
mov eax, dword [esp + 0x28]
fstp dword [esp + 0x24]
lea ecx, [edi + 0x60]
fld st(4)
mov dword [ecx], edx
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], eax
fst dword [esp + 0x2c]
mov dword [ecx + 8], edx
fld st(5)
mov ecx, dword [esp + 0x24]
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x28]
fld st(4)
lea eax, [edi + 0x6c]
fstp dword [esp + 0x28]
mov dword [eax], ecx
fld st(3)
mov ecx, dword [esp + 0x2c]
fstp dword [esp + 0x2c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov byte [esi + 5], 1
mov byte [esi + 6], 1
mov byte [esi + 7], 1
mov byte [esi + 8], 1
mov byte [esi + 9], 0
lea edx, [edi + 0x78]
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
fld st(5)
lea ecx, [edi + 0x84]
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [ecx], edx
fld st(4)
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [ecx + 4], eax
fst dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov dword [ecx + 8], edx
fld st(2)
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov byte [esi + 0xa], 1
fld st(4)
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
mov byte [esi + 0xb], 0
fld st(3)
fstp dword [esp + 0x2c]
lea eax, [edi + 0x90]
mov dword [eax], ecx
fld st(2)
mov ecx, dword [esp + 0x2c]
fstp dword [esp + 0x24]
mov dword [eax + 4], edx
fxch st(4)
mov dword [eax + 8], ecx
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x24]
fxch st(3)
mov ecx, dword [esp + 0x28]
fstp dword [esp + 0x2c]
lea edx, [edi + 0x9c]
mov dword [edx], eax
fst dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
fxch st(2)
mov dword [edx + 4], ecx
fstp dword [esp + 0x28]
mov dword [edx + 8], eax
mov edx, dword [esp + 0x24]
fst dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
fxch st(1)
mov byte [esi + 0xc], 1
fstp dword [esp + 0x24]
mov byte [esi + 0xd], 0
fld st(1)
lea ecx, [edi + 0xa8]
mov dword [ecx], edx
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
fstp dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
lea edx, [edi + 0xb4]
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
fstp dword [esp + 0x2c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x24]
fstp dword [esp + 0x24]
mov byte [esi + 0xe], 1
mov byte [esi + 0xf], 0
lea edx, [edi + 0xc0]
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
mov dword [edx + 4], ecx
mov dword [esp + 0x28], ecx
mov dword [edx + 8], eax
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x28]
lea eax, [edi + 0xcc]
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov byte [esi + 0x10], 1
mov byte [esi + 0x11], 0
mov edx, dword [ebx]
push str.BoundingBox
mov ecx, ebx
call dword [edx + 0x40]
mov ebp, eax
test ebp, ebp
je 0x4c2014
mov edx, dword [ebp + 4]
inc edx
push ebp
lea ecx, [esp + 0x20]
mov dword [ebp + 4], edx
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x74]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4c1fe9
mov edx, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edx
test edx, edx
mov dword [eax], edx
jne 0x4c1fe9
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0xa0]
mov edx, dword [ecx + 0xc]
xor eax, eax
test edx, edx
jbe 0x4c2014
mov ebx, dword [ecx + 4]
nop
cmp dword [ebx], ebp
je 0x4c20db
inc eax
add ebx, 4
cmp eax, edx
jb 0x4c2000
mov ebx, dword [esp + 0x10]
push 0xcc
call fcn.005354b8
add esp, 4
test eax, eax
je 0x4c2112
mov ecx, dword [esp + 0x18]
push esi
push 0
push 0
push 0
push ecx
push edi
push 0x12
mov ecx, eax
call fcn.0054b4a0
mov edi, eax
test edi, edi
je 0x4c2048
inc dword [edi + 4]
push str.BoundingBox
mov ecx, edi
call fcn.00541bf0
mov edx, dword [ebx]
push 1
push edi
mov ecx, ebx
call dword [edx + 0x70]
mov ecx, edi
call fcn.00535bb0
mov ecx, edi
call fcn.00535990
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx + 0xa0]
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], edi
call fcn.004c2b40
test edi, edi
pop ebx
je 0x4c2096
dec dword [edi + 4]
jne 0x4c2096
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
test ebp, ebp
je 0x4c20a8
dec dword [ebp + 4]
jne 0x4c20a8
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
test esi, esi
je 0x4c20c1
dec dword [esi + 4]
jne 0x4c20c1
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
mov eax, dword [edi + 4]
dec eax
pop esi
mov dword [edi + 4], eax
pop ebp
jne 0x4c20d4
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
pop edi
add esp, 0x20
ret 4
cmp eax, dword [ecx + 0xc]
jae 0x4c2010
mov edx, dword [ecx + 4]
mov ebx, dword [edx + eax*4]
test ebx, ebx
lea edx, [edx + eax*4]
mov dword [edx], 0
je 0x4c20fa
dec dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
mov ebx, dword [esp + 0x10]
dec edx
cmp eax, edx
jne 0x4c2014
mov dword [ecx + 0xc], edx
jmp 0x4c2014
xor edi, edi
jmp 0x4c2048