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

Disassembly:
sub esp, 0x58
mov eax, dword [0x103b33c0]
xor eax, esp
mov dword [esp + 0x54], eax
push ebx
push esi
push edi
mov edi, dword [0x103b6348]
xor ecx, ecx
xor eax, eax
inc ecx
test byte [edi + 8], 2
mov byte [edi + 0x97], al
je 0x1004cf52
mov bl, cl
test byte [edi + 0xc], cl
jne 0x1004cf54
mov bl, al
movaps xmm0, xmmword [0x100cb850]
mov byte [esp + 0xe], bl
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x100cb860]
movups xmmword [esp + 0x50], xmm0
test bl, bl
je 0x1004cf9c
lea esi, [esp + 0x40]
push dword [esi]
call fcn.1004a6fd
pop ecx
test al, al
je 0x1004cf8e
mov dword [edi + 0x47fc], 3
add esi, 4
lea eax, [esp + 0x60]
cmp esi, eax
jne 0x1004cf78
xor ecx, ecx
inc ecx
mov bh, byte [edi + 8]
movaps xmm0, xmmword [0x100cb840]
and bh, cl
mov byte [esp + 0xf], bh
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x34], 0x201
mov dword [esp + 0x38], 0x203
mov dword [esp + 0x3c], 0x204
je 0x1004cff0
lea esi, [esp + 0x24]
push dword [esi]
call fcn.1004a6fd
pop ecx
test al, al
je 0x1004cfe5
mov dword [edi + 0x47fc], 2
add esi, 4
lea eax, [esp + 0x40]
cmp esi, eax
jne 0x1004cfcf
xor ecx, ecx
cmp dword [edi + 0x480c], ecx
je 0x1004d001
call fcn.1004c057
xor ecx, ecx
cmp byte [edi + 0x4820], 0
mov word [edi + 0x4809], 0
mov dword [edi + 0x480c], ecx
mov dword [edi + 0x47e8], ecx
je 0x1004d026
call fcn.1004c19f
xor ecx, ecx
cmp byte [edi + 0x4805], 0
mov al, cl
mov dword [edi + 0x4864], ecx
mov word [edi + 0x4820], 0
mov dword [esp + 0x18], eax
je 0x1004d072
cmp byte [edi + 0x4804], 0
je 0x1004d072
cmp byte [edi + 0x4806], 0
jne 0x1004d072
cmp byte [edi + 0x4807], 0
je 0x1004d072
cmp dword [edi + 0x47c8], ecx
push 1
movzx eax, al
pop edx
cmovne eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x47c8]
mov byte [edi + 0x4805], cl
test eax, eax
je 0x1004d08b
push eax
call fcn.1004c9cb
pop ecx
xor ecx, ecx
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x1004d0ab
cmp dword [eax + 0x30c], ecx
je 0x1004d0ab
cmp dword [edi + 0x4800], ecx
jne 0x1004d0ab
mov dword [eax + 0x30c], ecx
call fcn.1004e34e
test bh, bh
jne 0x1004d0b8
test bl, bl
je 0x1004d0d4
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x1004d0d4
test dword [eax + 8], 0x40000
jne 0x1004d0d4
xor edx, edx
inc edx
xor ecx, ecx
mov al, dl
jmp 0x1004d0db
xor ecx, ecx
xor edx, edx
mov al, cl
inc edx
mov byte [edi + 0x99], al
test al, al
je 0x1004d0f6
cmp dword [edi + 0x47cc], ecx
je 0x1004d0f6
cmp byte [edi + 0x4806], 0
je 0x1004d100
mov al, cl
cmp dword [edi + 0x4920], ecx
je 0x1004d102
mov al, dl
mov byte [edi + 0x9a], al
call fcn.1004d5cc
xor edx, edx
mov dword [edi + 0x47e0], edx
mov dword [edi + 0x47dc], edx
mov dword [edi + 0x47d8], edx
mov dword [edi + 0x47d4], edx
mov dword [edi + 0x47e4], edx
cmp dword [edi + 0x47cc], edx
je 0x1004d2b7
cmp byte [edi + 0x4806], dl
jne 0x1004d2b7
cmp dword [edi + 0x4920], edx
jne 0x1004d2b7
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x1004d2b7
test dword [eax + 8], 0x40000
jne 0x1004d2b7
push ebp
mov ebp, 0x26e
lea esi, [ebp - 0x62]
test bh, bh
je 0x1004d184
push esi
call fcn.1004a6fd
pop ecx
test al, al
jne 0x1004d193
test bl, bl
je 0x1004d1c6
push ebp
call fcn.1004a6fd
pop ecx
test al, al
je 0x1004d1c6
xor eax, eax
inc eax
cmp byte [esp + 0x13], 0
mov bh, al
je 0x1004d1ad
push 0
push esi
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
jne 0x1004d1bf
test bl, bl
je 0x1004d1c8
push 0
push ebp
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1004d1c8
xor eax, eax
inc eax
mov bl, al
jmp 0x1004d1ca
xor bh, bh
xor bl, bl
cmp byte [esp + 0x13], 0
mov ebp, 0x26d
lea esi, [ebp - 0x60]
je 0x1004d1e4
push esi
call fcn.1004a6fd
pop ecx
test al, al
jne 0x1004d1fd
cmp byte [esp + 0x12], 0
je 0x1004d227
push ebp
call fcn.1004a6fd
pop ecx
test al, al
je 0x1004d227
cmp byte [esp + 0x13], 0
je 0x1004d20b
push 0
push esi
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
jne 0x1004d220
cmp byte [esp + 0x12], 0
je 0x1004d227
push 0
push ebp
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1004d227
xor eax, eax
lea edx, [eax + 1]
jmp 0x1004d229
xor dl, dl
mov ecx, dword [edi + 0x3e94]
pop ebp
test ecx, ecx
jne 0x1004d250
test bl, bl
je 0x1004d258
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47d4], eax
mov dword [edi + 0x47e4], 2
jmp 0x1004d258
cmp ecx, dword [edi + 0x47cc]
jne 0x1004d2b1
test dl, dl
je 0x1004d271
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47e0], eax
xor eax, eax
inc eax
mov dword [edi + 0x47e4], eax
test ecx, ecx
je 0x1004d27d
cmp ecx, dword [edi + 0x47cc]
jne 0x1004d2b1
test bh, bh
je 0x1004d28d
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47d8], eax
test ecx, ecx
je 0x1004d299
cmp ecx, dword [edi + 0x47cc]
jne 0x1004d2b1
xor edx, edx
test bl, bl
mov bl, byte [esp + 0xe]
je 0x1004d2b7
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47dc], eax
jmp 0x1004d2b7
mov bl, byte [esp + 0xe]
xor edx, edx
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x1004d2d3
test dword [eax + 8], 0x40000
je 0x1004d2d3
xor eax, eax
inc eax
mov byte [edi + 0x4806], al
mov eax, dword [edi + 0x47f4]
test eax, eax
je 0x1004d308
mov ecx, dword [edi + 0x47f8]
test cl, 1
je 0x1004d2f0
mov dword [edi + 0x47e0], eax
jmp 0x1004d302
mov dword [edi + 0x47dc], eax
mov dword [edi + 0x47d8], eax
mov dword [edi + 0x47d4], eax
mov dword [edi + 0x47e4], ecx
mov dword [edi + 0x47f4], edx
call fcn.1004d79d
cmp dword [edi + 0x4830], 0xffffffff
jne 0x1004d321
call fcn.1004de40
call fcn.1004d5a8
mov esi, dword [edi + 0x47c8]
xor eax, eax
mov byte [edi + 0x4804], al
test esi, esi
je 0x1004d52a
test dword [esi + 8], 0x40000
jne 0x1004d52a
cmp dword [edi + 0x4920], eax
jne 0x1004d52a
mov ecx, esi
call fcn.10040db9
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x100cb7e8]
mov ebx, dword [edi + 0x4830]
movss xmm1, dword [0x100c7298]
movss dword [esp + 0x10], xmm1
mulss xmm0, dword [edi + 0x18]
addss xmm0, dword [0x100c7e9c]
cvttss2si eax, xmm0
movd xmm2, eax
xor eax, eax
cvtdq2ps xmm2, xmm2
movss dword [esp + 0x14], xmm2
cmp word [esi + 0x148], ax
jne 0x1004d43b
cmp byte [esi + 0x14d], al
je 0x1004d43b
cmp ebx, 0xffffffff
je 0x1004d43b
movss xmm0, dword [0x100c7b84]
test ebx, ebx
je 0x1004d3d4
inc eax
cmp ebx, eax
jne 0x1004d40c
movaps xmm0, xmm1
mulss xmm0, xmm2
push ecx
addss xmm0, dword [esi + 0x74]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push esi
call fcn.1005385b
movss xmm0, dword [0x100c7b84]
movss xmm1, dword [0x100c7298]
movss xmm2, dword [esp + 0x1c]
pop ecx
pop ecx
cmp ebx, 2
je 0x1004d419
cmp ebx, 3
jne 0x1004d43b
movaps xmm0, xmm1
mulss xmm0, xmm2
push ecx
addss xmm0, dword [esi + 0x78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push esi
call fcn.1005389b
pop ecx
pop ecx
mov bl, byte [esp + 0xe]
test bl, bl
je 0x1004d528
push 0x27c
push 0x27b
push 0x27a
lea eax, [esp + 0x28]
push 0x279
push eax
call fcn.10047475
push 0x273
call fcn.1004a6fd
add esp, 0x18
test al, al
je 0x1004d480
movss xmm1, dword [0x100cb760]
jmp 0x1004d497
push 0x274
call fcn.1004a6fd
pop ecx
test al, al
je 0x1004d49f
movss xmm1, dword [0x100c7b20]
movss dword [esp + 0x10], xmm1
jmp 0x1004d4a7
movss xmm1, dword [0x100c7298]
movss xmm0, dword [esp + 0x1c]
ucomiss xmm0, dword [0x100c7294]
lahf
test ah, 0x44
jnp 0x1004d4eb
cmp byte [esi + 0xa4], 0
je 0x1004d4eb
mulss xmm0, dword [esp + 0x14]
push ecx
mulss xmm0, xmm1
addss xmm0, dword [esi + 0x74]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push esi
call fcn.1005385b
pop ecx
pop ecx
movss xmm0, dword [esp + 0x20]
ucomiss xmm0, dword [0x100c7294]
lahf
test ah, 0x44
jnp 0x1004d528
mulss xmm0, dword [esp + 0x14]
push ecx
mulss xmm0, dword [esp + 0x14]
addss xmm0, dword [esi + 0x78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push esi
call fcn.1005389b
pop ecx
pop ecx
xor eax, eax
cmp byte [esp + 0xf], 0
jne 0x1004d546
test bl, bl
jne 0x1004d546
xor ecx, ecx
mov byte [edi + 0x4807], al
inc ecx
mov byte [edi + 0x4806], cl
jmp 0x1004d58e
cmp byte [esp + 0x18], 0
je 0x1004d58e
test byte [edi + 8], 4
je 0x1004d58e
test byte [edi + 0xc], 4
je 0x1004d58e
lea eax, [esp + 0x1c]
push eax
call fcn.1004bdb8
pop ecx
mov edx, dword [eax]
mov ecx, edx
mov esi, dword [eax + 4]
mov eax, esi
mov dword [edi + 0x36a0], eax
xor eax, eax
inc eax
mov dword [edi + 0x369c], ecx
mov dword [edi + 0xdb8], edx
mov dword [edi + 0xdbc], esi
mov byte [edi + 0x97], al
mov ecx, dword [esp + 0x60]
xor eax, eax
mov dword [edi + 0x485c], eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100b7398
add esp, 0x58
ret