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

Disassembly:
push ebx
push ebp
push edi
mov ebx, ecx
call fcn.04ca70d0
mov edi, dword [esp + 0x10]
push edi
call fcn.04ca40b0
mov ecx, eax
call fcn.04ca4bc0
mov ebp, eax
test ebp, ebp
jne 0x4ca6987
pop edi
pop ebp
pop ebx
ret 0x10
mov ecx, dword [0x55cd17c]
push esi
push 1
push 0
call fcn.04ca6690
mov esi, eax
xor edx, edx
cmp esi, edx
jne 0x4ca69a8
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
ret 0x10
mov dword [esi], ebp
call fcn.04ca4e50
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x40]
mov dword [esi + 0x3c], eax
mov ecx, dword [edi + 0x20]
mov dword [esi + 0x40], ecx
movzx eax, byte [edi + 0x20]
and al, 1
mov byte [esi + 0x50], al
mov ecx, dword [edi + 0x20]
shr ecx, 1
not cl
and cl, 1
mov byte [esi + 0x51], cl
mov eax, dword [edi + 0x20]
mov cl, byte [esp + 0x20]
and eax, 4
shl eax, 4
neg cl
push esi
sbb ecx, ecx
and ecx, 0x400000
or eax, ecx
or dword [esi + 0x44], eax
mov ecx, dword [edi + 0x20]
mov eax, dword [esi + 0x44]
and ecx, 0x80
or ecx, eax
mov dword [esi + 0x44], ecx
mov eax, dword [edi + 0x20]
mov byte [esi + 0x52], dl
shr eax, 2
and eax, 1
cmp byte [esp + 0x20], dl
mov dword [esi + 0x78], eax
mov ecx, dword [edi + 0x64]
mov dword [esi + 0x4c], ecx
movzx eax, byte [edi + 0x68]
mov byte [esi + 0x53], al
fld dword [edi + 0x6c]
fstp dword [esi + 0x54]
fld dword [edi + 0x70]
fstp dword [esi + 0x58]
fld dword [edi + 0x74]
fstp dword [esi + 0x5c]
fld dword [edi + 0x78]
fstp dword [esi + 0x60]
fld dword [edi + 0x7c]
fstp dword [esi + 0x64]
fld dword [edi + 0x80]
fstp dword [esi + 0x68]
mov dword [esi + 0x7c], edx
fld dword [ebp + 0x80]
fstp dword [esi + 0x14]
movzx ecx, byte [edi + 0x84]
mov byte [esi + 0x80], cl
fld dword [edi + 0x88]
fstp dword [esi + 0x84]
mov eax, dword [edi + 0x8c]
mov dword [esi + 0x88], eax
mov ecx, dword [edi + 0x90]
mov dword [esi + 0x8c], ecx
mov eax, dword [edi + 0x94]
mov dword [esi + 0x90], eax
fld dword [edi + 0x98]
fstp dword [esi + 0x94]
lea ecx, [ebx + 0x1c]
fld dword [edi + 0x9c]
mov dword [esi + 0x9c], edx
fstp dword [esi + 0x98]
jne 0x4ca6ab8
lea ecx, [ebx + 0x10]
call fcn.04ca3210
fld dword [edi + 0x24]
cmp dword [esi + 0x78], 0
fstp dword [esi + 0x1c]
fld dword [edi + 0x28]
mov dword [esp + 0x20], 0
fstp dword [esi + 0x20]
fld dword [edi + 0x2c]
fstp dword [esi + 0x24]
fld dword [edi + 0x30]
fstp dword [esi + 0x28]
fld dword [edi + 0x34]
fstp dword [esi + 0x2c]
fld dword [edi + 0x38]
fstp dword [esi + 0x30]
fld dword [edi + 0x3c]
fstp dword [esi + 0x34]
fldz
fst dword [esi + 0x10]
cmp dword [ebp + 0x88], 0
jbe 0x4ca6b56
fstp st(0)
xor edi, edi
jmp 0x4ca6b10
mov ecx, dword [ebp + 0x84]
mov eax, dword [edi + ecx + 0x48]
lea edx, [edi + ecx]
push eax
mov ecx, ebx
call fcn.04ca4ea0
test al, al
je 0x4ca6b3e
cmp byte [ebx + 0x41], 0
jne 0x4ca6b35
cmp byte [edx + 0x50], 0
jne 0x4ca6b3e
push edx
push esi
mov ecx, ebx
call fcn.04ca5f60
mov eax, dword [esp + 0x20]
add eax, 1
add edi, 0x54
cmp eax, dword [ebp + 0x88]
mov dword [esp + 0x20], eax
jb 0x4ca6b10
fldz
cmp dword [esp + 0x18], 0
je 0x4ca6b7f
mov ecx, esi
call fcn.04ca4e10
sub esp, 8
fst dword [esp + 4]
mov ecx, ebx
fstp dword [esp]
push esi
call fcn.04ca5cf0
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
ret 0x10
mov eax, esi
fstp st(0)
pop esi
pop edi
pop ebp
pop ebx
ret 0x10