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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xec
mov eax, dword [0xef13dc]
mov ecx, dword [0xef13e8]
push edi
mov dword [0xef13e4], eax
mov edi, dword [esi + 4]
cmp edi, ecx
jne 0x50efc0
mov ecx, dword [esi]
and ecx, eax
test ecx, ecx
jns 0x50f051
push edi
lea edx, [esp + 0xb4]
push edx
call fcn.005714f5
push 4
lea eax, [esp + 0xb4]
push eax
push 0x2d
call fcn.00513320
mov eax, dword [esi]
add esp, 0xc
test eax, eax
jns 0x50f001
mov ecx, dword [0xf91578]
mov eax, dword [0xf9b2b0]
shl ecx, 6
add ecx, eax
push ecx
push edi
lea edx, [esp + 0x78]
push edx
jmp 0x50f018
mov eax, dword [0xf91578]
mov ecx, dword [0xf9b300]
shl eax, 6
add eax, ecx
push eax
push edi
lea ecx, [esp + 0x78]
push ecx
call fcn.005712ac
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x34]
push eax
call fcn.005714f5
push 4
lea ecx, [esp + 0x34]
push ecx
push 0x31
call fcn.00513320
mov eax, dword [0xef14e4]
mov edx, dword [esi + 4]
add esp, 0xc
inc eax
mov dword [0xef13e8], edx
mov dword [0xef14e4], eax
test byte [esi], 4
je 0x50f069
mov eax, dword [esi + 4]
push 7
add eax, 0x40
push eax
push 0x3e
call fcn.00513320
add esp, 0xc
test dword [esi], 0x80000
je 0x50f078
push esi
call dword [esi + 8]
add esp, 4
test dword [esi], 0x1203c0
je 0x50f0af
mov eax, dword [esi + 8]
cmp eax, dword [0xef13ec]
je 0x50f0af
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.005714f5
push 4
lea edx, [esp + 0x34]
push edx
push 0x58
call fcn.00513320
mov eax, dword [esi + 8]
add esp, 0xc
mov dword [0xef13ec], eax
mov eax, dword [esi]
mov ecx, dword [0xef13e4]
and ecx, 8
and eax, 8
cmp eax, ecx
mov ecx, dword [0xef13f0]
mov edi, 1
jne 0x50f0d5
cmp dword [esi + 0xc], ecx
je 0x50f1f8
test eax, eax
je 0x50f192
mov eax, dword [esi + 0xc]
cmp eax, ecx
je 0x50f160
and eax, 0xff
test eax, eax
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
jge 0x50f0fb
fadd dword [0x5befa4]
fmul dword [0x5bf070]
movzx ecx, byte [esi + 0xd]
movzx edx, byte [esi + 0xe]
fstp dword [esp + 0x28]
movzx eax, byte [esi + 0xf]
mov dword [esp + 0xc], ecx
push edi
lea ecx, [esp + 0x24]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
push ecx
push 0x4d
fmul dword [0x5bf070]
fstp dword [esp + 0x30]
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fmul dword [0x5bf070]
fstp dword [esp + 0x2c]
fild dword [esp + 0x18]
fmul dword [0x5bf070]
fstp dword [esp + 0x38]
call fcn.00513320
mov edx, dword [esi + 0xc]
add esp, 0xc
mov dword [0xef13f0], edx
push edi
lea eax, [esp + 0x14]
push eax
push 0x55
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0x3f800000
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.00513320
add esp, 0xc
jmp 0x50f1f8
push edi
lea ecx, [esp + 0x14]
push ecx
push 0x4d
mov dword [esp + 0x1c], 0x3f000000
mov dword [esp + 0x20], 0x3f000000
mov dword [esp + 0x24], 0x3f000000
mov dword [esp + 0x28], 0x3f800000
call fcn.00513320
mov edx, dword [esi + 0xc]
push edi
lea eax, [esp + 0x30]
push eax
push 0x55
mov dword [0xef13f0], edx
mov dword [esp + 0x38], 0x3f800000
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
call fcn.00513320
add esp, 0x18
test byte [esi], 0x20
mov eax, dword [0xf723f8]
je 0x50f22a
cmp eax, edi
je 0x50f23f
mov eax, dword [0xf914dc]
mov ecx, dword [eax]
push edi
push 0x16
push eax
call dword [ecx + 0xc8]
mov dword [0xf723f8], edi
mov edx, dword [esi]
mov dword [0xef13dc], edx
pop edi
mov esp, ebp
pop ebp
ret
mov edi, 3
cmp eax, edi
jne 0x50f206
mov eax, dword [esi]
mov dword [0xef13dc], eax
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi]
mov dword [0xef13dc], ecx
pop edi
mov esp, ebp
pop ebp
ret