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

Disassembly:
sub esp, 0xa4
push ebx
mov ebx, dword [esp + 0xac]
push ebp
mov ebp, dword [esp + 0xb8]
test ebp, ebp
push esi
push edi
je 0x4da462
mov edi, dword [esp + 0xc4]
test edi, edi
je 0x4d9e83
mov eax, dword [ebx + 0x340]
jmp 0x4d9e89
mov eax, dword [ebx + 0x33c]
mov esi, dword [ebx + 0x14]
call fcn.004025c0
test edi, edi
xorps xmm0, xmm0
je 0x4d9ff6
lea eax, [esp + 0x88]
call fcn.004037f0
mov ecx, dword [0x805be8]
test ecx, ecx
jne 0x4d9eb6
xor eax, eax
jmp 0x4d9ebd
movzx eax, word [ecx]
movzx ecx, word [ecx + 2]
test eax, eax
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
jge 0x4d9ecf
fadd dword [0x6f9a18]
mov eax, dword [esp + 0x90]
fstp dword [esp + 0x14]
test eax, eax
fild dword [esp + 0x90]
jge 0x4d9eeb
fadd dword [0x6f9a18]
test ecx, ecx
fld dword [esp + 0x14]
fld st(0)
mov dword [esp + 0x18], ecx
fdivp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fild dword [esp + 0x18]
jge 0x4d9f0b
fadd dword [0x6f9a18]
mov ecx, dword [esp + 0x94]
fstp dword [esp + 0x14]
test ecx, ecx
fild dword [esp + 0x94]
jge 0x4d9f27
fadd dword [0x6f9a18]
fld dword [esp + 0x14]
mov edx, dword [esp + 0x88]
test edx, edx
fld st(0)
fdivp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fild dword [esp + 0x88]
jge 0x4d9f4d
fadd dword [0x6f9a18]
fld qword [0x6f99e0]
mov eax, dword [esp + 0x8c]
test eax, eax
fadd st(1), st(0)
fxch st(1)
fdivrp st(3)
fxch st(2)
fstp dword [esp + 0x30]
fild dword [esp + 0x8c]
jge 0x4d9f77
fadd dword [0x6f9a18]
faddp st(2)
movzx ecx, word [ebx + 0x346]
mov eax, dword [ebx + 0x14]
push ecx
fdivp st(1)
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x38]
call fcn.0058e220
mov eax, dword [0x9d2c30]
imul eax, eax, 0x4d0
movzx edx, word [ebx + 0x344]
fld dword [eax + 0x9ce3e4]
fstp dword [esp + 0x14]
xorps xmm0, xmm0
fld dword [eax + 0x9ce3e0]
mov eax, dword [ebx + 0x14]
fstp dword [esp + 0x1c]
push edx
fld dword [esp + 0x18]
lea ecx, [esp + 0x3c]
fld st(0)
movss dword [esp + 0x44], xmm0
fld dword [esp + 0x20]
movss dword [esp + 0x48], xmm0
fld st(0)
fsubr st(2)
fdiv st(2), st(0)
fxch st(2)
fstp dword [esp + 0x3c]
fmulp st(2)
fdivp st(1)
fstp dword [esp + 0x40]
call fcn.0058e220
xorps xmm0, xmm0
test ebp, ebp
mov dword [esp + 0x1c], 0
jbe 0x4da462
mov ecx, dword [esp + 0xbc]
add ecx, 5
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], ebp
jmp 0x4da027
xorps xmm0, xmm0
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 3]
movzx ecx, byte [ecx]
mov edx, dword [eax + 0x2c]
lea ecx, [ecx + ecx*4]
mov esi, dword [edx + ecx*4 + 0x10]
cmp esi, dword [esp + 0x1c]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
je 0x4da3b5
movzx eax, word [esi + 6]
and eax, 0x3ff
lea eax, [eax + eax*2]
movzx ecx, byte [ebx + eax*8 + 0x38]
lea ebp, [ebx + eax*8 + 0x38]
xor eax, eax
cmp byte [ebp + 8], 0xff
mov dword [esp + 0x1c], esi
setne al
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x48], xmm1
movzx ecx, byte [ebp + 1]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x4c], xmm1
movzx ecx, byte [ebp + 2]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x58], xmm1
movzx ecx, byte [ebp + 3]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x5c], xmm1
movzx ecx, byte [ebp + 4]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x68], xmm1
movzx ecx, byte [ebp + 5]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x6c], xmm1
movzx ecx, byte [ebp + 6]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x78], xmm1
movzx ecx, byte [ebp + 7]
shl ecx, 4
test eax, eax
mov edx, dword [ecx + esi + 0xc]
movss xmm1, dword [edx]
movss dword [esp + 0x7c], xmm1
je 0x4da1c2
movzx eax, byte [ebp + 8]
shl eax, 4
mov ecx, dword [eax + esi + 0xc]
fld dword [ecx]
fld dword [0x93d28c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x50]
movzx edx, byte [ebp + 9]
shl edx, 4
mov eax, dword [edx + esi + 0xc]
fld dword [eax]
fmul st(1)
fstp dword [esp + 0x54]
movzx ecx, byte [ebp + 0xa]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
fld dword [edx]
fmul st(1)
fstp dword [esp + 0x60]
movzx eax, byte [ebp + 0xb]
shl eax, 4
mov ecx, dword [eax + esi + 0xc]
fld dword [ecx]
fmul st(1)
fstp dword [esp + 0x64]
movzx edx, byte [ebp + 0xc]
shl edx, 4
mov eax, dword [edx + esi + 0xc]
fld dword [eax]
fmul st(1)
fstp dword [esp + 0x70]
movzx ecx, byte [ebp + 0xd]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
fld dword [edx]
fmul st(1)
fstp dword [esp + 0x74]
movzx eax, byte [ebp + 0xe]
shl eax, 4
mov ecx, dword [eax + esi + 0xc]
fld dword [ecx]
fmul st(1)
fstp dword [esp + 0x80]
movzx edx, byte [ebp + 0xf]
shl edx, 4
mov eax, dword [edx + esi + 0xc]
fmul dword [eax]
fstp dword [esp + 0x84]
jmp 0x4da1f8
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x60], xmm0
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x74], xmm0
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x84], xmm0
movzx ecx, word [ebx + 0x22]
mov eax, dword [ebx + 0x14]
push ecx
lea ecx, [esp + 0x4c]
call fcn.0058e220
movzx edx, word [ebx + 0x24]
mov eax, dword [ebx + 0x14]
push edx
lea ecx, [esp + 0x5c]
call fcn.0058e220
movzx eax, word [ebx + 0x26]
push eax
mov eax, dword [ebx + 0x14]
lea ecx, [esp + 0x6c]
call fcn.0058e220
movzx ecx, word [ebx + 0x28]
mov eax, dword [ebx + 0x14]
push ecx
lea ecx, [esp + 0x7c]
call fcn.0058e220
movzx edx, byte [ebp + 0x10]
shl edx, 4
mov eax, dword [edx + esi + 0xc]
movss xmm0, dword [eax]
movss dword [esp + 0x28], xmm0
mov al, byte [ebp + 0x16]
cmp al, 0xff
je 0x4da271
movzx ecx, al
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
movss xmm0, dword [edx]
movss dword [esp + 0x2c], xmm0
xorps xmm0, xmm0
jmp 0x4da27a
xorps xmm0, xmm0
movss dword [esp + 0x2c], xmm0
movzx eax, word [ebx + 0x2a]
push eax
mov eax, dword [ebx + 0x14]
lea ecx, [esp + 0x2c]
movss dword [esp + 0x34], xmm0
movss dword [esp + 0x38], xmm0
call fcn.0058e220
movzx ecx, byte [ebp + 0x11]
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
push edx
mov edi, 1
call fcn.00402260
movzx eax, byte [ebp + 0x12]
shl eax, 4
mov ecx, dword [eax + esi + 0xc]
add esp, 4
push ecx
mov edi, 2
call fcn.00402260
add esp, 4
cmp dword [esp + 0xc4], 0
je 0x4da302
mov al, byte [ebp + 0x13]
cmp al, 0xff
je 0x4da302
movzx edx, al
shl edx, 4
mov eax, dword [edx + esi + 0xc]
movzx ecx, word [ebx + 0x344]
fld dword [eax]
fld1
mov eax, dword [ebx + 0x14]
fdivrp st(1)
push ecx
lea ecx, [esp + 0x3c]
fstp dword [esp + 0x44]
call fcn.0058e220
mov al, byte [ebp + 0x14]
cmp al, 0xff
je 0x4da369
mov cl, byte [ebp + 0x15]
cmp cl, 0xff
je 0x4da369
movzx edx, al
shl edx, 4
mov eax, dword [edx + esi + 0xc]
movss xmm0, dword [eax]
movzx edx, word [ebx + 0x36]
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [eax + 4]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [eax + 8]
movzx eax, cl
shl eax, 4
mov ecx, dword [eax + esi + 0xc]
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [ecx]
movss dword [esp + 0xac], xmm0
push edx
lea ecx, [esp + 0xa4]
jmp 0x4da3a9
movss xmm0, dword [0x6cc5ec]
movzx eax, word [ebx + 0x36]
movss dword [esp + 0x88], xmm0
movss dword [esp + 0x8c], xmm0
movss dword [esp + 0x90], xmm0
movss xmm0, dword [0x6f748c]
movss dword [esp + 0x94], xmm0
push eax
lea ecx, [esp + 0x8c]
mov eax, dword [ebx + 0x14]
call fcn.0058e220
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
mov eax, dword [eax + 0x10]
push 0
xor esi, esi
call fcn.00402540
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx]
add esp, 4
cmp dword [0x805cfc], eax
je 0x4da3ee
mov ecx, dword [0x7e43a0]
mov dword [0x805cfc], eax
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x1a0]
push ecx
call eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4da3f9
mov eax, dword [eax]
jmp 0x4da3fb
xor eax, eax
cmp dword [0x805cb0], eax
je 0x4da41a
mov ecx, dword [0x7e43a0]
mov dword [0x805cb0], eax
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x15c]
push ecx
call eax
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx + 0xe]
test ax, ax
movzx esi, word [ecx + 0xc]
jne 0x4da42e
add esi, 2
mov edx, dword [ecx + 8]
push edx
movzx edx, word [ecx + 4]
mov ecx, dword [ecx]
push edx
xor edx, edx
cmp ax, 2
setne dl
push ecx
mov eax, esi
add edx, 4
mov edi, edx
call fcn.0058b250
add dword [esp + 0x2c], 0x10
add esp, 0xc
sub dword [esp + 0x14], 1
jne 0x4da020
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret 0x10