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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
push esi
mov esi, dword [0x100bc128]
push edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
mov eax, dword [esi + 0x1a6c]
mov byte [eax + 0x8c], 1
mov eax, dword [esi + 0x1a6c]
mov dword [esp + 0x1c], eax
cmp byte [eax + 0x8f], 0
je 0x10044e66
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, edx
shr ecx, 1
and cl, 1
mov dword [esp + 0x7c], ecx
jne 0x10044ea1
test edx, 0x400
jne 0x10044ea1
movss xmm0, dword [esi + 0x1550]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esi + 0x1554]
minss xmm0, dword [eax + 0x104]
movss dword [esp + 0x5c], xmm0
jmp 0x10044eb5
mov eax, dword [esi + 0x1550]
mov ecx, dword [esi + 0x1554]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov edi, dword [ebp + 0xc]
lea eax, [esp + 0x58]
movss xmm6, dword [eax + 4]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
movss dword [esp + 0x24], xmm6
test edi, edi
jne 0x10044ef8
mov edi, eax
cmp eax, 0xffffffff
jae 0x10044ef8
nop dword [eax]
mov al, byte [edi]
test al, al
je 0x10044ef5
cmp al, 0x23
jne 0x10044eef
cmp byte [edi + 1], al
je 0x10044ef5
inc edi
cmp edi, 0xffffffff
jb 0x10044ee0
mov eax, dword [ebp + 8]
movss xmm1, dword [esi + 0x1930]
cmp eax, edi
jne 0x10044f0c
xorps xmm3, xmm3
movaps xmm4, xmm1
jmp 0x10044f5b
push ecx
push edi
push eax
push ecx
mov ecx, dword [esi + 0x192c]
lea eax, [esp + 0x40]
mov dword [esp], 0xbf800000
movaps xmm2, xmm1
push eax
call fcn.10032170
movss xmm0, dword [esp + 0x30]
addss xmm0, dword [0x100afeb4]
movss xmm1, dword [esp + 0x34]
movss xmm4, dword [esi + 0x1930]
movss xmm6, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movss xmm2, dword [esi + 0x1554]
movaps xmm0, xmm6
movss dword [esp + 0x4c], xmm1
addss xmm2, xmm2
mov ecx, dword [esp + 0x4c]
addss xmm0, xmm6
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1c]
movss dword [esp + 0x48], xmm3
mov eax, dword [esp + 0x48]
addss xmm2, xmm4
mov dword [esp + 0x30], eax
addss xmm0, xmm1
minss xmm2, dword [ecx + 0xf8]
maxss xmm2, xmm0
test edx, 0x1000
je 0x10044fb4
movss xmm7, dword [ecx + 0x214]
jmp 0x10044fbc
movss xmm7, dword [ecx + 0xcc]
cmp byte [esp + 0x7c], 0
movss xmm6, dword [ecx + 0xd0]
movss xmm5, dword [ecx + 0x21c]
movaps xmm0, xmm6
addss xmm0, xmm2
movss dword [esp + 0x60], xmm7
movss dword [esp + 0x2c], xmm6
movss dword [esp + 0x64], xmm6
movss dword [esp + 0x80], xmm5
movss dword [esp + 0x68], xmm5
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x6c], xmm0
je 0x10045074
movss xmm1, dword [ecx + 0x3c]
mulss xmm1, dword [0x100afe7c]
movaps xmm0, xmm1
subss xmm0, dword [0x100afebc]
cvttss2si eax, xmm0
movd xmm0, eax
cvttss2si eax, xmm1
cvtdq2ps xmm0, xmm0
subss xmm7, xmm0
movd xmm0, eax
mov eax, dword [esp + 0x54]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x60], xmm7
addss xmm5, xmm0
movss dword [esp + 0x80], xmm5
movss dword [esp + 0x68], xmm5
movss xmm5, dword [eax]
movaps xmm1, xmm5
movaps xmm0, xmm5
mulss xmm0, dword [0x100aff08]
addss xmm1, xmm5
movss dword [esp + 0x24], xmm1
jmp 0x10045089
mov eax, dword [esp + 0x54]
movss xmm0, dword [eax]
addss xmm0, xmm0
movaps xmm1, xmm0
movss dword [esp + 0x24], xmm0
movaps xmm5, xmm4
addss xmm5, xmm0
movss xmm0, dword [ecx + 0x104]
maxss xmm0, dword [eax + 4]
movss dword [esp + 0x74], xmm5
xorps xmm5, xmm5
comiss xmm3, xmm5
jbe 0x100450b1
addss xmm3, xmm1
jmp 0x100450b4
xorps xmm3, xmm3
movss xmm1, dword [esp + 0x74]
addss xmm4, xmm3
addss xmm1, dword [ecx + 0xcc]
lea ecx, [esp + 0x40]
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x50], xmm4
movss dword [esp + 0x8c], xmm1
movss dword [esp + 0x48], xmm1
movaps xmm1, xmm6
addss xmm1, xmm0
movss dword [esp + 0x40], xmm4
movss xmm0, dword [eax + 4]
movss dword [esp + 0x78], xmm1
movss dword [esp + 0x4c], xmm1
call fcn.1001da70
cmp byte [esp + 0x7c], 0
movss xmm0, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
movss dword [esp + 0x94], xmm0
movss xmm0, dword [esp + 0x80]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0x90], xmm7
movss dword [esp + 0x9c], xmm0
jne 0x10045172
test eax, 0x1800
jne 0x10045172
movss xmm0, dword [esi + 0x1560]
addss xmm7, dword [esp + 0x50]
addss xmm0, xmm0
addss xmm0, xmm7
movss dword [esp + 0x98], xmm0
mov ecx, eax
shr ecx, 8
and ecx, 0xffffff01
mov dword [esp + 0x50], ecx
test eax, 0x100
je 0x10045192
mov byte [esp + 0xf], 1
jmp 0x10045271
mov ecx, dword [0x100bc128]
mov dword [esp + 0x2c], ecx
test byte [ecx + 0x1b50], 2
mov edx, dword [ecx + 0x1a6c]
mov dword [esp + 0x20], edx
mov edx, dword [edx + 0x194]
je 0x1004521a
test byte [ecx + 0x1b5c], 1
je 0x100451dd
mov al, byte [ecx + 0x1b60]
mov ecx, edx
mov byte [esp + 0xf], al
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.10012cb0
mov cl, byte [esp + 0xf]
jmp 0x10045235
push 0xffffffffffffffff
push dword [esp + 0x1c]
mov ecx, edx
call fcn.10012c50
cmp eax, 0xffffffff
jne 0x1004522c
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov al, byte [eax + 0x1b60]
mov ecx, dword [ecx + 0x194]
mov byte [esp + 0xf], al
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.10012cb0
mov cl, byte [esp + 0xf]
jmp 0x10045235
shr eax, 5
mov ecx, edx
and eax, 1
push eax
push dword [esp + 0x1c]
call fcn.10012c50
test eax, eax
setne cl
mov byte [esp + 0xf], cl
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
cmp byte [edx + 0x2f04], 0
je 0x1004526d
test al, 0x10
jne 0x1004526d
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x180]
sub eax, dword [edx + 0x2f24]
cmp eax, dword [edx + 0x2f28]
mov eax, dword [esp + 0x10]
jge 0x1004526d
mov byte [esp + 0xf], 1
jmp 0x10045271
test cl, cl
je 0x1004529f
cmp byte [esi + 0x1c14], 0
jne 0x1004529f
and eax, 0x2008
cmp eax, 0x2000
jne 0x1004529f
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x184]
mov eax, dword [edx + 0x180]
bts ecx, eax
mov dword [edx + 0x184], ecx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x90]
push 0
call fcn.1001dba0
mov edx, dword [esp + 0x1c]
movups xmm0, xmmword [esp + 0x60]
or dword [edx + 0x11c], 2
movups xmmword [edx + 0x130], xmm0
test al, al
je 0x1004589d
mov eax, dword [esp + 0x10]
movss xmm3, dword [esp + 0x8c]
and eax, 4
subss xmm3, dword [esp + 0x74]
movss xmm1, dword [esi + 0x1578]
movss xmm2, dword [esi + 0xe4]
mov dword [esp + 0x40], eax
neg eax
sbb eax, eax
movss dword [esp + 0x2c], xmm3
and eax, 0x1000
movaps xmm0, xmm3
mov ecx, eax
subss xmm0, xmm1
or ecx, 0x200
cmp byte [esp + 0x50], 0
cmovne ecx, eax
mov dword [esp + 0x20], ecx
comiss xmm2, xmm0
mov ecx, dword [esp + 0x10]
jb 0x1004534c
movss xmm0, dword [esp + 0x24]
addss xmm1, xmm3
addss xmm0, dword [esi + 0x1930]
addss xmm0, xmm1
comiss xmm0, xmm2
jbe 0x1004534c
mov al, 1
jmp 0x1004534e
xor al, al
mov byte [esp + 0x17], al
cmp edx, dword [esi + 0x1a70]
jne 0x1004535e
test al, al
jne 0x1004537a
mov eax, dword [esp + 0x20]
or eax, 0x10000
cmp byte [esp + 0x17], 0
jne 0x1004537e
test cl, 0x40
je 0x10045383
or eax, 0x120
jmp 0x10045386
mov eax, dword [esp + 0x20]
or eax, 0x10
jmp 0x10045386
or eax, 0x20
mov edx, dword [esp + 0x18]
and cl, 1
push eax
lea eax, [esp + 0x2f]
mov byte [esp + 0x43], cl
push eax
lea eax, [esp + 0x32]
push eax
lea ecx, [esp + 0x9c]
call fcn.10036790
xor cl, cl
cmp byte [esp + 0x50], cl
jne 0x100454b8
test al, al
je 0x1004541a
mov edx, dword [esp + 0x18]
cmp dword [esi + 0x1edc], edx
je 0x10045407
mov eax, dword [esp + 0x10]
test al, 0xc0
je 0x100453d4
cmp dword [esi + 0x1bd0], edx
jne 0x100453d6
mov cl, 1
test al, al
jns 0x100453f2
cmp byte [esp + 0x17], 0
je 0x100453ee
cmp byte [esi + 0x1c17], 0
jne 0x100453ee
mov dl, 1
jmp 0x100453f0
xor dl, dl
or cl, dl
test al, 0x40
je 0x1004541a
cmp byte [esi + 0x3dd], 0
mov dl, byte [esp + 0xf]
je 0x1004541e
mov cl, 1
jmp 0x1004541e
mov dl, byte [esp + 0xf]
mov eax, 1
test dl, dl
movzx ecx, cl
cmove ecx, eax
jmp 0x1004541e
mov dl, byte [esp + 0xf]
mov eax, dword [esi + 0x1bc8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x1bc8], eax
jne 0x10045466
cmp byte [esi + 0x1c30], 0
je 0x10045489
cmp dword [esi + 0x1c40], 0
jne 0x1004546c
test dl, dl
je 0x1004546c
mov byte [esp + 0x20], 1
call fcn.100202f0
mov eax, dword [esi + 0x1bc8]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x24], eax
jne 0x10045489
cmp byte [esi + 0x1c30], 0
je 0x10045489
cmp dword [esi + 0x1c40], 1
jne 0x10045489
test dl, dl
jne 0x10045489
call fcn.100202f0
jmp 0x1004548d
test cl, cl
je 0x100454b8
mov ecx, dword [esp + 0x1c]
test dl, dl
sete al
mov byte [esp + 0xf], al
mov ecx, dword [ecx + 0x194]
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.10012cb0
mov eax, dword [esp + 0x1c]
or dword [eax + 0x11c], 0x10
cmp dword [esp + 0x40], 0
je 0x100454c4
call fcn.10018380
movss xmm6, dword [0x100afebc]
xor ecx, ecx
movaps xmm0, xmm6
call fcn.10012e10
cmp byte [esp + 0x7c], 0
mov edx, eax
mov dword [esp + 0x20], edx
je 0x100456fe
cmp byte [esp + 0x2b], 0
mov dl, byte [esp + 0x2a]
je 0x100454fd
test dl, dl
je 0x100454fd
mov ecx, 0x1a
jmp 0x10045507
xor ecx, ecx
test dl, dl
setne cl
add ecx, 0x18
movaps xmm0, xmm6
call fcn.10012e10
movss xmm0, dword [esi + 0x1558]
mov dl, 1
movss xmm1, dword [esp + 0x60]
mov ecx, eax
movss xmm2, dword [esp + 0x64]
movss xmm3, dword [esp + 0x68]
movss xmm4, dword [esp + 0x6c]
call fcn.10013620
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x60]
push 2
call fcn.10013890
mov eax, dword [esp + 0x10]
test eax, 0x200
je 0x100455b4
movss xmm0, dword [esp + 0x74]
mulss xmm0, dword [0x100afe88]
mov ecx, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x8c]
mov edx, dword [esp + 0x20]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1930]
mulss xmm0, dword [0x100afe7c]
mov ecx, dword [ecx + 0x288]
addss xmm0, dword [esp + 0x78]
movss dword [esp + 0x40], xmm1
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x40]
movss xmm1, dword [esp + 0x44]
call fcn.10032a70
mov eax, dword [esp + 0x10]
jmp 0x10045625
cmp byte [esp + 0x50], 0
jne 0x10045619
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
movss xmm3, dword [esp + 0x78]
mov edx, dword [esp + 0x20]
movss xmm0, dword [eax]
xor eax, eax
cmp byte [esp + 0xf], al
addss xmm0, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x288]
setne al
movss dword [esp + 0x44], xmm3
movss xmm2, dword [esp + 0x44]
movss dword [esp + 0x40], xmm0
lea eax, [eax*2 + 1]
movss xmm0, dword [0x100afebc]
movss xmm1, dword [esp + 0x40]
push eax
call fcn.10032900
mov eax, dword [esp + 0x10]
jmp 0x10045625
movss xmm1, dword [esp + 0x2c]
movss dword [esp + 0x48], xmm1
test eax, 0x100000
je 0x1004564f
movss xmm0, dword [esi + 0x1930]
addss xmm0, dword [esi + 0x1550]
movss xmm1, dword [esp + 0x80]
subss xmm1, xmm0
movss dword [esp + 0x68], xmm1
cmp byte [esi + 0x2f04], 0
je 0x100456cb
mov ax, word [0x100adea8]
lea edx, [esp + 0x24]
mov word [esp + 0x1c], ax
lea ecx, [esp + 0x48]
mov al, byte [0x100adeaa]
mov byte [esp + 0x1e], al
lea eax, [esp + 0x27]
push eax
mov dword [esp + 0x28], 0x23230a
call fcn.10023150
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x58]
push 0
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x60], 0
push eax
push edi
push ecx
lea edx, [esp + 0x7c]
mov dword [esp + 0x70], 0
lea ecx, [esp + 0x5c]
call fcn.100135a0
lea eax, [esp + 0x1e]
push eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x4c]
call fcn.10023150
jmp 0x1004589d
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x58]
push 0
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x60], 0
push eax
push edi
push ecx
lea edx, [esp + 0x7c]
mov dword [esp + 0x70], 0
lea ecx, [esp + 0x5c]
call fcn.100135a0
jmp 0x1004589d
mov cl, byte [esp + 0x2a]
test cl, cl
jne 0x10045710
cmp byte [esp + 0x3f], cl
je 0x1004579d
cmp byte [esp + 0x2b], 0
je 0x10045725
test cl, cl
je 0x10045725
mov dword [esp + 0x24], 0x1a
jmp 0x10045733
xor eax, eax
test cl, cl
setne al
add eax, 0x18
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
movaps xmm0, xmm6
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov eax, dword [0x100bc128]
push 0xf
push ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x1a6c]
mov dword [esp], 0
call fcn.10012e10
mov ecx, dword [edx + 0x288]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.1002e880
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x60]
push 2
call fcn.10013890
mov edx, dword [esp + 0x20]
test dword [esp + 0x10], 0x200
je 0x10045801
movss xmm0, dword [esp + 0x74]
mulss xmm0, dword [0x100afe7c]
mov ecx, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x8c]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1930]
mulss xmm0, dword [0x100afe7c]
mov ecx, dword [ecx + 0x288]
addss xmm0, dword [esp + 0x78]
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x30]
movss xmm1, dword [esp + 0x34]
call fcn.10032a70
jmp 0x1004586c
cmp byte [esp + 0x50], 0
jne 0x1004586c
mov eax, dword [esp + 0x54]
movss xmm0, dword [esi + 0x1930]
mulss xmm0, dword [0x100afe3c]
mov ecx, dword [esp + 0x1c]
movss xmm2, dword [eax]
xor eax, eax
cmp byte [esp + 0xf], al
addss xmm2, dword [esp + 0x2c]
addss xmm0, dword [esp + 0x78]
mov ecx, dword [ecx + 0x288]
setne al
movss dword [esp + 0x30], xmm2
movss xmm1, dword [esp + 0x30]
lea eax, [eax*2 + 1]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [0x100afe94]
movss xmm2, dword [esp + 0x34]
push eax
call fcn.10032900
cmp byte [esi + 0x2f04], 0
je 0x10045885
push 0
mov edx, 0x100adeac
lea ecx, [esp + 0x4c]
call fcn.10023150
mov ecx, dword [ebp + 8]
mov edx, edi
movss xmm0, dword [esp + 0x48]
movss xmm1, dword [esp + 0x4c]
push 0
call fcn.100131b0
mov al, byte [esp + 0xf]
test al, al
je 0x100458b9
test byte [esp + 0x10], 8
jne 0x100458b9
mov ecx, dword [esp + 0x18]
call fcn.100458d0
mov al, byte [esp + 0xf]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8