Function at 0x100500b0
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 0x100fe081
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x208
mov eax, dword [0x101190b8]
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 - 0x1cc], eax
mov dword [ebp - 0x1b8], 0
test edi, edi
je 0x10051037
cmp dword [ebx + 0x14], 0
je 0x10051037
mov eax, dword [0x101b8ca0]
add eax, 0xffffffcd
xor eax, 0xe8745383
cmp dword [eax + edi], 0
jne 0x10051037
mov eax, dword [0x101b8bf8]
cmp dword [edi + eax], 0
je 0x10051037
mov ecx, dword [0x101b8a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10051037
mov ecx, dword [0x101b8a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x10051037
mov ecx, dword [0x101b8a48]
mov eax, dword [0x101b8d40]
add eax, 0xffffffa5
push ecx
mov edx, dword [ecx]
xor eax, 0xe87453ab
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax + edi]
mov dword [edx], eax
call esi
test eax, eax
je 0x10051037
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
movups xmmword [ebp - 0x44], xmm0
push 0x15c
lea eax, [ebp - 0x1a8]
mov dword [ebp - 4], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov byte [ebp - 4], 1
mov eax, dword [0x101b8bf8]
mov esi, dword [edi + eax]
mov ecx, esi
call fcn.1004f460
push eax
lea ecx, [ebp - 0x1a8]
call fcn.1004f5e0
movss xmm0, dword [esi + 0xf4]
comiss xmm0, dword [0x1010d620]
jbe 0x10050213
push str.moving
lea ecx, [ebp - 0x1a8]
call fcn.1004f5e0
movss xmm0, dword [esi + 0xa4]
comiss xmm0, dword [0x1010d658]
jbe 0x10050234
push str.crouch
lea ecx, [ebp - 0x1a8]
call fcn.1004f5e0
mov eax, dword [ebp - 0x50]
movups xmm0, xmmword [ebp - 0x60]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x34], eax
mov eax, 1
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x1b8], eax
movups xmmword [ebp - 0x44], xmm0
psrldq xmm0, 8
movd eax, xmm0
mov byte [ebp - 4], 2
test eax, eax
js 0x1005028b
mov edx, dword [ebp - 0x60]
test edx, edx
je 0x10050284
mov ecx, dword [0x101b8ac4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov byte [ebp - 4], 0
mov ecx, dword [0x101b8a48]
mov eax, dword [0x101b8d40]
add eax, 0xffffffa5
push ecx
mov edx, dword [ecx]
xor eax, 0xe87453ab
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax + edi]
mov dword [edx], eax
call esi
mov ecx, dword [0x101b8bf8]
mov dword [ebp - 0x1b4], eax
mov byte [ebp - 0x1d0], 0
mov eax, dword [edi + ecx]
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebx + 0x14]
test byte [eax + 0x30], 2
je 0x1005033a
mov ecx, dword [0x101b8ca4]
add ecx, 0xffffffcc
xor ecx, 0xe8745384
test byte [ecx + edi], 1
jne 0x1005033a
mov ecx, dword [0x101b8a48]
mov eax, dword [0x101b8d44]
add eax, 0xffffffa4
push ecx
mov edx, dword [ecx]
xor eax, 0xe87453ac
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax + edi]
mov dword [edx], eax
call esi
test eax, eax
jne 0x1005033a
movups xmm0, xmmword [ebp - 0x28]
mov ecx, dword [ebp - 0x1bc]
sub esp, 0x14
mov eax, esp
mov byte [ebp - 0x1d0], 1
push 0x3d9
push 4
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051390
mov eax, dword [0x101b8be4]
sub esp, 8
mov esi, dword [ebp - 0x1cc]
mov eax, dword [edi + eax]
movss xmm0, dword [esi + 0x6c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c4]
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 [0x101b8ba0]
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1ac], ecx
mov ecx, dword [0x101b8bfc]
fstp dword [ebp - 0x1c8]
mov eax, dword [eax + 0xc0]
mov dword [ebp - 0x1c0], eax
cmp dword [edi + ecx], 0
jne 0x100503b6
mov eax, dword [0x101b8b7c]
mov ecx, edi
call eax
mov ecx, dword [0x101b8bfc]
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [edi + ecx]
mov edx, eax
call dword [ebp - 0x1ac]
movss xmm4, dword [0x1010eac0]
cmp eax, 0x3d4
je 0x100503d7
cmp eax, 0x3d3
jne 0x10050422
mov eax, dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x1c8]
mulss xmm1, dword [0x1010d7b4]
movss xmm2, dword [eax + 0xc8]
movaps xmm3, xmm2
xorps xmm3, xmm4
comiss xmm3, xmm1
jbe 0x10050403
addss xmm1, xmm2
jmp 0x1005041a
movaps xmm0, xmm1
xorps xmm0, xmm4
comiss xmm0, xmm3
jbe 0x10050417
subss xmm2, xmm1
movaps xmm1, xmm2
jmp 0x1005041a
xorps xmm1, xmm1
movss dword [eax + 0xc8], xmm1
movss xmm0, dword [0x1010d6b0]
comiss xmm0, dword [esi + 0xec]
jb 0x100504bb
mov eax, dword [ebp - 0x1c4]
cmp byte [eax + 0x108], 0
je 0x100504bb
cmp byte [eax + 0x128], 0
jne 0x100504bb
cmp byte [eax + 0x109], 0
jne 0x100504bb
movss xmm0, dword [eax + 0x74]
comiss xmm0, dword [0x1010d570]
jbe 0x100504bb
movss xmm0, dword [eax + 0x80]
lea ecx, [ebp - 0x18]
subss xmm0, dword [esi + 0x80]
movss dword [ebp - 0x18], xmm0
call fcn.100de7d0
movss xmm0, dword [ebp - 0x18]
divss xmm0, dword [ebp - 0x1c8]
comiss xmm0, dword [0x1010d860]
jbe 0x100504bb
movups xmm0, xmmword [ebp - 0x28]
mov ecx, dword [ebp - 0x1bc]
sub esp, 0x14
mov eax, esp
push 0x3d3
push 3
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051390
xorps xmm0, xmm0
call fcn.10021040
movss dword [ebp - 0x1ac], xmm0
xorps xmm0, xmm0
call fcn.10021070
mov eax, dword [ebp - 0x1c4]
movss dword [ebp - 0x1b0], xmm0
movss xmm0, dword [eax + 0x80]
mulss xmm0, dword [0x1010d5cc]
movss dword [ebp - 0x1c0], xmm0
call fcn.10021040
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x1c0]
call fcn.10021070
movss xmm2, dword [ebp - 0x18]
movaps xmm3, xmm0
movss xmm7, dword [ebp - 0x1ac]
movaps xmm5, xmm2
movss xmm6, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1c4]
movaps xmm1, xmm6
mulss xmm5, xmm7
mov eax, dword [ebx + 0x14]
mulss xmm1, xmm6
movss dword [ebp - 0x18], xmm5
movaps xmm5, xmm3
mulss xmm5, xmm7
mov eax, dword [eax + 0x30]
mov ecx, eax
movaps xmm0, xmm1
shr ecx, 0xa
mulss xmm0, xmm2
and ecx, 0xffffff01
mov dword [ebp - 0x1c0], ecx
mov ecx, eax
movss xmm2, dword [edx + 0xe4]
movaps xmm4, xmm5
mulss xmm1, xmm3
shr ecx, 9
subss xmm4, xmm0
movss xmm3, dword [edx + 0xe8]
movss xmm0, dword [ebp - 0x18]
and ecx, 0xffffff01
mulss xmm5, xmm2
movss dword [ebp - 0x1ac], xmm4
movaps xmm4, xmm0
xorps xmm4, xmmword [0x1010eac0]
subss xmm4, xmm1
movss xmm1, dword [edx + 0xe0]
mulss xmm0, xmm1
addss xmm0, xmm5
mulss xmm4, xmm2
movss xmm2, dword [edx + 0xf4]
movss dword [ebp - 0x18], xmm0
movaps xmm0, xmm3
movss xmm5, dword [ebp - 0x18]
mulss xmm0, xmm6
mov dword [ebp - 0x18], ecx
mov ecx, eax
mulss xmm6, xmm7
shr ecx, 3
subss xmm5, xmm0
shr eax, 4
movss xmm0, dword [ebp - 0x1ac]
and ecx, 0xffffff01
mulss xmm0, xmm1
and al, 1
mov dword [ebp - 0x1b0], ecx
movss xmm1, dword [0x1010d664]
comiss xmm2, xmm1
addss xmm0, xmm4
mulss xmm6, xmm3
subss xmm0, xmm6
movss dword [ebp - 0x1ac], xmm0
jb 0x10050686
test cl, cl
je 0x10050686
test al, al
jne 0x10050686
movss xmm0, dword [0x1010d910]
comiss xmm0, xmm5
jbe 0x10050686
mov cl, 1
xor ch, ch
movss xmm1, dword [0x1010d674]
comiss xmm2, xmm1
jb 0x100506a6
cmp byte [ebp - 0x1c0], 0
je 0x100506a6
cmp byte [ebp - 0x18], 0
movss xmm4, dword [ebp - 0x1ac]
jne 0x100506ae
movss xmm0, dword [0x1010d914]
comiss xmm0, xmm4
jbe 0x100506ae
mov al, 1
xor ah, ah
test cl, cl
jne 0x100506cf
test ch, ch
jne 0x100506cf
test al, al
jne 0x100506cf
test ah, ah
jne 0x100506cf
jmp 0x100506d1
xor cl, cl
comiss xmm2, xmm1
jb 0x1005063d
test al, al
je 0x1005063d
cmp byte [ebp - 0x1b0], cl
jne 0x1005063d
comiss xmm5, dword [0x1010d658]
jbe 0x1005063d
mov ch, 1
jmp 0x1005063f
movss xmm4, dword [ebp - 0x1ac]
xor al, al
comiss xmm2, xmm1
jb 0x10050672
cmp byte [ebp - 0x18], al
je 0x10050672
cmp byte [ebp - 0x1c0], al
jne 0x10050672
comiss xmm4, dword [0x1010d660]
jbe 0x10050672
mov ah, 1
jmp 0x10050674
mov cl, 1
mov eax, dword [0x101b8e0c]
add eax, 0xffffff72
xor eax, 0xe87453de
mov byte [eax + edi], cl
mov ah, byte [esi + 0x108]
cmp byte [edx + 0x108], ah
jne 0x10050703
mov al, byte [edx + 0x128]
cmp al, byte [esi + 0x128]
jne 0x10050703
xor cl, cl
jmp 0x10050705
mov cl, 1
test ah, ah
je 0x100507f2
cmp byte [edx + 0x109], 0
mov eax, dword [0x101b8be4]
mov eax, dword [edi + eax]
mov dword [ebp - 0x1c0], eax
jne 0x10050765
test cl, cl
je 0x10050765
movups xmm0, xmmword [ebp - 0x28]
mov ecx, dword [ebp - 0x1bc]
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 [0x1010d6b0]
seta al
add eax, 0x3dc
push eax
push 5
push edi
call fcn.10051390
mov eax, dword [ebp - 0x1c0]
cmp byte [esi + 0x109], 0
je 0x100507c1
mov ecx, dword [0x101b8ba0]
mov eax, dword [eax + 0x130]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x101b8bfc]
mov dword [ebp - 0x1b0], eax
cmp dword [edi + ecx], 0
jne 0x100507a4
mov eax, dword [0x101b8b7c]
mov ecx, edi
call eax
mov ecx, dword [0x101b8bfc]
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [edi + ecx]
mov edx, eax
call dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1d0]
xor edx, edx
cmp eax, 0x3db
movzx ecx, cl
cmovne ecx, edx
jmp 0x100507c7
mov ecx, dword [ebp - 0x1d0]
cmp byte [esi + 0x109], 0
jne 0x10050821
test cl, cl
jne 0x10050821
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x130]
jb 0x10050821
mov eax, dword [ebp - 0x1c0]
mov dword [eax + 0x138], 0
jmp 0x10050821
test cl, cl
je 0x10050821
cmp byte [ebp - 0x1d0], 0
jne 0x10050821
movups xmm0, xmmword [ebp - 0x28]
mov ecx, dword [ebp - 0x1bc]
sub esp, 0x14
mov eax, esp
push 0x3da
push 4
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051390
mov eax, dword [0x101b8be4]
mov ecx, dword [0x101b8ba0]
mov dword [ebp - 0x1c0], ecx
mov ecx, dword [0x101b8bfc]
mov eax, dword [edi + eax]
mov dword [ebp - 0x18], eax
cmp dword [edi + ecx], 0
mov eax, dword [eax + 0x280]
mov dword [ebp - 0x1b0], eax
jne 0x10050865
mov eax, dword [0x101b8b7c]
mov ecx, edi
call eax
mov ecx, dword [0x101b8bfc]
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [edi + ecx]
mov edx, eax
call dword [ebp - 0x1c0]
cmp eax, 0x3d5
jne 0x1005093f
mov eax, dword [esi + 0x64]
test eax, eax
je 0x100508d1
cmp eax, dword [esi + 0x68]
je 0x100508d1
mov eax, dword [ebp - 0x18]
sub esp, 0x14
mov ecx, dword [ebp - 0x1bc]
movss xmm0, dword [eax + 0x294]
mov eax, esp
movss dword [ebp - 0x1b0], xmm0
movups xmm0, xmmword [ebp - 0x28]
push 0x3d5
push 0xb
movups xmmword [eax], xmm0
push edi
mov dword [eax + 0x10], ecx
call fcn.10051390
mov eax, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x1b0]
movss dword [eax + 0x294], xmm0
jmp 0x1005093f
mov ecx, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x1c8]
movss xmm1, dword [0x1010d6b0]
mulss xmm0, dword [ecx + 0x290]
addss xmm0, dword [ecx + 0x294]
comiss xmm1, xmm0
jbe 0x1005093f
movss xmm2, dword [esi + 0xf8]
subss xmm2, dword [0x1010d658]
mulss xmm2, dword [0x1010d788]
comiss xmm2, xmm1
seta al
test al, al
je 0x10050920
movaps xmm2, xmm1
jmp 0x10050930
xorps xmm0, xmm0
comiss xmm0, xmm2
seta al
test al, al
je 0x10050930
xorps xmm2, xmm2
movaps xmm0, xmm1
subss xmm0, xmm2
movss dword [ecx + 0x288], xmm0
mov ecx, dword [ebp - 0x1b4]
test ecx, ecx
je 0x10050971
mov eax, dword [0x101b8dc8]
add eax, 0xffffff83
xor eax, 0xe87453cd
mov eax, dword [eax + ecx]
mov ecx, dword [0x101b8a48]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov esi, dword [ebp - 0x1cc]
mov eax, dword [0x101b8be4]
xorps xmm3, xmm3
xorps xmm1, xmm1
movss dword [ebp - 0x1bc], xmm1
mov ecx, dword [edi + eax]
mov dword [ebp - 0x1ac], ecx
movss xmm0, dword [ecx + 0x58]
lea edx, [ecx + 0x70]
comiss xmm0, xmm3
mov dword [ebp - 0x18], edx
jbe 0x10050ec1
cmp dword [edx + 0x18], 0
ja 0x10050bf5
push 0x10
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x30]
push str.recrouch_generic
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
call fcn.10029c40
mov byte [ebp - 4], 3
lea esi, [ebp - 0x30]
cmp dword [ebp - 0x1c], 0x10
mov eax, dword [0x101b9b74]
cmovae esi, dword [ebp - 0x30]
test al, 1
jne 0x10050b7e
or eax, 1
mov dword [0x101b9b74], eax
mov byte [ebp - 4], 4
xor eax, eax
movaps xmm0, xmmword [0x1010e010]
movaps xmm2, xmmword [str._a_a_a_a_a_a_a_a_a_a_a_a_a_a_a_ani_pnsoflns_r_aehjeunjbu_4C._aehjesnjbu_5C._awkfbuX_nqbiXd3_ahaatdubbiXjhcb6_a_8888_2D__a88_E3D536D_a537A_E21AD_atsfssuflXcbf_kb_afrshwbblXdnudkb_aehcwhnistdfkb_aifjbahistskb_aXlinabXwrto_jck_aXlinabXaknw_jck_awunhunssfu_bs_aeftbXfpXhaatbs_aehjeXeb_niwkfis_aehjeXfehuswkfis_acufpjrksnwhnis_achujfisbibjnbt_acuhwwbcpbfwhit_aqbusn_hekrbXocu_aeh]
movups xmmword [ebp - 0x214], xmm0
mov dword [ebp - 0x1f4], 0x41274641
movaps xmm0, xmmword [0x1010dbf0]
movups xmmword [ebp - 0x204], xmm0
mov dword [ebp - 0x1f0], 0x32302741
mov dword [ebp - 0x1ec], 0x7363627
nop
movups xmm0, xmmword [ebp + eax - 0x214]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0x214], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x10050a40
cmp eax, 0x2c
jae 0x10050a72
xor byte [ebp + eax - 0x214], 7
inc eax
cmp eax, 0x2c
jb 0x10050a64
lea ecx, [ebp - 0x214]
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1d8], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x1d4], 0xf
mov byte [ebp - 0x1e8], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10050aa0
sub ecx, edx
lea eax, [ebp - 0x214]
push ecx
push eax
lea ecx, [ebp - 0x1e8]
call fcn.10029c40
mov byte [ebp - 4], 5
mov eax, dword [0x101b89fc]
test eax, eax
je 0x10050ace
mov edx, dword [eax + 0x50]
jmp 0x10050ad0
xor edx, edx
mov ecx, dword [0x101b89f4]
test ecx, ecx
je 0x10050ae4
mov ecx, dword [ecx + 0x18]
mov eax, 3
jmp 0x10050aeb
mov eax, 5
xor ecx, ecx
mov dword [ebp - 0x1b8], eax
test al, 4
je 0x10050afe
and eax, 0xfffffffb
mov dword [ebp - 0x1b8], eax
test al, 2
je 0x10050b0b
and eax, 0xfffffffd
mov dword [ebp - 0x1b8], eax
lea eax, [ebp - 0x1e8]
push eax
push ecx
lea ecx, [ebp - 0x1b4]
call fcn.1004eed0
mov eax, dword [ebp - 0x1b4]
add esp, 8
test eax, eax
je 0x10050b39
mov ecx, dword [eax + 1]
test ecx, ecx
je 0x10050b39
add eax, 5
add eax, ecx
jne 0x10050b3b
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x1d4]
mov dword [0x101b9b78], eax
cmp edx, 0x10
jb 0x10050b7a
mov ecx, dword [ebp - 0x1e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050b70
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10050be5
push edx
push ecx
call fcn.100f9140
add esp, 8
mov byte [ebp - 4], 3
mov eax, dword [0x101b9b78]
mov ecx, edi
push esi
call eax
mov ecx, dword [edi]
mov esi, eax
push esi
push dword [ebp - 0x18]
mov ecx, dword [ecx + 0x364]
mov dword [ebp - 0x1b4], ecx
mov ecx, edi
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x1c]
mov dword [eax + 0x18], esi
mov dword [eax + 0x20], 0
mov dword [eax + 0x2c], 0
fstp dword [eax + 0x28]
cmp edx, 0x10
jb 0x10050bf5
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10050beb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10050beb
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100f9140
add esp, 8
push 6
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x30]
push str.crouch
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
call fcn.10029c40
mov eax, dword [ebp - 0x1ac]
mov byte [ebp - 4], 6
mov esi, dword [eax + 0x50]
mov eax, dword [0x101b8bfc]
cmp dword [edi + eax], 0
jne 0x10050c43
mov eax, dword [0x101b8b7c]
mov ecx, edi
call eax
mov eax, dword [0x101b8bfc]
mov edi, dword [edi + eax]
cmp dword [edi + 4], 0
jne 0x10050c6b
mov ecx, dword [edi]
test esi, esi
js 0x10050c5a
cmp esi, dword [ecx + 0xbc]
jl 0x10050c5c
xor esi, esi
mov eax, dword [ecx + 0xc0]
add eax, esi
add eax, ecx
jmp 0x10050d78
mov eax, dword [0x101ba234]
test al, 1
jne 0x10050d6f
or eax, 1
mov dword [0x101ba234], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1e8]
push 0x60
mov dword [ebp - 0x1e8], 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
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0xf
mov byte [ebp - 0x1e8], 0
call fcn.10029c40
mov byte [ebp - 4], 8
mov eax, dword [0x101b89fc]
test eax, eax
je 0x10050ccd
mov edx, dword [eax + 0x50]
jmp 0x10050ccf
xor edx, edx
mov ecx, dword [0x101b89f4]
mov eax, dword [ebp - 0x1b8]
test ecx, ecx
je 0x10050ce7
mov ecx, dword [ecx + 0x18]
or eax, 8
jmp 0x10050cec
or eax, 0x10
xor ecx, ecx
mov dword [ebp - 0x1b8], eax
test al, 0x10
je 0x10050cff
and eax, 0xffffffef
mov dword [ebp - 0x1b8], eax
test al, 8
je 0x10050d0c
and eax, 0xfffffff7
mov dword [ebp - 0x1b8], eax
lea eax, [ebp - 0x1e8]
push eax
push ecx
lea ecx, [ebp - 0x1b4]
call fcn.1004eed0
mov eax, dword [ebp - 0x1b4]
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1d4]
mov dword [0x101b9c14], eax
cmp ecx, 0x10
jb 0x10050d6b
mov edx, dword [ebp - 0x1e8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10050d61
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10050e9b
push ecx
push edx
call fcn.100f9140
add esp, 8
mov byte [ebp - 4], 6
push esi
mov ecx, edi
call dword [0x101b9c14]
mov ecx, dword [eax + 0xbc]
xor esi, esi
mov dword [ebp - 0x1b4], ecx
test ecx, ecx
mov ecx, dword [ebp - 0x30]
jle 0x10050dfe
mov edx, dword [eax + 0xb8]
mov dword [ebp - 0x1b0], edx
lea edi, [edx + eax]
nop dword [eax]
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, ecx
xor ecx, ecx
test edx, edx
cmovne ecx, edi
mov edx, dword [ecx]
test edx, edx
je 0x10050dbb
add ecx, edx
jmp 0x10050dc0
xor ecx, ecx
nop dword [eax]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10050de0
test dl, dl
je 0x10050ddc
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10050de0
add ecx, 2
add eax, 2
test dl, dl
jne 0x10050dc0
xor eax, eax
jmp 0x10050de5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10050e29
mov ecx, dword [ebp - 0x30]
inc esi
mov edx, dword [ebp - 0x1b0]
add edi, 4
cmp esi, dword [ebp - 0x1b4]
jl 0x10050da0
mov esi, dword [ebp - 0x1cc]
xorps xmm3, xmm3
mov ecx, dword [ebp - 0x1ac]
movss xmm1, dword [esi + 0xa4]
comiss xmm1, xmm3
jbe 0x10050e63
mulss xmm1, dword [ecx + 0x58]
movss dword [ebp - 0x1bc], xmm1
jmp 0x10050e6b
mov esi, dword [ebp - 0x1cc]
xorps xmm3, xmm3
movss xmm0, dword [0x1010d6b0]
mov ecx, dword [ebp - 0x1ac]
movss xmm2, dword [esi + 0xa4]
comiss xmm0, xmm2
jbe 0x10050e63
movaps xmm1, xmm0
subss xmm1, xmm2
mulss xmm1, dword [ecx + 0x58]
movss dword [ebp - 0x1bc], xmm1
jmp 0x10050e6b
movss xmm1, dword [ebp - 0x1bc]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
cmp eax, 0x10
jb 0x10050f10
mov ecx, dword [ebp - 0x30]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x10050ea1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10050ea1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100f9140
movss xmm1, dword [ebp - 0x1bc]
add esp, 8
mov ecx, dword [ebp - 0x1ac]
xorps xmm3, xmm3
mov edx, dword [ebp - 0x18]
jmp 0x10050f13
movss xmm2, dword [edx + 0x20]
comiss xmm2, xmm3
jbe 0x10050f13
movss xmm6, dword [ebp - 0x1c8]
movaps xmm4, xmm2
movss xmm5, dword [0x1010eac0]
movaps xmm1, xmm6
mulss xmm1, dword [0x1010d7b0]
xorps xmm4, xmm5
comiss xmm4, xmm1
jbe 0x10050ef7
addss xmm1, xmm2
jmp 0x10050f1b
movaps xmm0, xmm1
xorps xmm0, xmm5
comiss xmm0, xmm4
jbe 0x10050f0b
subss xmm2, xmm1
movaps xmm1, xmm2
jmp 0x10050f1b
xorps xmm1, xmm1
jmp 0x10050f1b
lea edx, [ecx + 0x70]
movss xmm6, dword [ebp - 0x1c8]
movss xmm2, dword [0x1010d6b0]
comiss xmm1, xmm2
seta al
test al, al
je 0x10050f32
movaps xmm1, xmm2
jmp 0x10050f3f
comiss xmm3, xmm1
seta al
test al, al
je 0x10050f3f
xorps xmm1, xmm1
mov eax, dword [ebp - 0x1c4]
movss dword [edx + 0x20], xmm1
cmp dword [eax + 0x60], 0
je 0x10050fa0
movss xmm1, dword [ecx + 0x60]
movaps xmm0, xmm1
call fcn.10021050
comiss xmm3, xmm0
jae 0x10050fa0
mulss xmm1, xmm6
addss xmm1, dword [ecx + 0x64]
comiss xmm1, xmm2
jb 0x10050f78
movss xmm1, dword [0x1010d6a8]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
comiss xmm3, xmm1
jbe 0x10050f92
addss xmm1, xmm2
jmp 0x10050f9b
comiss xmm1, xmm2
jbe 0x10050f9b
subss xmm1, xmm2
movss dword [ecx + 0x64], xmm1
movss xmm0, dword [ecx + 0x60]
mulss xmm0, dword [esi + 0x74]
movss xmm1, dword [ecx + 0x64]
subss xmm1, xmm0
comiss xmm1, xmm2
seta al
test al, al
je 0x10050fc2
movaps xmm3, xmm2
jmp 0x10050fcf
comiss xmm3, xmm1
seta al
test al, al
jne 0x10050fcf
movaps xmm3, xmm1
movss xmm0, dword [ecx + 0x5c]
movss xmm1, dword [ecx + 0x58]
movss dword [ecx + 0x64], xmm3
mulss xmm0, dword [esi + 0x74]
subss xmm1, xmm0
comiss xmm1, xmm2
seta al
test al, al
jne 0x10051006
movss xmm2, dword [0x1010d580]
comiss xmm2, xmm1
seta al
test al, al
jne 0x10051006
movaps xmm2, xmm1
movss dword [ecx + 0x58], xmm2
mov dword [0x10152cd4], 0
mov dword [ebp - 4], 9
cmp dword [ebp - 0x3c], 0
jl 0x10051037
mov edx, dword [ebp - 0x44]
test edx, edx
je 0x10051037
mov ecx, dword [0x101b8ac4]
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.100f8cc5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10