Function at 0x101b2dc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0x2c]
sub esp, 0x38
mov ecx, dword [0x1033a628]
push esi
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10347e98]
push edi
cmp eax, dword [ecx + 4]
jg 0x101b3212
mov eax, dword [0x10347e9c]
mov dword [esp + 0x14], eax
mov eax, dword [0x103390c8]
mov eax, dword [eax + 0x14]
cmp byte [eax], 0
je 0x101b320c
cmp byte [eax + 3], 0
je 0x101b320c
mov eax, dword [0x103390d4]
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
mov eax, dword [eax + 0x30]
call eax
push eax
mov ecx, edi
call esi
mov esi, eax
mov ecx, esi
call fcn.1003f390
cmp dword [eax], 9
je 0x101b320c
mov ecx, esi
call fcn.1003f390
cmp dword [eax], 8
je 0x101b320c
mov ecx, esi
call fcn.10026f10
test byte [eax], 1
jne 0x101b320c
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1033a628]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10347e70]
cmp eax, dword [ecx + 4]
jg 0x101b3248
mov eax, dword [0x103390d4]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov ecx, dword [eax + 0x1c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x4c]
movss xmm1, dword [esp + 0x24]
subss xmm1, dword [0x103478b0]
call fcn.101b1850
xorps xmm1, xmm1
movss dword [esp + 0x1c], xmm0
cvtss2sd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.100ef210
mov edi, dword [esp + 0x1c]
add esp, 8
movss xmm0, dword [esp + 0x24]
movss xmm2, dword [0x102ddae4]
fstp dword [esp + 0x18]
mov ecx, dword [edi + 0x24]
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov eax, dword [0x103390c8]
movss dword [0x103478b0], xmm0
mov eax, dword [eax + 0x14]
cmp byte [eax + 0xd8], 0
je 0x101b2f70
movss xmm0, dword [0x102dda7c]
xorps xmm1, xmm1
test ecx, 0x200
je 0x101b2f2e
subss xmm1, xmm0
test ecx, 0x400
je 0x101b2f3a
addss xmm1, xmm0
test cl, 8
je 0x101b2f49
mulss xmm1, dword [0x102dd82c]
jmp 0x101b2f60
test cl, 0x10
je 0x101b2f60
movaps xmm0, xmm1
movaps xmm1, xmm2
mulss xmm0, dword [0x102dd82c]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x24]
subss xmm0, xmm1
movss dword [esp + 0x24], xmm0
call fcn.101395c0
mov esi, eax
mov eax, 0x24045b30
mov ecx, esi
call eax
movss xmm0, dword [esi + 0xec]
movss xmm1, dword [esi + 0xf0]
mov eax, dword fs:[0x2c]
mov esi, dword [0x1033a628]
movss dword [esp + 0xc], xmm0
movss dword [esp + 0x10], xmm1
mov ecx, dword [eax + esi*4]
mov eax, dword [0x10347e78]
cmp eax, dword [ecx + 4]
jg 0x101b328d
jmp 0x101b2fc4
movss xmm0, dword [esp + 0xc]
cvtps2pd xmm0, xmm0
sub esp, 0x10
movsd qword [esp + 8], xmm0
movss xmm0, dword [esp + 0x20]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef3a0
movss xmm1, dword [0x102dd95c]
add esp, 0x10
movss xmm0, dword [0x102ddae4]
divss xmm0, xmm1
fstp dword [esp + 0x14]
mulss xmm0, dword [esp + 0x14]
movss dword [esp + 8], xmm1
movss xmm1, dword [esp + 0x24]
subss xmm1, xmm0
call fcn.101b1850
sub esp, 8
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [esp], xmm0
call fcn.10103e5b
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
movss xmm0, dword [0x102dd9f0]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef3a0
movss xmm0, dword [0x102ddae4]
add esp, 0x10
divss xmm0, dword [esp + 8]
push ecx
fstp dword [esp + 0x14]
mulss xmm0, dword [esp + 0x14]
comiss xmm0, dword [esp + 0x1c]
jbe 0x101b30cc
movss xmm0, dword [esp + 0x18]
movss dword [esp], xmm0
call fcn.100ef1d0
add esp, 4
test eax, eax
mov eax, dword [0x10347e74]
movss xmm0, dword [eax + 0x28]
jne 0x101b30b3
xorps xmm0, xmmword [0x102ddfe0]
movss dword [edi + 0x1c], xmm0
movss xmm0, dword [esp + 0x24]
subss xmm0, dword [esp + 0x14]
movss dword [esp + 0x24], xmm0
jmp 0x101b3101
movss xmm0, dword [esp + 0x20]
movss dword [esp], xmm0
call fcn.100ef1d0
add esp, 4
test eax, eax
mov eax, dword [0x10347e74]
je 0x101b30f0
mov eax, dword [eax + 0x28]
mov dword [edi + 0x1c], eax
jmp 0x101b3101
movss xmm0, dword [eax + 0x28]
xorps xmm0, xmmword [0x102ddfe0]
movss dword [edi + 0x1c], xmm0
mov eax, dword fs:[0x2c]
movss xmm1, dword [esp + 0x24]
movss dword [esp + 0x1c], xmm1
mov ecx, dword [eax + esi*4]
mov eax, dword [0x10347e98]
cmp eax, dword [ecx + 4]
jg 0x101b32f7
mov esi, dword [0x10347e9c]
sub esp, 0x10
movss xmm0, dword [0x102ddb40]
cvtps2pd xmm0, xmm0
movss xmm1, dword [esi + 0x10]
subss xmm1, dword [esp + 0x2c]
movsd qword [esp + 8], xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
call fcn.100ef390
movss xmm3, dword [0x102ddae4]
add esp, 0x10
movss xmm2, dword [0x102ddb40]
fstp dword [esp + 0x1c]
movss xmm1, dword [esp + 0x1c]
comiss xmm1, xmm3
jbe 0x101b317f
subss xmm1, xmm2
movss xmm0, dword [0x102ddc08]
comiss xmm0, xmm1
jbe 0x101b3190
addss xmm1, xmm2
movss xmm0, dword [esp + 8]
sub esp, 8
divss xmm0, xmm3
mulss xmm0, xmm1
movss dword [esp + 0x10], xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef3b0
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm0, xmm0
fstp dword [esp + 0x24]
movsd qword [esp], xmm0
call fcn.100ef400
movss xmm5, dword [esi + 0x18]
add esp, 8
movss xmm4, dword [esi + 0x1c]
movaps xmm2, xmm5
mulss xmm2, dword [esp + 0x1c]
movaps xmm0, xmm4
mulss xmm4, dword [esp + 0x1c]
fstp dword [esp + 0x18]
mulss xmm0, dword [esp + 0x18]
mulss xmm5, dword [esp + 0x18]
subss xmm2, xmm0
addss xmm5, xmm4
movss dword [esi + 0x18], xmm2
movss dword [esi + 0x1c], xmm5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x10347e98
call fcn.100c3aa2
add esp, 4
cmp dword [0x10347e98], 0xffffffff
jne 0x101b2deb
push 0x10347e98
mov dword [0x10347e9c], 0
call fcn.100c3a51
add esp, 4
jmp 0x101b2deb
push 0x10347e70
call fcn.100c3aa2
add esp, 4
cmp dword [0x10347e70], 0xffffffff
jne 0x101b2e7d
mov eax, dword [0x103390d4]
push str.cl_sidespeed
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
push 0x10347e70
mov dword [0x10347e74], eax
call fcn.100c3a51
add esp, 4
jmp 0x101b2e7d
push 0x10347e78
call fcn.100c3aa2
add esp, 4
cmp dword [0x10347e78], 0xffffffff
jne 0x101b2fbe
mov eax, dword [0x103390d4]
xor edx, edx
movaps xmm0, xmmword [0x102dde50]
mov ecx, dword [eax + 0x34]
movups xmmword [esp + 0x2e], xmm0
mov word [esp + 0x3e], 0xd
jmp 0x101b32c6
mov al, byte [esp + 0x2e]
xor byte [esp + edx + 0x2f], al
inc edx
cmp edx, 0x10
jb 0x101b32c6
mov byte [esp + 0x3f], 0
lea edx, [esp + 0x2f]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x1c]
call eax
push 0x10347e78
call fcn.100c3a51
add esp, 4
jmp 0x101b2fbe
push 0x10347e98
call fcn.100c3aa2
add esp, 4
cmp dword [0x10347e98], 0xffffffff
jne 0x101b3127
push 0x10347e98
mov dword [0x10347e9c], 0
call fcn.100c3a51
add esp, 4
jmp 0x101b3127