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

Disassembly:
sub esp, 0x64
push ebx
push ebp
mov ebp, dword [esp + 0x70]
push esi
xor esi, esi
cmp ebp, esi
push edi
mov bl, al
je 0x4c27d8
mov eax, ebp
call fcn.004bb170
test eax, eax
je 0x4c27d8
push 1
mov ecx, ebp
call fcn.004bbb80
cmp eax, ebp
je 0x4c21d7
xor bl, bl
cmp eax, esi
mov ebp, eax
jne 0x4c21a7
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
push 0x64
push ebp
call fcn.004bbf10
test bl, bl
jne 0x4c2218
mov al, byte [ebp + 0xac]
test al, al
je 0x4c2218
mov eax, dword [esp + 0x7c]
cmp eax, dword [ebp + 0xb0]
jne 0x4c2218
mov ecx, dword [esp + 0x80]
cmp ecx, dword [ebp + 0xb4]
jne 0x4c2218
mov byte [ebp + 0x24], 1
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
mov dword [ebp + 0xb4], eax
mov eax, ebp
mov byte [ebp + 0xac], 1
mov dword [ebp + 0xb0], edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x10], esi
call fcn.004bb170
mov edx, dword [eax]
push str.ProjectedPlane
mov ecx, eax
call dword [edx + 0x40]
mov ebx, eax
cmp ebx, esi
mov dword [esp + 0x50], ebx
je 0x4c27d8
mov edi, dword [ebx + 4]
push ebx
inc edi
push 0x729854
mov dword [ebx + 4], edi
call fcn.004492f0
add esp, 8
mov esi, eax
lea edi, [esp + 0x78]
call fcn.004c2eb0
mov esi, dword [esp + 0x78]
test esi, esi
je 0x4c27a5
mov eax, dword [esi + 0xbc]
test eax, eax
mov dword [esp + 0x48], eax
je 0x4c276f
mov edi, dword [eax + 4]
push eax
inc edi
push 0x7298d4
mov dword [eax + 4], edi
call fcn.004492f0
add esp, 8
mov esi, eax
lea edi, [esp + 0x10]
call fcn.004c2eb0
mov ecx, dword [esp + 0x48]
dec dword [ecx + 4]
jne 0x4c22cc
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x10]
xor edi, edi
cmp eax, edi
je 0x4c276b
mov eax, dword [esp + 0x8c]
cmp eax, edi
mov dword [esp + 0x14], 0x200
je 0x4c2341
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x18]
push edx
push edi
push edi
push eax
mov dword [esp + 0xa0], edi
mov dword [esp + 0x28], edi
call fcn.004ceb00
mov esi, eax
add esp, 0x14
cmp esi, edi
je 0x4c2319
inc dword [esi + 4]
mov ecx, dword [esp + 0x78]
push 8
call fcn.00535600
cmp eax, edi
je 0x4c2330
push esi
mov ecx, eax
call fcn.004aace0
cmp esi, edi
je 0x4c2341
dec dword [esi + 4]
jne 0x4c2341
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
mov edi, dword [0x72ed78]
push ecx
push edx
xor eax, eax
mov ecx, edi
call fcn.004c34a0
fild dword [esp + 0x7c]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
fst dword [esp + 0x3c]
mov esi, eax
imul eax, eax, 0x2cc
fdiv dword [edi + 0x30]
add eax, ecx
mov ebx, eax
imul esi, esi, 0x124
add esi, edx
fsub dword [ebx + 0x2a4]
fdiv dword [esi + 0x84]
call fcn.005f275c
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
fmul dword [esi + 0x84]
fadd dword [ebx + 0x2a4]
fstp dword [esp + 0x18]
fild dword [esp + 0x80]
fst dword [esp + 0x48]
fdiv dword [edi + 0x34]
fsub dword [ebx + 0x2a8]
fdiv dword [esi + 0x88]
call fcn.005f275c
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
mov eax, dword [esi + 0x84]
mov dword [esp + 0x40], eax
mov eax, ebp
fmul dword [esi + 0x88]
mov dword [esp + 0x7c], ecx
fadd dword [ebx + 0x2a8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fmul dword [edi + 0x30]
fstp dword [esp + 0x80]
fld dword [esp + 0x1c]
fmul dword [edi + 0x34]
fstp dword [esp + 0x8c]
call fcn.004bb170
fld dword [esp + 0x80]
add eax, 0x5c
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x54], edx
fld dword [esp + 0x54]
mov edx, dword [eax + 8]
fucompp
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
fnstsw ax
test ah, 0x44
jp 0x4c245c
fld dword [esp + 0x8c]
fld dword [esp + 0x58]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4c2569
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x68], 0
mov dword [esp + 0x34], eax
mov edi, 0x728249
movsx ecx, byte [edi - 1]
movsx edx, byte [edi]
dec ecx
mov dword [esp + 0x2c], ecx
push 0
fild dword [esp + 0x30]
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x64]
mov eax, esi
fmul dword [esp + 0x44]
fstp dword [esp + 0x28]
fild dword [esp + 0x30]
fmul dword [esp + 0x80]
fstp dword [esp + 0x30]
fld dword [esp + 0x28]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x64]
fld dword [esp + 0x30]
fadd dword [esp + 0x20]
fstp dword [esp + 0x68]
call fcn.00514750
mov edx, dword [0x72ed78]
fld dword [edx + 0x44]
mov eax, dword [esp + 0x24]
fmul dword [ebx + 0x290]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x54]
fsubr st(1)
mov dword [esp + 0x58], ecx
mov ecx, eax
mov dword [ecx], edx
fstp dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [ecx + 4], edx
fstp st(0)
mov edx, dword [esp + 0x5c]
add edi, 2
add eax, 0xc
cmp edi, 0x7282eb
mov dword [ecx + 8], edx
mov dword [esp + 0x34], eax
jl 0x4c2474
mov esi, dword [esp + 0x10]
fld dword [esp + 0x7c]
or byte [esi + 0x32], 1
fmul dword [0x715710]
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
lea edi, [esi + 0x10]
fstp dword [esp + 0x6c]
mov dword [edi], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0x5c]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
jmp 0x4c256d
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
push 8
mov ecx, ebx
call fcn.00535600
mov edi, eax
test edi, edi
je 0x4c26ef
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx]
test eax, eax
je 0x4c2594
mov ebx, dword [eax + 0x18]
test ebx, ebx
jne 0x4c25f7
push 0x48
call fcn.005354b8
add esp, 4
test eax, eax
je 0x4c25f0
push 1
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x34]
push ecx
push 0
lea edx, [esp + 0x34]
push edx
mov ecx, eax
mov dword [esp + 0x48], 0x3f000000
mov dword [esp + 0x4c], 0x3f000000
mov dword [esp + 0x40], 0x3f800000
mov dword [esp + 0x44], 0x3f800000
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
call fcn.0054beb0
mov ebx, eax
jmp 0x4c25f2
xor ebx, ebx
call fcn.004c3450
fild dword [esp + 0x14]
lea edx, [esp + 0x1c]
fld dword [0x715640]
mov ecx, ebx
fmul st(1)
fmul dword [0x70de8c]
fdivrp st(1)
fld dword [0x70de8c]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [0x70de8c]
fsub st(1)
fstp dword [esp + 0x20]
fstp st(0)
call fcn.004c3400
fld dword [esp + 0x3c]
lea eax, [esp + 0x40]
fsub dword [esp + 0x80]
push eax
mov ecx, ebx
fdiv dword [esp + 0x44]
fmul dword [0x715824]
fstp dword [esp + 0x44]
fld dword [esp + 0x4c]
fsub dword [esp + 0x90]
fdiv dword [esp + 0x80]
fmul dword [0x715824]
fstp dword [esp + 0x48]
call fcn.004c33b0
fild dword [esp + 0x84]
push ecx
mov ecx, ebx
fmul qword [0x715728]
fstp dword [esp]
call fcn.004c3370
fild dword [esp + 0x88]
fmul dword [0x715584]
fmul dword [0x715820]
fsubr dword [0x71581c]
fcom dword [0x71581c]
fnstsw ax
test ah, 0x41
jne 0x4c26b9
fstp st(0)
fld dword [0x71581c]
jmp 0x4c26ce
fcom dword [0x70deb0]
fnstsw ax
test ah, 5
jp 0x4c26ce
fstp st(0)
fld dword [0x70deb0]
lea ecx, [esp + 0x48]
fst dword [esp + 0x48]
push ecx
fstp dword [esp + 0x50]
mov ecx, ebx
call fcn.004c32d0
mov ecx, dword [esp + 0x78]
call fcn.00535990
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x58], eax
mov eax, ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], 0x41f00000
call fcn.004bb170
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
add eax, 0x5c
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
or dword [ebp + 0x20], 0x2000
mov ecx, dword [esp + 0x50]
mov byte [ebp + 0x24], 1
dec dword [ecx + 4]
jne 0x4c2745
mov edx, dword [ecx]
push 1
call dword [edx]
dec dword [esi + 4]
jne 0x4c2752
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
dec dword [ebx + 4]
jne 0x4c275f
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 0x18
mov esi, dword [esp + 0x78]
dec dword [esi + 4]
jne 0x4c277c
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov edi, dword [esp + 0x10]
test edi, edi
mov dword [esp + 0x78], 0
je 0x4c27e4
dec dword [edi + 4]
jne 0x4c2799
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x10], 0
mov edi, dword [esp + 0x10]
dec dword [ebx + 4]
jne 0x4c27b6
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
test edi, edi
je 0x4c27c7
dec dword [edi + 4]
jne 0x4c27c7
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
test esi, esi
je 0x4c27d8
dec dword [esi + 4]
jne 0x4c27d8
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x64
ret 0x18
mov esi, dword [esp + 0x78]
jmp 0x4c27a9