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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, dword [0x100b4040]
xor eax, esp
mov dword [esp + 0xa4], eax
push esi
mov esi, dword [0x10103264]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x60], ecx
mov eax, dword [esi + 0x3e28]
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0xc]
push edi
mov byte [eax + 0xa8], 1
mov ecx, dword [esi + 0x3e28]
mov dword [esp + 0x60], edx
mov dword [esp + 0x20], ecx
cmp byte [ecx + 0xab], 0
je 0x1008220e
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.10098200
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], eax
shr dword [esp + 0x38], 1
and byte [esp + 0x38], 1
jne 0x1008224e
test eax, 0x400
jne 0x1008224e
movss xmm0, dword [esi + 0x37d4]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [ecx + 0x124]
minss xmm0, dword [esi + 0x37d8]
movss dword [esp + 0x6c], xmm0
jmp 0x10082262
mov eax, dword [esi + 0x37d4]
mov ecx, dword [esi + 0x37d8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
lea edi, [esp + 0x68]
movss xmm7, dword [edi + 4]
mov dword [esp + 0x58], edi
movss dword [esp + 0x28], xmm7
test edx, edx
jne 0x100822a0
mov edx, dword [esp + 0x64]
mov dword [esp + 0x60], edx
cmp edx, 0xffffffff
jae 0x100822a0
mov cl, byte [edx]
test cl, cl
je 0x1008229c
cmp cl, 0x23
jne 0x10082296
cmp byte [edx + 1], cl
je 0x1008229c
inc edx
cmp edx, 0xffffffff
jb 0x10082286
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x64]
movss xmm1, dword [esi + 0x3bb4]
cmp eax, edx
jne 0x100822b5
xorps xmm4, xmm4
jmp 0x10082301
movss xmm3, dword [0x100b1530]
movaps xmm2, xmm1
push 0
push edx
push eax
push ecx
mov ecx, dword [esi + 0x3bb0]
lea eax, [esp + 0x50]
mov dword [esp], 0xbf800000
push eax
call fcn.1005dc90
movss xmm0, dword [esp + 0x40]
addss xmm0, dword [0x100b12fc]
movss xmm1, dword [esp + 0x44]
movss xmm7, dword [esp + 0x28]
cvttss2si eax, xmm0
movd xmm4, eax
cvtdq2ps xmm4, xmm4
test dword [esp + 0x14], 0x1000
movss xmm0, dword [esi + 0x37d8]
movss xmm3, dword [esi + 0x3bb4]
addss xmm0, xmm0
mov ecx, dword [esp + 0x20]
movss dword [esp + 0x7c], xmm1
movss dword [esp + 0x78], xmm4
movss xmm5, dword [ecx + 0x118]
addss xmm0, xmm3
minss xmm5, xmm0
movaps xmm0, xmm7
addss xmm0, xmm7
addss xmm0, xmm1
maxss xmm5, xmm0
je 0x10082358
movss xmm2, dword [ecx + 0x1f4]
jmp 0x10082360
movss xmm2, dword [ecx + 0xec]
cmp byte [esp + 0x38], 0
movss xmm0, dword [ecx + 0x1fc]
movss xmm6, dword [ecx + 0xf0]
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x88], xmm0
movaps xmm0, xmm6
addss xmm0, xmm5
movss dword [esp + 0x80], xmm2
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x84], xmm6
movss dword [esp + 0x8c], xmm0
je 0x10082412
movss xmm1, dword [ecx + 0x40]
mulss xmm1, dword [0x100b12bc]
movaps xmm0, xmm1
subss xmm0, dword [0x100b1304]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x40], xmm2
addss xmm0, dword [esp + 0x28]
movss dword [esp + 0x80], xmm2
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x88], xmm0
movss xmm0, dword [edi]
mulss xmm0, dword [0x100b13a4]
jmp 0x1008241a
movss xmm0, dword [edi]
addss xmm0, xmm0
movaps xmm2, xmm3
movaps xmm1, xmm7
maxss xmm1, dword [ecx + 0x124]
addss xmm2, xmm0
xorps xmm0, xmm0
comiss xmm4, xmm0
movss dword [esp + 0x3c], xmm2
jbe 0x10082446
movss xmm0, dword [edi]
addss xmm0, xmm0
addss xmm0, xmm4
addss xmm3, xmm0
movss dword [esp + 0x94], xmm5
movaps xmm0, xmm2
addss xmm6, xmm1
addss xmm0, dword [ecx + 0xec]
movaps xmm1, xmm7
lea ecx, [esp + 0x90]
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x74], xmm6
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x90], xmm3
call fcn.100138a0
cmp byte [esp + 0x38], 0
movaps xmm0, xmmword [esp + 0x80]
mov eax, dword [esp + 0x14]
movaps xmmword [esp + 0x90], xmm0
jne 0x100824d3
test eax, 0x1800
jne 0x100824d3
movss xmm0, dword [esi + 0x37e4]
movss xmm1, dword [esp + 0x24]
addss xmm0, xmm0
addss xmm1, dword [esp + 0x40]
addss xmm0, xmm1
movss dword [esp + 0x98], xmm0
mov ecx, eax
shr ecx, 8
and ecx, 0xffffff01
mov dword [esp + 0x40], ecx
test eax, 0x100
je 0x100824f3
mov byte [esp + 0x13], 1
jmp 0x100825d6
mov edi, dword [0x10103264]
test byte [edi + 0x4688], 2
mov ecx, dword [edi + 0x3e28]
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx + 0x190]
je 0x10082585
test byte [edi + 0x4694], 1
je 0x10082548
mov cl, byte [edi + 0x4698]
xor eax, eax
test cl, cl
mov byte [esp + 0x13], cl
mov ecx, dword [edi + 0x3e28]
setne al
push eax
push dword [esp + 0x1c]
mov ecx, dword [ecx + 0x190]
call fcn.10003f40
mov cl, byte [esp + 0x13]
jmp 0x1008259e
push 0xffffffffffffffff
push dword [esp + 0x1c]
call fcn.10003e70
cmp eax, 0xffffffff
jne 0x10082595
mov cl, byte [edi + 0x4698]
xor eax, eax
test cl, cl
mov byte [esp + 0x13], cl
mov ecx, dword [edi + 0x3e28]
setne al
push eax
push dword [esp + 0x1c]
mov ecx, dword [ecx + 0x190]
call fcn.10003f40
mov cl, byte [esp + 0x13]
jmp 0x1008259e
shr eax, 5
and eax, 1
push eax
push dword [esp + 0x1c]
call fcn.10003e70
test eax, eax
setne cl
mov byte [esp + 0x13], cl
cmp byte [edi + 0x5a50], 0
mov eax, dword [esp + 0x14]
je 0x100825d2
test al, 0x10
jne 0x100825d2
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x17c]
sub eax, dword [edi + 0x5a78]
cmp eax, dword [edi + 0x5a7c]
mov eax, dword [esp + 0x14]
jge 0x100825d2
mov byte [esp + 0x13], 1
jmp 0x100825d6
test cl, cl
je 0x10082606
cmp byte [esi + 0x47e4], 0
mov edi, dword [esp + 0x20]
jne 0x1008260a
and eax, 0x2008
cmp eax, 0x2000
jne 0x1008260a
mov ecx, dword [edi + 0x180]
mov eax, dword [edi + 0x17c]
bts ecx, eax
mov dword [edi + 0x180], ecx
jmp 0x1008260a
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x90]
push 0
push 0
call fcn.10013a00
or dword [esi + 0x46a4], 2
add esp, 8
movaps xmm0, xmmword [esp + 0x80]
movups xmmword [esi + 0x46c8], xmm0
test al, al
jne 0x100826a5
mov al, byte [esp + 0x13]
test al, al
je 0x10082d7c
test byte [esp + 0x14], 8
jne 0x10082d7c
mov ecx, dword [0x10103264]
mov esi, dword [ecx + 0x3e28]
mov eax, esi
mov byte [eax + 0xa8], 1
mov edx, dword [ecx + 0x3e28]
movss xmm0, dword [ecx + 0x3804]
addss xmm0, dword [edx + 0x130]
movss dword [edx + 0x130], xmm0
addss xmm0, dword [edx + 0x10]
addss xmm0, dword [edx + 0x134]
movss dword [edx + 0xec], xmm0
inc dword [esi + 0x17c]
jmp 0x10082d6f
movss xmm1, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov eax, edx
subss xmm1, dword [esp + 0x3c]
movss xmm2, dword [esi + 0x37fc]
and eax, 4
movss xmm3, dword [esi + 0xdb8]
shl eax, 0xa
mov ecx, eax
movaps xmm0, xmm1
or ecx, 0x200
cmp byte [esp + 0x40], 0
subss xmm0, xmm2
cmovne ecx, eax
comiss xmm3, xmm0
jb 0x1008270e
mov eax, dword [esp + 0x58]
movss xmm0, dword [eax]
addss xmm0, xmm0
addss xmm0, dword [esi + 0x3bb4]
addss xmm0, xmm1
addss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x1008270e
mov al, 1
jmp 0x10082710
xor al, al
mov byte [esp + 0x1d], al
cmp edi, dword [esi + 0x3e2c]
jne 0x10082720
test al, al
jne 0x1008272a
or ecx, 0x10000
test al, al
je 0x1008272f
or ecx, 0x10
jmp 0x1008273f
test dl, 0x40
je 0x1008273c
or ecx, 0x120
jmp 0x1008273f
or ecx, 0x20
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x1f]
push ecx
and dl, 1
lea ecx, [esp + 0x94]
push eax
lea eax, [esp + 0x26]
mov byte [esp + 0x3f], dl
push eax
mov edx, edi
call fcn.1006c850
xor dl, dl
add esp, 0xc
cmp byte [esp + 0x40], dl
jne 0x1008286d
test al, al
je 0x100827d5
cmp dword [esi + 0x49a0], edi
je 0x100827c2
mov eax, dword [esp + 0x14]
test al, 0xc0
je 0x1008278e
cmp dword [esi + 0x47b4], edi
jne 0x10082790
mov dl, 1
test al, al
jns 0x100827ac
cmp byte [esp + 0x1d], 0
je 0x100827a8
cmp byte [esi + 0x47e7], 0
jne 0x100827a8
mov cl, 1
jmp 0x100827aa
xor cl, cl
or dl, cl
test al, 0x40
je 0x100827d5
cmp word [esi + 0x3702], 2
mov cl, byte [esp + 0x13]
jne 0x100827d9
mov dl, 1
jmp 0x100827d9
mov cl, byte [esp + 0x13]
mov eax, 1
test cl, cl
movzx edx, dl
cmove edx, eax
jmp 0x100827d9
mov cl, byte [esp + 0x13]
cmp dword [esi + 0x47ac], edi
mov edi, dword [0x10103264]
jne 0x1008280f
cmp dword [esi + 0x4810], 0
jne 0x1008280f
test cl, cl
je 0x1008280f
cmp byte [edi + 0x47e9], 0
mov dl, 1
mov word [edi + 0x4800], 0
setne al
mov byte [edi + 0x47e8], al
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x47ac], eax
jne 0x10082842
cmp dword [esi + 0x4810], 1
jne 0x10082842
test cl, cl
jne 0x10082842
cmp byte [edi + 0x47e9], cl
mov word [edi + 0x4800], 0
setne al
mov byte [edi + 0x47e8], al
jmp 0x10082846
test dl, dl
je 0x10082873
test cl, cl
mov ecx, dword [esp + 0x20]
sete al
mov byte [esp + 0x13], al
mov ecx, dword [ecx + 0x190]
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.10003f40
or dword [esi + 0x46a4], 0x10
mov edi, dword [0x10103264]
test byte [esp + 0x14], 4
je 0x1008289e
mov eax, dword [edi + 0x469c]
cmp dword [edi + 0x3e60], eax
jne 0x1008288f
mov byte [edi + 0x3e68], 1
cmp dword [edi + 0x3e74], eax
jne 0x1008289e
mov byte [edi + 0x3e81], 1
movss xmm7, dword [0x100b1304]
xor ecx, ecx
movaps xmm1, xmm7
call fcn.10005270
cmp byte [esp + 0x38], 0
mov dword [esp + 0x24], eax
je 0x10082af3
cmp byte [esp + 0x1f], 0
mov al, byte [esp + 0x1e]
je 0x100828d5
test al, al
je 0x100828d5
mov ecx, 0x1a
jmp 0x100828df
xor ecx, ecx
test al, al
setne cl
add ecx, 0x18
push dword [esp + 0x8c]
movaps xmm1, xmm7
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.10005270
movss xmm2, dword [esi + 0x37dc]
mov dl, 1
mov ecx, eax
call fcn.10006220
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x90]
push 2
call fcn.10006580
mov edi, dword [esp + 0x28]
add esp, 0x14
test edi, 0x200
je 0x100829ee
test dword [esp + 0x24], 0xff000000
movss xmm0, dword [esp + 0x3c]
mulss xmm0, dword [0x100b12c4]
mov eax, dword [esp + 0x20]
movss xmm1, dword [esp + 0x70]
movss xmm3, dword [0x100b12bc]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x3bb4]
mov ecx, dword [eax + 0x268]
mulss xmm0, xmm3
mov dword [esp + 0x58], ecx
mov eax, dword [ecx + 0x2c]
addss xmm0, dword [esp + 0x74]
movss dword [esp + 0x90], xmm1
movss xmm2, dword [eax + 0xc]
mulss xmm2, dword [0x100b1298]
movss dword [esp + 0x94], xmm0
je 0x10082a5a
comiss xmm3, xmm2
ja 0x10082a5a
push 7
push ecx
lea eax, [esp + 0x98]
mov dword [esp], 0x40afede0
push eax
xorps xmm3, xmm3
call fcn.10058950
mov eax, dword [esp + 0x58]
mov ecx, eax
push dword [esp + 0x24]
push dword [eax + 0x54]
push dword [eax + 0x5c]
call fcn.10058160
mov eax, dword [esp + 0x58]
mov dword [eax + 0x54], 0
jmp 0x10082a5a
cmp byte [esp + 0x40], 0
movss xmm0, dword [esp + 0x70]
subss xmm0, dword [esp + 0x3c]
jne 0x10082a54
mov eax, dword [esp + 0x58]
movss xmm3, dword [0x100b1304]
mov edx, dword [esp + 0x24]
addss xmm0, dword [eax]
xor eax, eax
cmp byte [esp + 0x13], al
setne al
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x74]
movss dword [esp + 0x5c], xmm0
push dword [esp + 0x5c]
lea eax, [eax*2 + 1]
push dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x268]
call fcn.1005e560
add esp, 0xc
jmp 0x10082a5a
movss dword [esp + 0x70], xmm0
test edi, 0x100000
je 0x10082a85
movss xmm0, dword [esi + 0x3bb4]
addss xmm0, dword [esi + 0x37d4]
movss xmm1, dword [esp + 0x28]
subss xmm1, xmm0
movss dword [esp + 0x88], xmm1
cmp byte [esi + 0x5a50], 0
je 0x10082aa7
mov eax, dword [0x10103264]
mov dword [eax + 0x5a68], 0x1009c3d8
mov dword [eax + 0x5a6c], 0x1009c3d8
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x90]
push 0
push eax
lea eax, [esp + 0x80]
mov dword [esp + 0x98], 0
push eax
push dword [esp + 0x6c]
lea edx, [esp + 0x98]
mov dword [esp + 0xa4], 0
push ecx
lea ecx, [esp + 0x84]
call fcn.100059b0
add esp, 0x14
jmp 0x10082d12
mov cl, byte [esp + 0x1e]
test cl, cl
jne 0x10082b05
cmp byte [esp + 0x37], cl
je 0x10082b98
cmp byte [esp + 0x1f], 0
je 0x10082b1a
test cl, cl
je 0x10082b1a
mov dword [esp + 0x28], 0x1a
jmp 0x10082b28
xor eax, eax
test cl, cl
setne al
add eax, 0x18
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x8c]
movaps xmm1, xmm7
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
push 0
push ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x84], edx
mov edx, dword [edi + 0x3e28]
mov dword [esp + 0x80], eax
mov dword [esp], 0
call fcn.10005270
mov ecx, dword [edx + 0x268]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.10059bc0
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x80]
push 2
call fcn.10006580
add esp, 4
test dword [esp + 0x14], 0x200
je 0x10082c62
test dword [esp + 0x24], 0xff000000
movss xmm0, dword [esp + 0x3c]
movss xmm3, dword [0x100b12bc]
mov eax, dword [esp + 0x20]
movss xmm1, dword [esp + 0x70]
mulss xmm0, xmm3
mov edi, dword [eax + 0x268]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x3bb4]
mulss xmm0, xmm3
mov eax, dword [edi + 0x2c]
addss xmm0, dword [esp + 0x74]
movss xmm2, dword [eax + 0xc]
mulss xmm2, dword [0x100b1298]
movss dword [esp + 0x90], xmm1
movss dword [esp + 0x94], xmm0
je 0x10082cd6
comiss xmm3, xmm2
ja 0x10082cd6
push 7
push ecx
lea eax, [esp + 0x98]
mov dword [esp], 0x40afede0
push eax
xorps xmm3, xmm3
mov ecx, edi
call fcn.10058950
push dword [esp + 0x24]
mov ecx, edi
push dword [edi + 0x54]
push dword [edi + 0x5c]
call fcn.10058160
mov dword [edi + 0x54], 0
jmp 0x10082cd6
cmp byte [esp + 0x40], 0
jne 0x10082cd6
movss xmm1, dword [esp + 0x70]
movss xmm0, dword [esi + 0x3bb4]
subss xmm1, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
mulss xmm0, dword [0x100b1290]
mov edx, dword [esp + 0x24]
movss xmm3, dword [0x100b12d0]
addss xmm1, dword [eax]
addss xmm0, dword [esp + 0x74]
xor eax, eax
cmp byte [esp + 0x13], al
setne al
movss dword [esp + 0x78], xmm1
movss dword [esp + 0x7c], xmm0
push dword [esp + 0x7c]
push dword [esp + 0x7c]
lea eax, [eax*2 + 1]
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x268]
call fcn.1005e560
add esp, 0xc
cmp byte [esi + 0x5a50], 0
je 0x10082cf8
mov eax, dword [0x10103264]
mov dword [eax + 0x5a68], 0x1009d87c
mov dword [eax + 0x5a6c], 0
push dword [esp + 0x74]
mov edx, dword [esp + 0x64]
push dword [esp + 0x74]
mov ecx, dword [esp + 0x6c]
push 0
call fcn.10005880
add esp, 0xc
mov al, byte [esp + 0x13]
test al, al
je 0x10082d7c
test byte [esp + 0x14], 8
jne 0x10082d7c
mov ecx, dword [0x10103264]
mov edx, dword [ecx + 0x3e28]
mov eax, edx
mov byte [eax + 0xa8], 1
mov eax, dword [ecx + 0x3e28]
movss xmm0, dword [ecx + 0x3804]
addss xmm0, dword [eax + 0x130]
movss dword [eax + 0x130], xmm0
addss xmm0, dword [eax + 0x10]
addss xmm0, dword [eax + 0x134]
movss dword [eax + 0xec], xmm0
inc dword [edx + 0x17c]
mov ecx, dword [esp + 0x18]
call fcn.10011550
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0xac]
pop edi
pop esi
xor ecx, esp
call fcn.10098200
mov esp, ebp
pop ebp
ret