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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
push esi
mov esi, dword [0x1026a4b8]
mov dword [esp + 0x24], ecx
mov ecx, esi
push edi
mov byte [esp + 0xe], dl
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x1bac]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
mov byte [eax + 0xac], 1
mov edi, dword [ecx + 0x1bac]
cmp byte [edi + 0xaf], 0
jne 0x100d98c8
mov eax, edx
and eax, 2
mov dword [esp + 0x1c], eax
je 0x100d9510
cmp dword [edi + 0x1a4], 0
je 0x100d9510
mov ecx, dword [esi + 0x1bac]
mov dword [esp + 0x5c], ecx
mov edx, dword [ecx + 0x1a4]
cmp dword [edx + 0x10], 1
je 0x100d9510
movups xmm0, xmmword [ecx + 0x240]
push 0
movups xmmword [edx + 0x3c], xmm0
mov eax, dword [ecx + 0x294]
movups xmm0, xmmword [edx + 0x2c]
movss xmm4, dword [edx + 0x2c]
movss xmm3, dword [edx + 0x30]
movss xmm2, dword [edx + 0x34]
movss xmm1, dword [edx + 0x38]
movups xmmword [ecx + 0x240], xmm0
movss dword [esp + 0x74], xmm4
movss dword [esp + 0x78], xmm3
movss dword [esp + 0x7c], xmm2
movss dword [esp + 0x80], xmm1
movss dword [eax + 0x60], xmm4
movss dword [eax + 0x64], xmm3
movss dword [eax + 0x68], xmm2
movss dword [eax + 0x6c], xmm1
mov eax, dword [ecx + 0x294]
movups xmm0, xmmword [esp + 0x74]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movups xmmword [eax + ecx*8 - 0x10], xmm0
mov eax, dword [esp + 0x60]
lea ecx, [edx + 0x68]
push dword [eax + 0x294]
call fcn.100c5e90
mov esi, dword [0x1026a4b8]
mov ecx, dword [edi + 0xe4]
xor edx, edx
mov eax, dword [edi + 0xec]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x2c]
call fcn.100ae2f0
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esi + 0x1be0], eax
jne 0x100d9540
mov dword [esi + 0x1be4], eax
cmp dword [esi + 0x1c1c], eax
jne 0x100d954f
mov byte [esi + 0x1c20], 1
mov edx, dword [esp + 0x28]
mov eax, edx
cmp edx, 0xffffffff
jae 0x100d9576
nop word [eax + eax]
mov cl, byte [eax]
test cl, cl
je 0x100d9576
cmp cl, 0x23
jne 0x100d9570
cmp byte [eax + 1], cl
je 0x100d9576
inc eax
cmp eax, 0xffffffff
jb 0x100d9560
movss xmm1, dword [esi + 0x1940]
xorps xmm7, xmm7
cmp edx, eax
jne 0x100d958a
xorps xmm0, xmm0
jmp 0x100d95d3
movss xmm3, dword [0x1025181c]
movaps xmm2, xmm1
push 0
push eax
push edx
push ecx
mov ecx, dword [esi + 0x193c]
lea eax, [esp + 0x70]
mov dword [esp], 0xbf800000
push eax
call fcn.100c79a0
movss xmm0, dword [esp + 0x60]
xorps xmm7, xmm7
addss xmm0, dword [0x10251580]
movss xmm1, dword [esp + 0x64]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov esi, dword [ebp + 0xc]
movss dword [esp + 0x6c], xmm1
movss dword [esp + 0x68], xmm0
movss dword [esp + 0x2c], xmm0
movss xmm2, dword [esi + 4]
ucomiss xmm2, xmm7
movss dword [esp + 0x30], xmm2
lahf
test ah, 0x44
jp 0x100d9605
movaps xmm2, xmm1
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esi]
ucomiss xmm1, xmm7
lahf
test ah, 0x44
jp 0x100d9615
movaps xmm1, xmm0
movss xmm3, dword [edi + 0xf4]
lea ecx, [esp + 0x20]
addss xmm3, dword [edi + 0x128]
movss xmm4, dword [edi + 0xf0]
movss dword [esp + 0x20], xmm1
addss xmm1, xmm4
movss dword [esp + 0x24], xmm2
movss dword [esp + 0x5c], xmm4
movaps xmm0, xmm3
movss dword [esp + 0x60], xmm3
addss xmm0, xmm2
movss dword [esp + 0x80], xmm4
movss dword [esp + 0x88], xmm1
xorps xmm1, xmm1
movss dword [esp + 0x84], xmm3
movss dword [esp + 0x8c], xmm0
call fcn.100ba850
cmp dword [esp + 0x1c], 0
movss xmm2, dword [edi + 0x5c]
je 0x100d96a6
mov eax, dword [0x1026a4b8]
mov eax, dword [eax + 0x1bac]
movss xmm0, dword [eax + 0x258]
subss xmm0, dword [eax + 0x14]
jmp 0x100d96e7
mov ecx, dword [0x1026a4b8]
mov eax, dword [ecx + 0x1bac]
cmp dword [eax + 0x1a4], 0
movss xmm1, dword [eax + 0x14]
movss xmm0, dword [eax + 0x258]
subss xmm0, xmm1
movss dword [esp + 0x20], xmm0
jne 0x100d96db
cmp dword [ecx + 0x1f18], 0
je 0x100d96ed
movss xmm0, dword [eax + 0x228]
subss xmm0, xmm1
movss dword [esp + 0x20], xmm0
addss xmm0, dword [edi + 0x14]
movss xmm6, dword [esi + 4]
movss xmm1, dword [esp + 0x5c]
movss xmm4, dword [esp + 0x2c]
ucomiss xmm6, xmm7
subss xmm0, xmm2
lahf
subss xmm0, xmm1
maxss xmm4, xmm0
test ah, 0x44
jp 0x100d971e
movss xmm6, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov ecx, edx
movss xmm0, dword [esi]
and ecx, 0x1000000
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jnp 0x100d973e
test ecx, ecx
jne 0x100d973e
movaps xmm4, xmm0
movss xmm5, dword [esp + 0x60]
addss xmm4, xmm1
ucomiss xmm0, xmm7
addss xmm6, xmm5
lahf
test ah, 0x44
jnp 0x100d9759
test ecx, ecx
je 0x100d975d
addss xmm4, xmm2
mov eax, dword [esp + 0x18]
movss xmm7, dword [esp + 0x5c]
push ecx
push 0
movss xmm2, dword [eax + 0x1570]
lea ecx, [esp + 0x78]
movss xmm3, dword [eax + 0x1574]
movaps xmm0, xmm2
mulss xmm0, dword [0x10251528]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x10251528]
movd xmm1, eax
cvttss2si eax, xmm0
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, edx
mov edx, dword [esp + 0x1c]
subss xmm2, xmm1
cvtdq2ps xmm0, xmm0
and eax, 8
mov dword [esp + 0x34], eax
subss xmm7, xmm1
subss xmm3, xmm0
subss xmm5, xmm0
addss xmm2, xmm4
movss dword [esp + 0x78], xmm7
addss xmm3, xmm6
movss dword [esp + 0x7c], xmm5
movss dword [esp + 0x80], xmm2
movss dword [esp + 0x84], xmm3
je 0x100d980d
mov esi, dword [edi + 0x1bc]
mov eax, esi
or eax, 0x14
mov dword [edi + 0x1bc], eax
call fcn.100ba980
mov dword [edi + 0x1bc], esi
jmp 0x100d9812
call fcn.100ba980
add esp, 8
test al, al
jne 0x100d98d0
cmp dword [esp + 0x1c], 0
je 0x100d98c8
cmp dword [edi + 0x1a4], 0
je 0x100d98c8
mov eax, dword [0x1026a4b8]
mov esi, dword [eax + 0x1bac]
mov edx, dword [esi + 0x1a4]
cmp dword [edx + 0x10], 1
je 0x100d98c8
movups xmm0, xmmword [edx + 0x3c]
mov eax, dword [esi + 0x294]
movss xmm4, dword [edx + 0x3c]
movss xmm3, dword [edx + 0x40]
movss xmm2, dword [edx + 0x44]
movss xmm1, dword [edx + 0x48]
movups xmmword [esi + 0x240], xmm0
movss dword [esp + 0x70], xmm4
movss dword [esp + 0x74], xmm3
movss dword [esp + 0x78], xmm2
movss dword [esp + 0x7c], xmm1
movss dword [eax + 0x60], xmm4
movss dword [eax + 0x64], xmm3
movss dword [eax + 0x68], xmm2
movss dword [eax + 0x6c], xmm1
mov eax, dword [esi + 0x294]
movups xmm0, xmmword [esp + 0x70]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movups xmmword [eax + ecx*8 - 0x10], xmm0
mov eax, dword [edx + 0xc]
lea ecx, [edx + 0x68]
inc eax
push eax
push dword [esi + 0x294]
call fcn.100c5e90
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov esi, 0
mov ecx, eax
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x10
and eax, 0x400000
mov eax, dword [esp + 0x10]
cmove edx, ecx
mov ecx, edx
or ecx, 0x80
and eax, 0x800000
mov eax, dword [esp + 0x10]
cmove ecx, edx
mov edx, ecx
or edx, 0x120
and al, 4
movzx eax, byte [esp + 0xe]
cmove edx, ecx
mov ecx, dword [esp + 0x10]
and ecx, 0x10
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x60], ecx
cmove esi, eax
mov eax, edx
or eax, 0x1000
mov dword [esp + 0x5c], esi
test ecx, ecx
lea ecx, [esp + 0x70]
cmove eax, edx
mov edx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x13]
push eax
lea eax, [esp + 0x16]
push eax
call fcn.100ccf00
mov cl, byte [esp + 0x1a]
add esp, 0xc
mov esi, dword [0x1026a4b8]
mov byte [esp + 0xd], al
mov byte [esp + 0xe], cl
test al, al
jne 0x100d997e
mov eax, dword [esp + 0x10]
test cl, cl
je 0x100d99f0
test eax, 0x4000000
je 0x100d99f0
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x1d97], 0
jne 0x100d99d1
cmp dword [ecx + 0x1d44], edi
jne 0x100d99d1
mov eax, dword [ecx + 0x1d8c]
cmp eax, dword [edi + 0x13c]
jne 0x100d99d1
mov edx, dword [esp + 0x14]
mov byte [ecx + 0x1d96], 1
mov eax, dword [edi + 0x148]
mov ecx, dword [edi + 0x13c]
mov dword [esi + 0x1d4c], eax
mov eax, dword [esi + 0x1d44]
mov dword [esi + 0x1d48], edx
mov dword [eax + ecx*4 + 0x33c], edx
cmp byte [esp + 0xd], 0
mov cl, byte [esp + 0xe]
mov eax, dword [esp + 0x10]
je 0x100d99f0
or dword [esi + 0x1c50], 4
mov word [esi + 0x1bf0], 0x101
cmp dword [esp + 0x60], 0
je 0x100d9a1b
mov edx, dword [esi + 0x1c48]
cmp dword [esi + 0x1bcc], edx
jne 0x100d9a0c
mov byte [esi + 0x1bd4], 1
cmp dword [esi + 0x1be0], edx
jne 0x100d9a1b
mov byte [esi + 0x1bed], 1
mov dl, byte [esp + 0xf]
test dl, dl
je 0x100d9a2e
test eax, 0x2000000
je 0x100d9a2e
mov cl, 1
jmp 0x100d9a3c
test cl, cl
jne 0x100d9a3c
cmp byte [esp + 0x5c], cl
je 0x100d9ba4
test dl, dl
je 0x100d9a4e
test cl, cl
je 0x100d9a4e
mov dword [esp + 0x5c], 0x1a
jmp 0x100d9a5c
xor eax, eax
test cl, cl
setne al
add eax, 0x18
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
movss xmm1, dword [0x10251588]
push 0
push ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x1bac]
mov dword [esp + 0x38], eax
mov dword [esp], 0
call fcn.100af0d0
mov ecx, dword [edx + 0x294]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.100c5230
mov eax, dword [0x1026a4b8]
xorps xmm0, xmm0
movss xmm3, dword [0x10251588]
movss xmm4, dword [eax + 0x1528]
movaps xmm5, xmm4
mulss xmm5, dword [0x102514cc]
comiss xmm0, xmm5
jbe 0x100d9ae7
movaps xmm2, xmm3
xorps xmm1, xmm1
minss xmm2, xmm5
jmp 0x100d9af1
movaps xmm1, xmm3
minss xmm1, xmm5
movaps xmm2, xmm1
movss xmm6, dword [0x102517ac]
movss xmm7, dword [0x10251528]
mulss xmm1, xmm6
addss xmm1, xmm7
cvttss2si edx, xmm1
shl edx, 0x18
comiss xmm0, xmm5
jbe 0x100d9b18
xorps xmm2, xmm2
mulss xmm4, dword [0x102514b0]
mulss xmm2, xmm6
addss xmm2, xmm7
cvttss2si ecx, xmm2
shl ecx, 0x18
comiss xmm0, xmm4
jbe 0x100d9b3d
xorps xmm1, xmm1
minss xmm3, xmm4
jmp 0x100d9b47
movaps xmm1, xmm3
minss xmm1, xmm4
movaps xmm3, xmm1
mulss xmm1, xmm6
addss xmm1, xmm7
cvttss2si eax, xmm1
shl eax, 0x18
comiss xmm0, xmm4
ja 0x100d9b5e
movaps xmm0, xmm3
mulss xmm0, xmm6
push edx
push ecx
mov ecx, dword [edi + 0x294]
push eax
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 0x18
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.100c53a0
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x70]
push 0xa
call fcn.100afdb0
mov esi, dword [0x1026a4b8]
add esp, 4
cmp dword [esp + 0x1c], 0
je 0x100d9ca7
cmp dword [edi + 0x1a4], 0
je 0x100d9ca7
mov ecx, dword [esi + 0x1bac]
mov dword [esp + 0x60], ecx
mov edx, dword [ecx + 0x1a4]
cmp dword [edx + 0x10], 1
je 0x100d9c5c
mov eax, dword [ecx + 0x294]
movups xmm0, xmmword [edx + 0x3c]
movss xmm4, dword [edx + 0x3c]
movss xmm3, dword [edx + 0x40]
movss xmm2, dword [edx + 0x44]
movss xmm1, dword [edx + 0x48]
movups xmmword [ecx + 0x240], xmm0
movss dword [esp + 0x30], xmm4
movss dword [esp + 0x34], xmm3
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x3c], xmm1
movss dword [eax + 0x60], xmm4
movss dword [eax + 0x64], xmm3
movss dword [eax + 0x68], xmm2
movss dword [eax + 0x6c], xmm1
mov eax, dword [ecx + 0x294]
movups xmm0, xmmword [esp + 0x30]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movups xmmword [eax + ecx*8 - 0x10], xmm0
mov eax, dword [edx + 0xc]
lea ecx, [edx + 0x68]
inc eax
push eax
mov eax, dword [esp + 0x64]
push dword [eax + 0x294]
call fcn.100c5e90
mov esi, dword [0x1026a4b8]
mov eax, dword [esi + 0x1bac]
cmp dword [eax + 0x1a4], 0
movss xmm0, dword [eax + 0x14]
movss xmm1, dword [eax + 0x258]
subss xmm1, xmm0
jne 0x100d9c85
cmp dword [esi + 0x1f18], 0
je 0x100d9c91
movss xmm1, dword [eax + 0x228]
subss xmm1, xmm0
subss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0x78]
subss xmm0, xmm1
movss dword [esp + 0x78], xmm0
cmp dword [esp + 0x2c], 0
je 0x100d9ce6
movups xmm0, xmmword [esi + 0x15ec]
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 0
push eax
lea ecx, [esi + 0x1cd8]
movups xmmword [esp + 0x38], xmm0
call fcn.100c1120
mov eax, dword [esp + 0x18]
movups xmm0, xmmword [eax + 0x15fc]
movups xmmword [esi + 0x15ec], xmm0
jmp 0x100d9cea
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x70]
add eax, 0x15c4
push ecx
push eax
lea eax, [esp + 0x70]
push eax
push ecx
push dword [esp + 0x38]
lea edx, [esp + 0x9c]
lea ecx, [esp + 0x94]
call fcn.100af730
mov esi, dword [0x1026a4b8]
add esp, 0x14
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x60], esi
je 0x100d9d4e
mov eax, dword [esi + 0x1cd8]
mov ecx, dword [esi + 0x1ce0]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [esi + eax*8 + 0x15ec], xmm0
dec dword [esi + 0x1cd8]
mov al, byte [esp + 0xd]
test al, al
je 0x100d98ca
test dword [edi + 0x10], 0x4000000
je 0x100d98ca
test byte [esp + 0x10], 1
jne 0x100d98ca
test byte [edi + 0x1bc], 0x20
jne 0x100d98ca
mov ecx, dword [esi + 0x1d2c]
sub ecx, 1
js 0x100d98ca
cmp ecx, dword [esi + 0x1d20]
jge 0x100d98ca
mov eax, dword [esi + 0x1d34]
lea edx, [ecx + ecx*8]
mov edi, dword [esi + 0x1d28]
shl edx, 2
mov eax, dword [edx + eax]
cmp eax, dword [edi + edx]
jne 0x100d9e03
test ecx, ecx
jle 0x100d9deb
lea eax, [edi - 0x20]
add eax, edx
nop dword [eax]
mov esi, dword [eax + 0x24]
mov edx, dword [eax]
test esi, esi
je 0x100d9de7
test dword [esi + 0x10], 0x10000000
je 0x100d9de7
test edx, edx
je 0x100d9ddf
test dword [edx + 0x10], 0x8000000
jne 0x100d9de7
dec ecx
sub eax, 0x24
test ecx, ecx
jg 0x100d9dc0
mov esi, dword [esp + 0x60]
mov dl, 1
call fcn.100bc380
mov eax, dword [esi + 0x1d44]
test eax, eax
je 0x100d9e03
mov byte [eax + 0x14c], 1
mov al, byte [esp + 0xd]
pop edi
pop esi
mov esp, ebp
pop ebp
ret