Function at 0x100d72d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd4
cmp byte [0x10754e28], 0
push ebx
push esi
push edi
je 0x100d7d64
cmp byte [0x10754ffc], 0
je 0x100d7d64
cmp byte [0x10754ff4], 0
je 0x100d7d64
mov eax, dword [0x1063c34c]
cmp dword [eax], 0
je 0x100d7d64
mov ecx, dword [0x1063c36c]
xor edx, edx
push dword [0x1063c5b8]
mov eax, dword [ecx]
push dword [eax + 0x68]
lea eax, [esp + 0x48]
push eax
call fcn.1002a9f0
test al, al
je 0x100d7d64
call fcn.1013fb60
mov ecx, dword [0x10754e5c]
mov ebx, eax
mov edx, dword [0x10754e58]
sub ecx, edx
vmovss xmm4, dword [0x102285c0]
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
test ecx, ecx
je 0x100d7a10
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ecx
nop dword [eax]
nop word [eax + eax]
vmovss xmm6, dword [edx + ecx + 4]
vmulss xmm0, xmm6, dword [0x10755dd4]
vmovss xmm1, dword [0x10755dd0]
vmovss xmm4, dword [edx + ecx]
vmovss xmm5, dword [edx + ecx + 8]
vfmadd213ss xmm1, xmm4, xmm0
vmovss xmm0, dword [0x10755dd8]
vfmadd213ss xmm0, xmm5, xmm1
vaddss xmm0, xmm0, dword [0x10755ddc]
vmovss xmm1, dword [0x1022844c]
vcomiss xmm1, xmm0
vxorps xmm2, xmm2, xmm2
vxorps xmm7, xmm7, xmm7
ja 0x100d7462
vmovss xmm1, dword [0x10228684]
vmovss xmm2, dword [0x10755da0]
mov eax, dword [0x10755f08]
vdivss xmm3, xmm1, xmm0
vmulss xmm0, xmm6, dword [0x10755da4]
vfmadd213ss xmm2, xmm4, xmm0
vmovaps xmm1, xmm5
vfmadd132ss xmm1, xmm2, dword [0x10755da8]
vaddss xmm0, xmm1, dword [0x10755dac]
vmovaps xmm1, xmm3
vfmadd213ss xmm1, xmm0, dword [0x10228684]
vmulss xmm0, xmm1, dword [eax + 0x10]
vmulss xmm1, xmm6, dword [0x10755db4]
vfmadd132ss xmm4, xmm1, dword [0x10755db0]
vmulss xmm7, xmm0, dword [0x102285c0]
vfmadd132ss xmm5, xmm4, dword [0x10755db8]
vaddss xmm0, xmm5, dword [0x10755dbc]
vfnmadd213ss xmm3, xmm0, dword [0x10228684]
vmulss xmm0, xmm3, dword [eax + 0x14]
vmulss xmm2, xmm0, dword [0x102285c0]
vcvttss2si eax, xmm7
vxorps xmm3, xmm3, xmm3
vcvtsi2ss xmm3, xmm3, eax
vaddss xmm0, xmm3, dword [0x102287b0]
vcvttss2si esi, xmm2
vxorps xmm1, xmm1, xmm1
vmovss dword [esp + 0x4c], xmm0
vcvtsi2ss xmm1, xmm1, esi
vaddss xmm0, xmm1, dword [0x102287d4]
vmovss dword [esp + 0x50], xmm0
vsubss xmm0, xmm3, dword [0x102287b0]
vmovss dword [esp + 0x40], xmm0
vsubss xmm0, xmm1, dword [0x102287b0]
push 0
push ecx
vmovss dword [esp + 0x4c], xmm0
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm0
push 0xcc333333
lea eax, [esp + 0x58]
mov ecx, ebx
push eax
lea eax, [esp + 0x50]
push eax
vmovss dword [esp + 0x24], xmm3
call fcn.10157320
mov edx, edi
lea ecx, [esp + 0xb0]
call fcn.10022f50
mov edx, eax
cmp dword [edx + 0x14], 0xf
jbe 0x100d74f2
mov edx, dword [edx]
vmovss xmm0, dword [esp + 0x10]
vsubss xmm0, xmm0, dword [0x102287ac]
vxorps xmm1, xmm1, xmm1
mov ecx, edx
vcvtsi2ss xmm1, xmm1, esi
vmovss dword [esp + 0x58], xmm0
vsubss xmm0, xmm1, dword [0x102287b0]
vmovss dword [esp + 0x5c], xmm0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d7521
sub ecx, edi
add ecx, edx
cmp edx, ecx
je 0x100d7569
push dword [esp + 0x5c]
vmovdqu xmm0, xmmword [ebx + 0x60]
push dword [esp + 0x5c]
mov eax, dword [ebx + 0x2c]
push 0
push ecx
vmovdqu xmmword [esp + 0x30], xmm0
vmovss xmm2, dword [eax + 0xc]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm0
push ecx
push edx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 8]
push 0xffffffffffffffff
push ebx
call fcn.1015a460
mov ecx, dword [esp + 0xc4]
cmp ecx, 0xf
jbe 0x100d75a5
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d759b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d7d6b
push ecx
push edx
call fcn.1017d3f8
add esp, 8
mov eax, dword [0x10754e74]
lea ecx, [esp + 0x35]
mov edx, dword [esp + 0x18]
mov edx, dword [eax + edx*4]
test edx, edx
jns 0x100d75c6
neg edx
call fcn.10023250
dec eax
mov byte [eax], 0x2d
jmp 0x100d75cb
call fcn.10023250
push ecx
lea ecx, [esp + 0x39]
push ecx
push eax
lea ecx, [esp + 0xd4]
call fcn.10023280
cmp dword [esp + 0xdc], 0xf
lea edi, [esp + 0xc8]
mov edx, dword [esp + 0xc8]
vmovss xmm1, dword [esp + 0x10]
vsubss xmm0, xmm1, dword [0x102287ac]
cmova edi, edx
mov ecx, edi
vmovss dword [esp + 0x60], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, esi
lea eax, [ecx + 1]
vmovss dword [esp + 0x64], xmm0
mov dword [esp + 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d7622
sub ecx, dword [esp + 0x20]
add ecx, edi
cmp edi, ecx
je 0x100d7673
push dword [esp + 0x64]
vmovdqu xmm0, xmmword [ebx + 0x60]
push dword [esp + 0x64]
mov eax, dword [ebx + 0x2c]
push 0
push ecx
vmovdqu xmmword [esp + 0x30], xmm0
vmovss xmm2, dword [eax + 0xc]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm0
push ecx
push edi
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 8]
push 0xffffffffffffffff
push ebx
call fcn.1015a460
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xdc]
cmp eax, 0xf
jbe 0x100d76aa
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100d76a0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d7d6b
push ecx
push edx
call fcn.1017d3f8
add esp, 8
mov eax, dword [0x10754e80]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
sub eax, 1
je 0x100d76da
sub eax, 1
je 0x100d76d3
sub eax, 1
je 0x100d76cc
mov edx, 0x102121a0
jmp 0x100d76df
mov edx, str.CROUCH
jmp 0x100d76df
mov edx, str.JUMP
jmp 0x100d76df
mov edx, str.WALK
vmovss xmm1, dword [esp + 0x10]
vsubss xmm0, xmm1, dword [0x102287ac]
vmovss dword [esp + 0x68], xmm0
vxorps xmm0, xmm0, xmm0
mov ecx, edx
vcvtsi2ss xmm0, xmm0, esi
vaddss xmm0, xmm0, dword [0x102287b0]
vmovss dword [esp + 0x6c], xmm0
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d7710
sub ecx, edi
add ecx, edx
cmp edx, ecx
je 0x100d7758
push dword [esp + 0x6c]
vmovdqu xmm0, xmmword [ebx + 0x60]
push dword [esp + 0x6c]
mov eax, dword [ebx + 0x2c]
push 0
push ecx
vmovdqu xmmword [esp + 0x30], xmm0
vmovss xmm2, dword [eax + 0xc]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm0
push ecx
push edx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 8]
push 0xffffffffffffffff
push ebx
call fcn.1015a460
mov eax, dword [0x10754e8c]
sub esp, 8
mov ecx, dword [esp + 0x20]
vmovss xmm0, dword [eax + ecx*4]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp], xmm0
push 0x102010d4
vmovsd qword [esp + 0x2c], xmm0
call fcn.1007f460
add esp, 0xc
lea ecx, [esp + 0x80]
mov edi, eax
push 0
push edi
call fcn.10024240
cmp dword [esp + 0x94], 0xf
lea ecx, [esp + 0x80]
vmovsd xmm0, qword [esp + 0x20]
cmova ecx, dword [esp + 0x80]
lea eax, [edi + 1]
sub esp, 8
vmovsd qword [esp], xmm0
push 0x102010d4
push eax
push ecx
call fcn.100291b0
vmovss xmm0, dword [esp + 0x24]
vsubss xmm0, xmm0, dword [0x102287ac]
mov edx, dword [esp + 0x94]
lea edi, [esp + 0x94]
add esp, 0x14
cmp dword [esp + 0x94], 0xf
vmovss dword [esp + 0x70], xmm0
cmova edi, edx
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, esi
vaddss xmm0, xmm0, dword [0x102287d4]
mov ecx, edi
vmovss dword [esp + 0x74], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d7815
sub ecx, esi
add ecx, edi
cmp edi, ecx
je 0x100d7864
push dword [esp + 0x74]
vmovdqu xmm0, xmmword [ebx + 0x60]
push dword [esp + 0x74]
mov eax, dword [ebx + 0x2c]
push 0
push ecx
vmovdqu xmmword [esp + 0x30], xmm0
vmovss xmm2, dword [eax + 0xc]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm0
push ecx
push edi
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 8]
push 0xffffffffffffffff
push ebx
call fcn.1015a460
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x94]
cmp eax, 0xf
jbe 0x100d789b
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100d7891
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d7d6b
push ecx
push edx
call fcn.1017d3f8
add esp, 8
push 0
push dword [0x10754e90]
push dword [0x10754e8c]
call fcn.1017cad0
sub eax, dword [0x10754e8c]
lea ecx, [esp + 0xc5]
sar eax, 2
test eax, eax
jns 0x100d78d1
neg eax
mov edx, eax
call fcn.10023250
dec eax
mov byte [eax], 0x2d
jmp 0x100d78d8
mov edx, eax
call fcn.10023250
push ecx
lea ecx, [esp + 0xc9]
push ecx
push eax
lea ecx, [esp + 0xa4]
call fcn.10023280
mov edi, dword [esp + 0xac]
lea esi, [esp + 0x98]
mov edx, dword [esp + 0x98]
cmp edi, 0xf
vmovss xmm0, dword [0x10228968]
cmova esi, edx
mov ecx, esi
vmovss dword [esp + 0x78], xmm0
vmovss xmm0, dword [0x102288a0]
vmovss dword [esp + 0x7c], xmm0
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d7930
sub ecx, dword [esp + 0x20]
add ecx, esi
cmp esi, ecx
je 0x100d7988
push dword [esp + 0x7c]
vmovdqu xmm0, xmmword [ebx + 0x60]
push dword [esp + 0x7c]
mov eax, dword [ebx + 0x2c]
push 0
push ecx
vmovdqu xmmword [esp + 0x30], xmm0
vmovss xmm2, dword [eax + 0xc]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm0
push ecx
push esi
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 8]
push 0xffffffffffffffff
push ebx
call fcn.1015a460
mov edi, dword [esp + 0xac]
mov edx, dword [esp + 0x98]
cmp edi, 0xf
jbe 0x100d79b8
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100d79ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d7d6b
push ecx
push edx
call fcn.1017d3f8
add esp, 8
mov eax, dword [0x10754e5c]
mov edx, dword [0x10754e58]
sub eax, edx
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc edi
sar eax, 2
add ecx, 0xc
imul eax, eax, 0xaaaaaaab
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0xf
mov byte [esp + 0x98], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ecx
cmp edi, eax
jb 0x100d7380
vmovss xmm4, dword [0x102285c0]
mov eax, dword [0x10754ea4]
mov ecx, dword [0x10754ea0]
sub eax, ecx
sar eax, 2
imul eax, eax, 0x3cf3cf3d
test eax, eax
je 0x100d7d64
cmp byte [0x10754ffd], 0
je 0x100d7d64
xor edi, edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
test eax, eax
je 0x100d7d52
xor esi, esi
nop word [eax + eax]
vmovss xmm5, dword [ecx + esi + 4]
vmulss xmm0, xmm5, dword [0x10755dd4]
vmovss xmm1, dword [0x10755dd0]
vmovss xmm6, dword [ecx + esi]
vmovss xmm7, dword [ecx + esi + 8]
vfmadd213ss xmm1, xmm6, xmm0
vmovss xmm0, dword [0x10755dd8]
vfmadd213ss xmm0, xmm7, xmm1
vaddss xmm1, xmm0, dword [0x10755ddc]
vmovss xmm0, dword [0x1022844c]
vcomiss xmm0, xmm1
vxorps xmm2, xmm2, xmm2
vxorps xmm3, xmm3, xmm3
ja 0x100d7b74
vmovss xmm0, dword [0x10228684]
mov eax, dword [0x10755f08]
vdivss xmm3, xmm0, xmm1
vmulss xmm0, xmm5, dword [0x10755da4]
vmovss xmm1, dword [0x10755da0]
vmulss xmm2, xmm4, dword [eax + 0x10]
vmulss xmm4, xmm4, dword [eax + 0x14]
vfmadd213ss xmm1, xmm6, xmm0
vmovss xmm0, dword [0x10755da8]
vfmadd213ss xmm0, xmm7, xmm1
vaddss xmm0, xmm0, dword [0x10755dac]
vmovaps xmm1, xmm3
vfmadd213ss xmm1, xmm0, dword [0x10228684]
vmulss xmm0, xmm1, xmm2
vmovss xmm1, dword [0x10755db0]
vmovss dword [esp + 0x20], xmm0
vmulss xmm0, xmm5, dword [0x10755db4]
vfmadd213ss xmm1, xmm6, xmm0
vmovss xmm0, dword [0x10755db8]
vfmadd213ss xmm0, xmm7, xmm1
vaddss xmm0, xmm0, dword [0x10755dbc]
vfnmadd213ss xmm3, xmm0, dword [0x10228684]
vmovss dword [esp + 0x10], xmm2
vmulss xmm2, xmm3, xmm4
vmovss xmm3, dword [esp + 0x20]
vcvttss2si eax, xmm3
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vcvttss2si eax, xmm2
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x50]
vmovss dword [esp + 0x24], xmm0
vmovss dword [esp + 0x20], xmm1
vmovss dword [esp + 0x14], xmm0
vmovss dword [esp + 0x18], xmm1
call fcn.100c5dc0
mov eax, dword [0x10754ea0]
vmovss xmm0, dword [0x10755dd4]
vmovss xmm6, dword [eax + esi + 0xc]
vmulss xmm1, xmm0, dword [eax + esi + 0x10]
vmovss xmm7, dword [eax + esi + 0x14]
vmovss xmm0, dword [0x1022844c]
vmovaps xmm2, xmm6
vfmadd132ss xmm2, xmm1, dword [0x10755dd0]
vmovaps xmm1, xmm7
vfmadd132ss xmm1, xmm2, dword [0x10755dd8]
vaddss xmm1, xmm1, dword [0x10755ddc]
vcomiss xmm0, xmm1
ja 0x100d7ca7
mov ecx, dword [0x10755f08]
vmovss xmm0, dword [0x10228684]
vmovss xmm2, dword [0x102285c0]
vdivss xmm4, xmm0, xmm1
vmulss xmm3, xmm2, dword [ecx + 0x10]
vmulss xmm5, xmm2, dword [ecx + 0x14]
vmovss xmm0, dword [0x10755da4]
vmulss xmm1, xmm0, dword [eax + esi + 0x10]
vmovaps xmm2, xmm6
vfmadd132ss xmm2, xmm1, dword [0x10755da0]
vmovaps xmm1, xmm7
vfmadd132ss xmm1, xmm2, dword [0x10755da8]
vaddss xmm0, xmm1, dword [0x10755dac]
vmovaps xmm1, xmm4
vfmadd213ss xmm1, xmm0, dword [0x10228684]
vmovss xmm0, dword [0x10755db4]
vmulss xmm2, xmm1, xmm3
vmulss xmm1, xmm0, dword [eax + esi + 0x10]
vfmadd132ss xmm6, xmm1, dword [0x10755db0]
vfmadd132ss xmm7, xmm6, dword [0x10755db8]
vaddss xmm0, xmm7, dword [0x10755dbc]
vfnmadd213ss xmm4, xmm0, dword [0x10228684]
vmovss dword [esp + 0x10], xmm3
vmulss xmm0, xmm4, xmm5
jmp 0x100d7cb3
vmovss xmm2, dword [esp + 0x20]
vmovss xmm0, dword [esp + 0x1c]
vcvttss2si eax, xmm2
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vcvttss2si eax, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x44]
vmovss dword [esp + 0x14], xmm1
vmovss dword [esp + 0x18], xmm0
call fcn.100c5dc0
mov eax, dword [0x10754ea0]
vmovss xmm0, dword [0x10228684]
vcomiss xmm0, dword [eax + esi + 0x2c]
ja 0x100d7d05
cmp dword [eax + 0x30], 1
mov eax, 0xdd00ff00
jne 0x100d7d0a
mov eax, 0xddff0000
push ecx
vmovss dword [esp], xmm0
push eax
mov eax, dword [esp + 0x48]
mov ecx, ebx
lea eax, [eax + edi*8]
push eax
mov eax, dword [esp + 0x58]
lea eax, [eax + edi*8]
push eax
call fcn.10157110
mov eax, dword [0x10754ea4]
inc edi
mov ecx, dword [0x10754ea0]
add esi, 0x54
vmovss xmm4, dword [0x102285c0]
sub eax, ecx
sar eax, 2
imul eax, eax, 0x3cf3cf3d
cmp edi, eax
jb 0x100d7a80
lea ecx, [esp + 0x40]
call fcn.100ad800
lea ecx, [esp + 0x4c]
call fcn.100ad800
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.101829ea
int3