Function at 0x100508a0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f4ad1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x220
mov eax, dword [0x101110c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1dc], 0
test edi, edi
je 0x100518ac
cmp dword [ebx + 0x14], 0
je 0x100518ac
mov eax, dword [0x101ae9d0]
add eax, 0xffffffcb
xor eax, 0xb391df1
cmp dword [eax + edi], 0
jne 0x100518ac
mov eax, dword [0x101ae90c]
cmp dword [edi + eax], 0
je 0x100518ac
mov ecx, dword [0x101ae76c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x100518ac
mov ecx, dword [0x101ae76c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x100518ac
mov ecx, dword [0x101ae770]
mov eax, dword [0x101aea70]
add eax, 0xffffffa3
push ecx
mov edx, dword [ecx]
xor eax, 0xb391e19
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax + edi]
mov dword [edx], eax
call esi
test eax, eax
je 0x100518ac
xorps xmm0, xmm0
mov dword [ebp - 0x54], 0
movups xmmword [ebp - 0x64], xmm0
push 0x15c
lea eax, [ebp - 0x1c8]
mov dword [ebp - 4], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
mov dword [ebp - 0x80], 0
add esp, 0xc
movq qword [ebp - 0x74], xmm0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov byte [ebp - 4], 1
mov eax, dword [0x101ae90c]
mov esi, dword [edi + eax]
mov ecx, esi
call fcn.1004ffe0
push eax
lea ecx, [ebp - 0x1c8]
call fcn.10050160
movss xmm0, dword [esi + 0xf4]
comiss xmm0, dword [0x101046f4]
jbe 0x10050a0b
push str.moving
lea ecx, [ebp - 0x1c8]
call fcn.10050160
movss xmm0, dword [esi + 0xa4]
comiss xmm0, dword [0x10104730]
jbe 0x10050a2c
push str.crouch
lea ecx, [ebp - 0x1c8]
call fcn.10050160
mov eax, dword [ebp - 0x70]
movups xmm0, xmmword [ebp - 0x80]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x54], eax
mov eax, 1
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1dc], eax
movups xmmword [ebp - 0x64], xmm0
psrldq xmm0, 8
movd eax, xmm0
mov byte [ebp - 4], 2
test eax, eax
js 0x10050a83
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x10050a7c
mov ecx, dword [0x101ae7ec]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov byte [ebp - 4], 0
mov ecx, dword [0x101ae770]
mov eax, dword [0x101aea70]
add eax, 0xffffffa3
push ecx
mov edx, dword [ecx]
xor eax, 0xb391e19
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax + edi]
mov dword [edx], eax
call esi
mov ecx, dword [0x101ae90c]
mov dword [ebp - 0x1d0], eax
mov byte [ebp - 0x1c], 0
mov eax, dword [edi + ecx]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebx + 0x14]
test byte [eax + 0x30], 2
je 0x10050b2a
mov eax, dword [0x101ae9d4]
add eax, 0xffffffca
xor eax, 0xb391df2
test byte [eax + edi], 1
jne 0x10050b2a
mov ecx, dword [0x101ae770]
mov eax, dword [0x101aea74]
add eax, 0xffffffa2
push ecx
mov edx, dword [ecx]
xor eax, 0xb391e1a
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax + edi]
mov dword [edx], eax
call esi
test eax, eax
jne 0x10050b2a
movups xmm0, xmmword [ebp - 0x30]
mov ecx, dword [ebp - 0x1e0]
sub esp, 0x14
mov eax, esp
mov byte [ebp - 0x1c], 1
push 0x3d9
push 4
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051c00
mov eax, dword [0x101ae8f8]
sub esp, 8
mov esi, dword [ebp - 0x1ec]
mov eax, dword [edi + eax]
movss xmm0, dword [esi + 0x6c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1e4]
subss xmm0, dword [eax + 0x6c]
movss dword [esp + 4], xmm0
mov dword [esp], 0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmaxf]
mov ecx, dword [0x101ae8b4]
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [0x101ae910]
fstp dword [ebp - 0x1e8]
mov eax, dword [eax + 0xc0]
mov dword [ebp - 0x1d4], eax
cmp dword [edi + ecx], 0
jne 0x10050ba6
mov eax, dword [0x101ae890]
mov ecx, edi
call eax
mov ecx, dword [0x101ae910]
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [edi + ecx]
mov edx, eax
call dword [ebp - 0x1d8]
movss xmm4, dword [0x10104a20]
cmp eax, 0x3d4
je 0x10050bc7
cmp eax, 0x3d3
jne 0x10050c12
mov eax, dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x1e8]
mulss xmm1, dword [0x10104858]
movss xmm2, dword [eax + 0xc8]
movaps xmm3, xmm2
xorps xmm3, xmm4
comiss xmm3, xmm1
jbe 0x10050bf3
addss xmm1, xmm2
jmp 0x10050c0a
movaps xmm0, xmm1
xorps xmm0, xmm4
comiss xmm0, xmm3
jbe 0x10050c07
subss xmm2, xmm1
movaps xmm1, xmm2
jmp 0x10050c0a
xorps xmm1, xmm1
movss dword [eax + 0xc8], xmm1
movss xmm0, dword [0x1010477c]
xorps xmm2, xmm2
comiss xmm0, dword [esi + 0xec]
jb 0x10050caa
mov eax, dword [ebp - 0x1e4]
cmp byte [eax + 0x108], 0
je 0x10050caa
cmp byte [eax + 0x128], 0
jne 0x10050caa
cmp byte [eax + 0x109], 0
jne 0x10050caa
movss xmm0, dword [eax + 0x74]
comiss xmm0, xmm2
jbe 0x10050caa
movss xmm0, dword [eax + 0x80]
lea ecx, [ebp - 0x18]
subss xmm0, dword [esi + 0x80]
movss dword [ebp - 0x18], xmm0
call fcn.100d47c0
movss xmm0, dword [ebp - 0x18]
divss xmm0, dword [ebp - 0x1e8]
comiss xmm0, dword [0x101048f4]
jbe 0x10050caa
movups xmm0, xmmword [ebp - 0x30]
mov ecx, dword [ebp - 0x1e0]
sub esp, 0x14
mov eax, esp
push 0x3d3
push 3
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051c00
xorps xmm0, xmm0
call fcn.100239d0
movss dword [ebp - 0x1d8], xmm0
xorps xmm0, xmm0
call fcn.10023a00
mov eax, dword [ebp - 0x1e4]
movss dword [ebp - 0x1cc], xmm0
movss xmm0, dword [eax + 0x80]
mulss xmm0, dword [0x101046ac]
movss dword [ebp - 0x1d4], xmm0
call fcn.100239d0
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x1d4]
call fcn.10023a00
movss xmm6, dword [ebp - 0x1cc]
movaps xmm2, xmm0
movss xmm1, dword [ebp - 0x18]
movaps xmm0, xmm6
movss xmm7, dword [ebp - 0x1d8]
movaps xmm5, xmm2
mov edx, dword [ebp - 0x1e4]
movaps xmm3, xmm1
mulss xmm0, xmm6
mov eax, dword [ebx + 0x14]
mulss xmm5, xmm7
mulss xmm1, xmm0
mov eax, dword [eax + 0x30]
mov ecx, eax
movaps xmm4, xmm5
mulss xmm2, xmm0
shr ecx, 0xa
subss xmm4, xmm1
mulss xmm3, xmm7
and ecx, 0xffffff01
movss xmm1, dword [edx + 0xe0]
mov dword [ebp - 0x1d4], ecx
mov ecx, eax
movss dword [ebp - 0x18], xmm3
movss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x1d8], xmm4
movaps xmm4, xmm3
xorps xmm4, xmmword [0x10104a20]
movss xmm3, dword [edx + 0xe8]
subss xmm4, xmm2
movss xmm2, dword [edx + 0xe4]
mulss xmm0, xmm1
shr ecx, 9
mulss xmm5, xmm2
and ecx, 0xffffff01
mulss xmm4, xmm2
addss xmm0, xmm5
movss xmm2, dword [edx + 0xf4]
movss dword [ebp - 0x18], xmm0
movaps xmm0, xmm6
movss xmm5, dword [ebp - 0x18]
mulss xmm0, xmm3
mov dword [ebp - 0x18], ecx
mov ecx, eax
mulss xmm6, xmm7
shr ecx, 3
subss xmm5, xmm0
shr eax, 4
movss xmm0, dword [ebp - 0x1d8]
and ecx, 0xffffff01
mulss xmm0, xmm1
and al, 1
mov dword [ebp - 0x1cc], ecx
movss xmm1, dword [0x1010473c]
comiss xmm2, xmm1
addss xmm0, xmm4
mulss xmm6, xmm3
subss xmm0, xmm6
movss dword [ebp - 0x1d8], xmm0
jb 0x10050e72
test cl, cl
je 0x10050e72
test al, al
jne 0x10050e72
movss xmm0, dword [0x1010497c]
comiss xmm0, xmm5
jbe 0x10050e72
mov cl, 1
xor ch, ch
movss xmm1, dword [0x10104750]
comiss xmm2, xmm1
jb 0x10050e92
cmp byte [ebp - 0x1d4], 0
je 0x10050e92
cmp byte [ebp - 0x18], 0
movss xmm4, dword [ebp - 0x1d8]
jne 0x10050e9a
movss xmm0, dword [0x10104980]
comiss xmm0, xmm4
jbe 0x10050e9a
mov al, 1
xor ah, ah
test cl, cl
jne 0x10050ebb
test ch, ch
jne 0x10050ebb
test al, al
jne 0x10050ebb
test ah, ah
jne 0x10050ebb
jmp 0x10050ebd
xor cl, cl
comiss xmm2, xmm1
jb 0x10050e29
test al, al
je 0x10050e29
cmp byte [ebp - 0x1cc], cl
jne 0x10050e29
comiss xmm5, dword [0x10104730]
jbe 0x10050e29
mov ch, 1
jmp 0x10050e2b
movss xmm4, dword [ebp - 0x1d8]
xor al, al
comiss xmm2, xmm1
jb 0x10050e5e
cmp byte [ebp - 0x18], al
je 0x10050e5e
cmp byte [ebp - 0x1d4], al
jne 0x10050e5e
comiss xmm4, dword [0x10104738]
jbe 0x10050e5e
mov ah, 1
jmp 0x10050e60
mov cl, 1
mov eax, dword [0x101aeb38]
add eax, 0xffffff71
xor eax, 0xb391e4b
mov byte [eax + edi], cl
mov ah, byte [esi + 0x108]
cmp byte [edx + 0x108], ah
jne 0x10050eef
mov al, byte [edx + 0x128]
cmp al, byte [esi + 0x128]
jne 0x10050eef
xor cl, cl
jmp 0x10050ef1
mov cl, 1
test ah, ah
je 0x10050fd8
cmp byte [edx + 0x109], 0
mov eax, dword [0x101ae8f8]
mov eax, dword [edi + eax]
mov dword [ebp - 0x1d4], eax
jne 0x10050f51
test cl, cl
je 0x10050f51
movups xmm0, xmmword [ebp - 0x30]
mov ecx, dword [ebp - 0x1e0]
sub esp, 0x14
mov eax, esp
movups xmmword [eax], xmm0
mov dword [eax + 0x10], ecx
xor eax, eax
movss xmm0, dword [edx + 0x110]
comiss xmm0, dword [0x1010477c]
seta al
add eax, 0x3dc
push eax
push 5
push edi
call fcn.10051c00
mov eax, dword [ebp - 0x1d4]
cmp byte [esi + 0x109], 0
je 0x10050faa
mov ecx, dword [0x101ae8b4]
mov eax, dword [eax + 0x130]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x101ae910]
mov dword [ebp - 0x1cc], eax
cmp dword [edi + ecx], 0
jne 0x10050f90
mov eax, dword [0x101ae890]
mov ecx, edi
call eax
mov ecx, dword [0x101ae910]
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [edi + ecx]
mov edx, eax
call dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
xor edx, edx
cmp eax, 0x3db
movzx ecx, cl
cmovne ecx, edx
jmp 0x10050fad
mov ecx, dword [ebp - 0x1c]
cmp byte [esi + 0x109], 0
jne 0x10051004
test cl, cl
jne 0x10051004
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x130]
jb 0x10051004
mov eax, dword [ebp - 0x1d4]
mov dword [eax + 0x138], 0
jmp 0x10051004
test cl, cl
je 0x10051004
cmp byte [ebp - 0x1c], 0
jne 0x10051004
movups xmm0, xmmword [ebp - 0x30]
mov ecx, dword [ebp - 0x1e0]
sub esp, 0x14
mov eax, esp
push 0x3da
push 4
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051c00
mov eax, dword [0x101ae8f8]
mov ecx, dword [0x101ae8b4]
mov dword [ebp - 0x1d4], ecx
mov ecx, dword [0x101ae910]
mov eax, dword [edi + eax]
mov dword [ebp - 0x1c], eax
cmp dword [edi + ecx], 0
mov eax, dword [eax + 0x280]
mov dword [ebp - 0x1cc], eax
jne 0x10051048
mov eax, dword [0x101ae890]
mov ecx, edi
call eax
mov ecx, dword [0x101ae910]
mov eax, dword [ebp - 0x1cc]
mov ecx, dword [edi + ecx]
mov edx, eax
call dword [ebp - 0x1d4]
cmp eax, 0x3d5
jne 0x1005114a
mov eax, dword [esi + 0x64]
test eax, eax
je 0x100510b7
cmp eax, dword [esi + 0x68]
je 0x100510b7
mov eax, dword [ebp - 0x1c]
sub esp, 0x14
mov ecx, dword [ebp - 0x1e0]
movss xmm0, dword [eax + 0x294]
mov eax, esp
movss dword [ebp - 0x1cc], xmm0
movups xmm0, xmmword [ebp - 0x30]
push 0x3d5
push 0xb
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051c00
mov eax, dword [ebp - 0x1c]
movss xmm0, dword [ebp - 0x1cc]
movss dword [eax + 0x294], xmm0
jmp 0x1005114a
mov eax, dword [ebp - 0x1c]
movss xmm0, dword [ebp - 0x1e8]
movss xmm1, dword [0x1010477c]
mulss xmm0, dword [eax + 0x290]
addss xmm0, dword [eax + 0x294]
comiss xmm1, xmm0
jbe 0x1005114a
movss xmm0, dword [esi + 0xf8]
lea ecx, [ebp - 0x1d4]
subss xmm0, dword [0x10104730]
xorps xmm2, xmm2
mov dword [ebp - 0x18], 0x3f800000
lea edx, [ebp - 0x1cc]
mov dword [ebp - 0x1cc], 0
mulss xmm0, dword [0x10104838]
comiss xmm2, xmm0
movss dword [ebp - 0x1d4], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x18]
comiss xmm0, xmm1
movaps xmm0, xmm1
seta al
test al, al
mov eax, dword [ebp - 0x1c]
cmove ecx, edx
subss xmm0, dword [ecx]
movss dword [eax + 0x288], xmm0
mov ecx, dword [ebp - 0x1d0]
test ecx, ecx
je 0x1005117c
mov eax, dword [0x101aeaf8]
add eax, 0xffffff81
xor eax, 0xb391e3b
mov eax, dword [eax + ecx]
mov ecx, dword [0x101ae770]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov esi, dword [ebp - 0x1ec]
mov eax, dword [0x101ae8f8]
xorps xmm4, xmm4
xorps xmm1, xmm1
movss dword [ebp - 0x1d8], xmm1
movss dword [ebp - 0x1c], xmm1
mov eax, dword [edi + eax]
mov dword [ebp - 0x1e0], eax
movss xmm0, dword [eax + 0x58]
lea ecx, [eax + 0x70]
comiss xmm0, xmm4
mov dword [ebp - 0x18], ecx
jbe 0x10051744
cmp dword [ecx + 0x18], 0
ja 0x10051405
push 0x10
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
push str.recrouch_generic
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x38], xmm0
call fcn.1002cd90
mov byte [ebp - 4], 3
lea esi, [ebp - 0x38]
cmp dword [ebp - 0x24], 0xf
mov eax, dword [0x101b169c]
cmova esi, dword [ebp - 0x38]
test al, 1
jne 0x1005138d
or eax, 1
mov dword [0x101b169c], eax
mov byte [ebp - 4], 4
xor eax, eax
movaps xmm0, xmmword [0x10104fa0]
movaps xmm2, xmmword [0x10105130]
movups xmmword [ebp - 0x230], xmm0
mov dword [ebp - 0x210], 0xeb8deceb
movaps xmm0, xmmword [0x10104bb0]
movups xmmword [ebp - 0x220], xmm0
mov dword [ebp - 0x20c], 0x989a8deb
mov dword [ebp - 0x208], 0xad9c9c8d
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x230]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x230], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x10051250
cmp eax, 0x2c
jae 0x10051281
xor byte [ebp + eax - 0x230], 0xad
inc eax
cmp eax, 0x2c
jb 0x10051273
xorps xmm0, xmm0
mov dword [ebp - 0x1f4], 0
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x1f0], 0
movups xmmword [ebp - 0x204], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100512a8
sub ecx, edx
lea eax, [ebp - 0x230]
push ecx
push eax
lea ecx, [ebp - 0x204]
call fcn.1002cd90
mov byte [ebp - 4], 5
mov eax, dword [0x101ae724]
test eax, eax
je 0x100512d6
mov edx, dword [eax + 0x50]
jmp 0x100512d8
xor edx, edx
mov ecx, dword [0x101ae71c]
test ecx, ecx
je 0x100512ec
mov ecx, dword [ecx + 0x18]
mov eax, 9
jmp 0x100512f3
mov eax, 0x11
xor ecx, ecx
mov dword [ebp - 0x1dc], eax
test al, 0x10
je 0x10051306
and eax, 0xffffffef
mov dword [ebp - 0x1dc], eax
test al, 8
je 0x10051313
and eax, 0xfffffff7
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0x204]
push eax
push ecx
lea ecx, [ebp - 0x1d0]
call fcn.10037600
mov eax, dword [ebp - 0x1d0]
add esp, 8
test eax, eax
je 0x10051343
mov ecx, dword [eax + 1]
test ecx, ecx
jne 0x1005133e
xor eax, eax
jmp 0x10051343
add eax, 5
add eax, ecx
xor ecx, ecx
mov byte [ebp - 4], 4
test eax, eax
cmove eax, ecx
mov ecx, dword [ebp - 0x1f0]
mov dword [0x101b16a0], eax
cmp ecx, 0xf
jbe 0x10051389
mov edx, dword [ebp - 0x204]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005137f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100513f5
push ecx
push edx
call fcn.100f079b
add esp, 8
mov byte [ebp - 4], 3
mov eax, dword [0x101b16a0]
mov ecx, edi
push esi
call eax
mov ecx, dword [edi]
mov esi, eax
mov eax, dword [ebp - 0x18]
push esi
push eax
mov ecx, dword [ecx + 0x364]
mov dword [ebp - 0x1d0], ecx
mov ecx, edi
call dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0x18], esi
mov dword [eax + 0x20], 0
mov dword [eax + 0x2c], 0
fstp dword [eax + 0x28]
cmp ecx, 0xf
jbe 0x10051405
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100513fb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100513fb
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100f079b
add esp, 8
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
push str.crouch
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
call fcn.1002cd90
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x1e0]
mov esi, dword [eax + 0x50]
mov eax, dword [0x101ae910]
cmp dword [edi + eax], 0
jne 0x1005144f
mov eax, dword [0x101ae890]
mov ecx, edi
call eax
mov eax, dword [0x101ae910]
mov edi, dword [edi + eax]
cmp dword [edi + 4], 0
jne 0x10051477
mov ecx, dword [edi]
test esi, esi
js 0x10051466
cmp esi, dword [ecx + 0xbc]
jl 0x10051468
xor esi, esi
mov eax, dword [ecx + 0xc0]
add eax, ecx
add eax, esi
jmp 0x1005157d
mov eax, dword [0x101b1748]
test al, 1
jne 0x10051574
or eax, 1
mov dword [0x101b1748], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x204]
push 0x60
xorps xmm0, xmm0
mov dword [ebp - 0x1f4], 0
push str.55_8B_EC_83_79_04_00_75_25_8B_45_08_8B_09_85_C0_78_08_3B_81_________7C_02_33_C0_69_C0_________03
movups xmmword [ebp - 0x204], xmm0
mov dword [ebp - 0x1f0], 0
call fcn.1002cd90
mov byte [ebp - 4], 8
mov eax, dword [0x101ae724]
test eax, eax
je 0x100514d2
mov edx, dword [eax + 0x50]
jmp 0x100514d4
xor edx, edx
mov ecx, dword [0x101ae71c]
mov eax, dword [ebp - 0x1dc]
test ecx, ecx
je 0x100514ec
mov ecx, dword [ecx + 0x18]
or eax, 2
jmp 0x100514f1
or eax, 4
xor ecx, ecx
mov dword [ebp - 0x1dc], eax
test al, 4
je 0x10051504
and eax, 0xfffffffb
mov dword [ebp - 0x1dc], eax
test al, 2
je 0x10051511
and eax, 0xfffffffd
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0x204]
push eax
push ecx
lea ecx, [ebp - 0x1d0]
call fcn.10037600
mov eax, dword [ebp - 0x1d0]
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1f0]
mov dword [0x101b173c], eax
cmp ecx, 0xf
jbe 0x10051570
mov edx, dword [ebp - 0x204]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10051566
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10051659
push ecx
push edx
call fcn.100f079b
add esp, 8
mov byte [ebp - 4], 6
push esi
mov ecx, edi
call dword [0x101b173c]
mov ecx, dword [eax + 0xbc]
xor esi, esi
mov dword [ebp - 0x1d0], ecx
test ecx, ecx
mov ecx, dword [ebp - 0x50]
jle 0x100515fe
mov edx, dword [eax + 0xb8]
mov dword [ebp - 0x1cc], edx
lea edi, [eax + edx]
cmp dword [ebp - 0x3c], 0xf
lea eax, [ebp - 0x50]
cmova eax, ecx
xor ecx, ecx
test edx, edx
cmovne ecx, edi
mov edx, dword [ecx]
test edx, edx
je 0x100515bc
add ecx, edx
jmp 0x100515c0
xor ecx, ecx
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x100515e0
test dl, dl
je 0x100515dc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x100515e0
add ecx, 2
add eax, 2
test dl, dl
jne 0x100515c0
xor eax, eax
jmp 0x100515e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x1005165f
mov ecx, dword [ebp - 0x50]
inc esi
mov edx, dword [ebp - 0x1cc]
add edi, 4
cmp esi, dword [ebp - 0x1d0]
jl 0x100515a1
mov esi, dword [ebp - 0x1ec]
movss xmm0, dword [esi + 0xa4]
comiss xmm0, dword [0x10104660]
jbe 0x1005162d
mov eax, dword [ebp - 0x1e0]
mulss xmm0, dword [eax + 0x58]
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x1d8], xmm0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x3c]
cmp eax, 0xf
jbe 0x1005168a
mov ecx, dword [ebp - 0x50]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x10051680
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10051680
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov esi, dword [ebp - 0x1ec]
movss xmm0, dword [0x1010477c]
movss xmm1, dword [esi + 0xa4]
comiss xmm0, xmm1
jbe 0x1005162d
subss xmm0, xmm1
jmp 0x10051615
push edx
push ecx
call fcn.100f079b
add esp, 8
mov edi, dword [ebp - 0x18]
xorps xmm4, xmm4
movss xmm1, dword [ebp - 0x1d8]
add edi, 0x20
movss xmm6, dword [ebp - 0x1e8]
movss xmm3, dword [0x1010477c]
lea ecx, [ebp - 0x1c]
comiss xmm4, xmm1
lea edx, [ebp - 0x1d0]
mov dword [ebp - 0x1cc], 0x3f800000
mov dword [ebp - 0x1d0], 0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x1cc]
comiss xmm1, xmm3
seta al
test al, al
cmove ecx, edx
mov eax, dword [ecx]
mov dword [edi], eax
mov eax, dword [ebp - 0x1e4]
mov edi, dword [ebp - 0x1e0]
cmp dword [eax + 0x60], 0
je 0x100517c0
movss xmm1, dword [edi + 0x60]
movaps xmm0, xmm1
call fcn.100239e0
comiss xmm4, xmm0
jae 0x100517c0
mulss xmm1, xmm6
addss xmm1, dword [edi + 0x64]
comiss xmm1, xmm3
jb 0x1005172a
movss xmm1, dword [0x10104774]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
comiss xmm4, xmm1
jbe 0x100517b2
addss xmm1, xmm3
jmp 0x100517bb
movss xmm2, dword [ecx + 0x20]
lea edi, [ecx + 0x20]
comiss xmm2, xmm4
jbe 0x1005169b
movss xmm6, dword [ebp - 0x1e8]
movaps xmm3, xmm2
movss xmm5, dword [0x10104a20]
movaps xmm1, xmm6
mulss xmm1, dword [0x10104854]
xorps xmm3, xmm5
comiss xmm3, xmm1
jbe 0x10051789
addss xmm1, xmm2
movss dword [ebp - 0x1c], xmm1
jmp 0x100516a3
movaps xmm0, xmm1
xorps xmm0, xmm5
comiss xmm0, xmm3
jbe 0x100517a5
subss xmm2, xmm1
movaps xmm1, xmm2
movss dword [ebp - 0x1c], xmm1
jmp 0x100516a3
xorps xmm1, xmm1
movss dword [ebp - 0x1c], xmm1
jmp 0x100516a3
comiss xmm1, xmm3
jbe 0x100517bb
subss xmm1, xmm3
movss dword [edi + 0x64], xmm1
movss xmm0, dword [edi + 0x60]
lea ecx, [ebp - 0x1cc]
mulss xmm0, dword [esi + 0x74]
lea edx, [ebp - 0x1d0]
mov dword [ebp - 0x1d4], 0x3f800000
movss xmm1, dword [edi + 0x64]
movss xmm2, dword [edi + 0x58]
subss xmm1, xmm0
mov dword [ebp - 0x1d0], 0
movss xmm0, dword [edi + 0x5c]
comiss xmm4, xmm1
movss dword [ebp - 0x1cc], xmm1
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x1d4]
comiss xmm1, xmm3
movss xmm1, dword [0x10104670]
seta al
test al, al
cmove ecx, edx
lea edx, [ebp - 0x1d0]
mov eax, dword [ecx]
lea ecx, [ebp - 0x1cc]
mov dword [edi + 0x64], eax
mulss xmm0, dword [esi + 0x74]
mov dword [ebp - 0x1d4], 0x3f800000
mov dword [ebp - 0x1d0], 0x33d6bf95
subss xmm2, xmm0
comiss xmm1, xmm2
movss dword [ebp - 0x1cc], xmm2
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x1d4]
comiss xmm2, xmm3
seta al
test al, al
cmove ecx, edx
mov eax, dword [ecx]
mov dword [edi + 0x58], eax
mov dword [0x10147794], 0
mov dword [ebp - 4], 9
cmp dword [ebp - 0x5c], 0
jl 0x100518ac
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x100518ac
mov ecx, dword [0x101ae7ec]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100f0320
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10