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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x10075380]
xor eax, esp
mov dword [esp + 0x94], eax
push esi
mov esi, dword [0x10077b54]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x1ba8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], ecx
mov byte [eax + 0x8c], 1
mov eax, dword [esi + 0x1ba8]
mov dword [esp + 0x34], eax
cmp byte [eax + 0x8f], 0
je 0x10041d1a
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.100612fd
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x38], edx
shr dword [esp + 0x38], 1
and byte [esp + 0x38], 1
jne 0x10041d51
test edx, 0x400
jne 0x10041d51
movss xmm1, dword [esi + 0x1564]
movss xmm0, dword [eax + 0x108]
minss xmm0, dword [esi + 0x1568]
movss dword [esp + 0x24], xmm1
jmp 0x10041d67
movss xmm0, dword [esi + 0x1564]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esi + 0x1568]
movss dword [esp + 0x40], xmm0
test edi, edi
jne 0x10041d92
mov edi, ecx
cmp ecx, 0xffffffff
jae 0x10041d92
mov cl, byte [edi]
test cl, cl
je 0x10041d8e
cmp cl, 0x23
jne 0x10041d88
cmp byte [edi + 1], cl
je 0x10041d8e
inc edi
cmp edi, 0xffffffff
jb 0x10041d78
mov ecx, dword [esp + 0x48]
movss xmm1, dword [esi + 0x1944]
cmp ecx, edi
jne 0x10041da3
xorps xmm2, xmm2
jmp 0x10041dec
movss xmm3, dword [0x1006e38c]
lea eax, [esp + 0x28]
push ecx
push edi
push ecx
push ecx
mov ecx, dword [esi + 0x1940]
movaps xmm2, xmm1
mov dword [esp], 0xbf800000
push eax
call fcn.1002f8b0
movss xmm0, dword [esp + 0x28]
addss xmm0, dword [0x1006e1f4]
movss xmm1, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
cvttss2si eax, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss xmm0, dword [esi + 0x1568]
movss xmm7, dword [esi + 0x1944]
addss xmm0, xmm0
mov ecx, dword [esp + 0x34]
movss xmm4, dword [esp + 0x40]
movss dword [esp + 0x5c], xmm1
movss dword [esp + 0x58], xmm2
movss xmm3, dword [ecx + 0xfc]
addss xmm0, xmm7
minss xmm3, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x1006e258]
addss xmm0, xmm1
maxss xmm3, xmm0
test edx, 0x1000
je 0x10041e4b
movss xmm6, dword [ecx + 0x1d0]
jmp 0x10041e53
movss xmm6, dword [ecx + 0xd0]
cmp byte [esp + 0x38], 0
movss xmm0, dword [ecx + 0x1d8]
movss xmm5, dword [ecx + 0xd4]
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x68], xmm0
movaps xmm0, xmm5
addss xmm0, xmm3
movss dword [esp + 0x60], xmm6
movss dword [esp + 0x64], xmm5
movss dword [esp + 0x6c], xmm0
je 0x10041ee9
movss xmm1, dword [ecx + 0x3c]
mulss xmm1, dword [0x1006e1bc]
movaps xmm0, xmm1
subss xmm0, dword [0x1006e1fc]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm1
subss xmm6, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x60], xmm6
addss xmm0, dword [esp + 0x40]
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x24]
mulss xmm0, dword [0x1006e294]
jmp 0x10041ef7
movss xmm0, dword [esp + 0x24]
mulss xmm0, dword [0x1006e258]
movaps xmm1, xmm7
addss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm2, xmm0
movss dword [esp + 0x3c], xmm1
movaps xmm1, xmm4
maxss xmm1, dword [ecx + 0x108]
jbe 0x10041f29
movss xmm0, dword [esp + 0x24]
mulss xmm0, dword [0x1006e258]
addss xmm0, xmm2
addss xmm7, xmm0
movss dword [esp + 0x2c], xmm3
movss xmm0, dword [esp + 0x3c]
addss xmm5, xmm1
addss xmm0, dword [ecx + 0xd0]
movaps xmm1, xmm4
lea ecx, [esp + 0x28]
movss dword [esp + 0x28], xmm7
movss dword [esp + 0x54], xmm5
movss dword [esp + 0x50], xmm0
call fcn.10019950
cmp byte [esp + 0x38], 0
movaps xmm0, xmmword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
movaps xmmword [esp + 0x80], xmm0
jne 0x10041fa0
test ecx, 0x1800
jne 0x10041fa0
movss xmm0, dword [esi + 0x1574]
addss xmm7, xmm6
addss xmm0, xmm0
addss xmm0, xmm7
movss dword [esp + 0x88], xmm0
mov eax, ecx
shr eax, 8
and eax, 0xffffff01
mov dword [esp + 0x4c], eax
test ecx, 0x100
je 0x10041fc5
mov byte [esp + 0x18], 1
mov byte [esp + 0x17], 1
jmp 0x100420ac
mov eax, dword [0x10077b54]
mov dword [esp + 0x78], eax
test byte [eax + 0x1c34], 2
mov edx, dword [eax + 0x1ba8]
mov dword [esp + 0x28], edx
mov edx, dword [edx + 0x16c]
je 0x1004204a
test byte [eax + 0x1c40], 1
mov ecx, edx
je 0x1004200f
mov al, byte [eax + 0x1c44]
mov dword [esp + 0x18], eax
movzx eax, al
push eax
push dword [esp + 0x24]
call fcn.1000db30
mov ecx, dword [esp + 0x18]
jmp 0x10042067
push 0xffffffffffffffff
push dword [esp + 0x24]
call fcn.1000dae0
cmp eax, 0xffffffff
jne 0x1004205e
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x28]
mov al, byte [eax + 0x1c44]
mov ecx, dword [ecx + 0x16c]
mov dword [esp + 0x18], eax
movzx eax, al
push eax
push dword [esp + 0x24]
call fcn.1000db30
mov ecx, dword [esp + 0x18]
jmp 0x10042067
mov eax, ecx
mov ecx, edx
shr eax, 5
and eax, 1
push eax
push dword [esp + 0x24]
call fcn.1000dae0
test eax, eax
setne cl
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x78]
cmp byte [edx + 0x2fa4], 0
je 0x100420a0
test byte [esp + 0x1c], 0x10
jne 0x100420a0
mov eax, dword [esp + 0x28]
movzx ecx, cl
mov eax, dword [eax + 0x158]
sub eax, dword [edx + 0x2fcc]
cmp eax, dword [edx + 0x2fd0]
mov eax, 1
cmovl ecx, eax
mov dword [esp + 0x18], ecx
mov byte [esp + 0x17], cl
test cl, cl
je 0x100420dc
mov ecx, dword [esp + 0x1c]
cmp byte [esi + 0x1d90], 0
jne 0x100420dc
mov eax, ecx
and eax, 0x2008
cmp eax, 0x2000
jne 0x100420dc
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x15c]
mov eax, dword [edx + 0x158]
bts ecx, eax
mov dword [edx + 0x15c], ecx
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x80]
push 0
push 0
call fcn.10019a80
or dword [esi + 0x1c50], 2
add esp, 8
movaps xmm0, xmmword [esp + 0x60]
movups xmmword [esi + 0x1c74], xmm0
test al, al
jne 0x10042194
mov eax, dword [esp + 0x18]
test al, al
je 0x100428c5
test byte [esp + 0x1c], 8
jne 0x100428c5
mov ecx, dword [0x10077b54]
mov edx, dword [ecx + 0x1ba8]
mov eax, edx
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1ba8]
movss xmm0, dword [ecx + 0x1594]
mov ecx, dword [esp + 0x20]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0x110], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x114]
movss dword [eax + 0xd0], xmm0
inc dword [edx + 0x158]
call fcn.100198e0
mov eax, dword [esp + 0x18]
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.100612fd
mov esp, ebp
pop ebp
ret
movss xmm1, dword [esp + 0x50]
subss xmm1, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
movss xmm2, dword [esi + 0x158c]
and eax, 4
movss xmm3, dword [esi + 0xe4]
shl eax, 0xa
movaps xmm0, xmm1
mov ecx, eax
or ecx, 0x200
subss xmm0, xmm2
cmp byte [esp + 0x4c], 0
cmovne ecx, eax
comiss xmm3, xmm0
jb 0x100421fd
movss xmm0, dword [esp + 0x24]
mulss xmm0, dword [0x1006e258]
addss xmm0, dword [esi + 0x1944]
addss xmm0, xmm1
addss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x100421fd
mov al, 1
jmp 0x100421ff
xor al, al
mov edx, dword [esp + 0x34]
cmp edx, dword [esi + 0x1bac]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x30], al
jne 0x10042217
test al, al
jne 0x10042221
or ecx, 0x10000
test al, al
je 0x10042226
or ecx, 0x10
jmp 0x10042236
test dl, 0x40
je 0x10042233
or ecx, 0x120
jmp 0x10042236
or ecx, 0x20
push ecx
lea eax, [esp + 0x36]
and dl, 1
push eax
lea eax, [esp + 0x39]
mov byte [esp + 0x3b], dl
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x88]
push eax
call fcn.10032800
mov cl, al
add esp, 0xc
xor al, al
cmp byte [esp + 0x4c], al
jne 0x10042381
test cl, cl
je 0x100422d2
mov edx, dword [esp + 0x20]
cmp dword [esi + 0x1f34], edx
je 0x100422bf
mov ecx, dword [esp + 0x1c]
test cl, 0xc0
je 0x1004228a
cmp dword [esi + 0x1d60], edx
jne 0x1004228c
mov al, 1
test cl, cl
jns 0x100422a8
cmp byte [esp + 0x30], 0
je 0x100422a4
cmp byte [esi + 0x1d93], 0
jne 0x100422a4
mov dl, 1
jmp 0x100422a6
xor dl, dl
or al, dl
test cl, 0x40
je 0x100422d2
cmp word [esi + 0x3ea], 2
mov edx, dword [esp + 0x18]
jne 0x100422d6
mov al, 1
jmp 0x100422d6
mov edx, dword [esp + 0x18]
mov ecx, 1
test dl, dl
movzx eax, al
cmove eax, ecx
jmp 0x100422d6
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp dword [esi + 0x1d58], ecx
jne 0x10042319
cmp dword [esi + 0x1dbc], 0
jne 0x10042319
mov ecx, dword [0x10077b54]
test dl, dl
je 0x1004231f
cmp byte [ecx + 0x1d95], 0
mov byte [esp + 0x28], 1
setne al
mov word [ecx + 0x1dac], 0
mov byte [ecx + 0x1d94], al
mov eax, dword [esp + 0x28]
jmp 0x1004231f
mov ecx, dword [0x10077b54]
mov edx, dword [esp + 0x20]
cmp dword [esi + 0x1d58], edx
mov edx, dword [esp + 0x18]
jne 0x10042356
cmp dword [esi + 0x1dbc], 1
jne 0x10042356
test dl, dl
jne 0x10042356
cmp byte [ecx + 0x1d95], dl
mov word [ecx + 0x1dac], 0
setne al
mov byte [ecx + 0x1d94], al
jmp 0x1004235a
test al, al
je 0x10042381
test dl, dl
sete al
mov byte [esp + 0x17], al
movzx eax, al
push eax
mov eax, dword [esp + 0x38]
push dword [esp + 0x24]
mov ecx, dword [eax + 0x16c]
call fcn.1000db30
or dword [esi + 0x1c50], 0x10
test byte [esp + 0x1c], 4
je 0x100423b1
mov eax, dword [0x10077b54]
mov ecx, dword [eax + 0x1c48]
cmp dword [eax + 0x1bcc], ecx
jne 0x100423a2
mov byte [eax + 0x1bd4], 1
cmp dword [eax + 0x1be0], ecx
jne 0x100423b1
mov byte [eax + 0x1bed], 1
movss xmm7, dword [0x1006e1fc]
xor ecx, ecx
movaps xmm1, xmm7
call fcn.1000dca0
cmp byte [esp + 0x38], 0
mov dword [esp + 0x18], eax
je 0x10042645
cmp byte [esp + 0x32], 0
mov al, byte [esp + 0x31]
je 0x100423e8
test al, al
je 0x100423e8
mov ecx, 0x1a
jmp 0x100423f2
xor ecx, ecx
test al, al
setne cl
add ecx, 0x18
push dword [esp + 0x6c]
movaps xmm1, xmm7
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.1000dca0
movss xmm2, dword [esi + 0x156c]
mov dl, 1
mov ecx, eax
call fcn.1000e290
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x70]
push 2
call fcn.1000e4a0
mov ecx, dword [esp + 0x30]
add esp, 0x14
test ecx, 0x200
je 0x100424f1
test dword [esp + 0x18], 0xff000000
movss xmm0, dword [esp + 0x3c]
mulss xmm0, dword [0x1006e1c4]
mov eax, dword [esp + 0x34]
movss xmm1, dword [esp + 0x50]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1944]
mov edx, dword [eax + 0x244]
mulss xmm0, dword [0x1006e1bc]
mov dword [esp + 0x28], edx
mov eax, dword [edx + 0x2c]
addss xmm0, dword [esp + 0x54]
movss dword [esp + 0x78], xmm1
movss xmm2, dword [eax + 0xc]
mulss xmm2, dword [0x1006e198]
movss dword [esp + 0x7c], xmm0
je 0x1004255f
xorps xmm0, xmm0
comiss xmm0, xmm2
jae 0x1004255f
push 7
push ecx
lea eax, [esp + 0x80]
mov dword [esp], 0x40afede0
push eax
xorps xmm3, xmm3
mov ecx, edx
call fcn.1002ae20
mov eax, dword [esp + 0x28]
mov ecx, eax
push dword [esp + 0x18]
push dword [eax + 0x54]
push dword [eax + 0x5c]
call fcn.1002a660
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x54], 0
jmp 0x1004255f
cmp byte [esp + 0x4c], 0
movss xmm0, dword [esp + 0x50]
subss xmm0, dword [esp + 0x3c]
jne 0x10042559
addss xmm0, dword [esp + 0x24]
movss xmm3, dword [0x1006e1fc]
xor eax, eax
cmp byte [esp + 0x17], al
mov edx, dword [esp + 0x18]
setne al
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x54]
movss dword [esp + 0x2c], xmm0
push dword [esp + 0x2c]
lea eax, [eax*2 + 1]
push dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x244]
call fcn.10030010
mov ecx, dword [esp + 0x28]
add esp, 0xc
jmp 0x1004255f
movss dword [esp + 0x50], xmm0
test ecx, 0x100000
je 0x10042587
movss xmm0, dword [esi + 0x1944]
addss xmm0, dword [esi + 0x1564]
movss xmm1, dword [esp + 0x40]
subss xmm1, xmm0
movss dword [esp + 0x68], xmm1
cmp byte [esi + 0x2fa4], 0
mov edx, dword [0x10077b54]
mov dword [esp + 0x24], edx
je 0x100425ae
mov dword [edx + 0x2fbc], 0x1006b648
mov dword [edx + 0x2fc0], 0x1006b648
mov ecx, dword [esp + 0x48]
or eax, 0xffffffff
test edi, edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov esi, ecx
cmove edi, eax
cmp ecx, edi
jae 0x100425e9
mov cl, byte [esi]
test cl, cl
je 0x100425e5
cmp cl, 0x23
jne 0x100425e0
cmp byte [esi + 1], cl
je 0x100425e5
inc esi
cmp esi, edi
jb 0x100425d0
mov ecx, dword [esp + 0x48]
mov eax, esi
sub eax, ecx
je 0x10042859
push 0
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x60]
push eax
push esi
push ecx
mov ecx, dword [edx + 0x1ba8]
lea eax, [esp + 0x7c]
push eax
lea edx, [esp + 0x68]
mov ecx, dword [ecx + 0x244]
call fcn.1000e000
mov edi, dword [esp + 0x3c]
add esp, 0x18
cmp byte [edi + 0x2fa4], 0
je 0x1004284f
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x50]
push esi
call fcn.1001f7f0
add esp, 4
jmp 0x1004284f
mov cl, byte [esp + 0x31]
test cl, cl
jne 0x10042657
cmp byte [esp + 0x33], cl
je 0x100426d8
cmp byte [esp + 0x32], 0
je 0x1004266c
test cl, cl
je 0x1004266c
mov dword [esp + 0x28], 0x1a
jmp 0x1004267a
xor eax, eax
test cl, cl
setne al
add eax, 0x18
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x64]
movaps xmm1, xmm7
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x7c], edx
mov edx, dword [0x10077b54]
push 0
push ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x68]
mov edx, dword [edx + 0x1ba8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x80], eax
mov dword [esp], 0
call fcn.1000dca0
mov ecx, dword [edx + 0x244]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.1002b8d0
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x60]
push 2
call fcn.1000e4a0
add esp, 4
test dword [esp + 0x1c], 0x200
je 0x100427a3
test dword [esp + 0x18], 0xff000000
movss xmm0, dword [esp + 0x3c]
mulss xmm0, dword [0x1006e1bc]
mov eax, dword [esp + 0x34]
movss xmm1, dword [esp + 0x50]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1944]
mov ecx, dword [eax + 0x244]
mulss xmm0, dword [0x1006e1bc]
mov dword [esp + 0x28], ecx
mov eax, dword [ecx + 0x2c]
addss xmm0, dword [esp + 0x54]
movss dword [esp + 0x58], xmm1
movss xmm2, dword [eax + 0xc]
mulss xmm2, dword [0x1006e198]
movss dword [esp + 0x5c], xmm0
je 0x10042815
xorps xmm0, xmm0
comiss xmm0, xmm2
jae 0x10042815
push 7
push ecx
lea eax, [esp + 0x60]
mov dword [esp], 0x40afede0
push eax
xorps xmm3, xmm3
call fcn.1002ae20
mov eax, dword [esp + 0x28]
mov ecx, eax
push dword [esp + 0x18]
push dword [eax + 0x54]
push dword [eax + 0x5c]
call fcn.1002a660
mov eax, dword [esp + 0x28]
mov dword [eax + 0x54], 0
jmp 0x10042815
cmp byte [esp + 0x4c], 0
jne 0x10042815
movss xmm0, dword [esi + 0x1944]
xor eax, eax
movss xmm1, dword [esp + 0x50]
mulss xmm0, dword [0x1006e190]
cmp byte [esp + 0x17], al
subss xmm1, dword [esp + 0x3c]
movss xmm3, dword [0x1006e1d0]
setne al
addss xmm0, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
addss xmm1, dword [esp + 0x24]
lea eax, [eax*2 + 1]
movss dword [esp + 0x5c], xmm0
push dword [esp + 0x5c]
movss dword [esp + 0x5c], xmm1
push dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x244]
call fcn.10030010
add esp, 0xc
cmp byte [esi + 0x2fa4], 0
je 0x10042837
mov eax, dword [0x10077b54]
mov dword [eax + 0x2fbc], 0x1006b6b4
mov dword [eax + 0x2fc0], 0
push dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
mov edx, edi
push dword [esp + 0x54]
push 0
call fcn.1000ded0
add esp, 0xc
mov edx, dword [0x10077b54]
mov dword [esp + 0x24], edx
mov al, byte [esp + 0x17]
test al, al
je 0x100428c5
test byte [esp + 0x1c], 8
jne 0x100428c5
mov edi, dword [esp + 0x24]
mov edx, dword [edx + 0x1ba8]
mov eax, dword [edi + 0x1ba8]
mov byte [eax + 0x8c], 1
mov ecx, dword [edi + 0x1ba8]
movss xmm0, dword [edi + 0x1594]
addss xmm0, dword [ecx + 0x110]
movss dword [ecx + 0x110], xmm0
addss xmm0, dword [ecx + 0xc]
addss xmm0, dword [ecx + 0x114]
movss dword [ecx + 0xd0], xmm0
mov ecx, dword [esp + 0x20]
inc dword [edx + 0x158]
call fcn.100198e0
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
xor ecx, esp
call fcn.100612fd
mov esp, ebp
pop ebp
ret