Function at 0x18005f440
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x130
cmp byte [rcx + 0x9c], 0
mov rbx, rcx
je 0x18005f8a4
mov edx, dword [rcx + 0x450]
lea rcx, [0x180248570]
call fcn.18006e9f0
test al, al
je 0x18005f8a4
movaps xmmword [rsp + 0x120], xmm6
lea rcx, [rsp + 0xb0]
movaps xmmword [rsp + 0x110], xmm7
xor edx, edx
movaps xmmword [rsp + 0x100], xmm8
movaps xmmword [rsp + 0xf0], xmm9
movaps xmmword [rsp + 0xe0], xmm10
movaps xmmword [rsp + 0xd0], xmm11
call fcn.1800599b0
xorps xmm8, xmm8
movups xmm0, xmmword [rax]
movsd xmm2, qword [rax + 0x10]
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x1801db168]
cvtsd2ss xmm8, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
mulsd xmm0, qword [0x1801db168]
cvtpd2ps xmm6, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm7, xmm0
movaps xmm0, xmm6
andps xmm7, xmmword [0x1801a4fa0]
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm9, xmm0
movaps xmm0, xmm6
xorps xmm9, xmmword [0x1801db3d0]
mulss xmm9, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm10, xmm0
movaps xmm0, xmm8
mulss xmm10, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
lea rcx, [rsp + 0x70]
movaps xmm11, xmm0
call fcn.180059960
mov edx, dword [rbx + 0x450]
lea rcx, [rsp + 0x90]
mov r8d, 1
call fcn.1800595b0
movss xmm1, dword [rsp + 0x90]
movss xmm0, dword [rsp + 0xa0]
subss xmm0, dword [rsp + 0x80]
movss xmm8, dword [rsp + 0x70]
subss xmm1, xmm8
cvtps2pd xmm2, xmm1
movss xmm1, dword [rsp + 0x98]
subss xmm1, dword [rsp + 0x78]
mulsd xmm2, xmm2
cvtps2pd xmm3, xmm1
cvtps2pd xmm1, xmm0
mulsd xmm3, xmm3
xorps xmm0, xmm0
addsd xmm3, xmm2
addsd xmm3, xmm1
ucomisd xmm0, xmm3
ja 0x18005f5b1
sqrtpd xmm0, xmm3
jmp 0x18005f5b9
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movsd xmm7, qword [rsp + 0x80]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movups xmm0, xmmword [rsp + 0x70]
addss xmm2, dword [rbx + 0xa4]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm6, xmm9
movaps xmm0, xmm10
movaps xmm1, xmm11
mulss xmm6, xmm2
mulss xmm0, xmm2
addss xmm6, xmm8
mulss xmm1, xmm2
movss xmm8, dword [rsp + 0x98]
addss xmm8, xmm0
addss xmm7, xmm1
call qword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [0x180266148]
cmp eax, 0xc8
jbe 0x18005f870
movsxd rax, dword [rbx + 0xa8]
mov qword [rsp + 0x140], rbp
lea rbp, str.Taxi
shl rax, 5
add rax, rbp
mov qword [rsp + 0x148], rsi
mov qword [rsp + 0x150], rdi
mov r10, rax
cmp qword [rax + 0x18], 0xf
jbe 0x18005f65f
mov r10, qword [rax]
mov r11, qword [rax + 0x10]
xor esi, esi
add r11, r10
mov r9d, esi
cmp r10, r11
je 0x18005f6a6
movzx r8d, byte [r10]
movzx eax, r8b
or al, 0x20
movzx ecx, al
lea edx, [r8 - 0x41]
cmp dl, 0x19
cmova ecx, r8d
inc r10
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
cmp r10, r11
jne 0x18005f670
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
lea rcx, [0x180266138]
call fcn.1800e14c0
mov ecx, dword [rbx + 0x450]
call fcn.180059650
movsxd rax, dword [rbx + 0xa8]
shl rax, 5
add rax, rbp
mov r10, rax
cmp qword [rax + 0x18], 0xf
jbe 0x18005f6e9
mov r10, qword [rax]
mov r11, qword [rax + 0x10]
mov r9d, esi
add r11, r10
cmp r10, r11
je 0x18005f736
nop dword [rax + rax]
movzx r8d, byte [r10]
movzx eax, r8b
or al, 0x20
movzx ecx, al
lea edx, [r8 - 0x41]
cmp dl, 0x19
cmova ecx, r8d
inc r10
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
cmp r10, r11
jne 0x18005f700
lea eax, [r9 + r9*8]
mov dword [rsp + 0x38], esi
mov ecx, eax
mov dword [rsp + 0x30], esi
shr ecx, 0xb
movaps xmm3, xmm7
xor ecx, eax
mov dword [rsp + 0x28], 1
imul ecx, ecx, 0x8001
movaps xmm2, xmm8
movaps xmm1, xmm6
movss dword [rsp + 0x20], xmm0
call fcn.180058ac0
mov edi, eax
movsxd rax, dword [rbx + 0xa8]
shl rax, 5
add rax, rbp
mov rbp, qword [rsp + 0x140]
mov r10, rax
cmp qword [rax + 0x18], 0xf
jbe 0x18005f791
mov r10, qword [rax]
mov r11, qword [rax + 0x10]
mov r9d, esi
add r11, r10
cmp r10, r11
je 0x18005f7d6
movzx r8d, byte [r10]
movzx eax, r8b
or al, 0x20
movzx ecx, al
lea edx, [r8 - 0x41]
cmp dl, 0x19
cmova ecx, r8d
inc r10
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
cmp r10, r11
jne 0x18005f7a0
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul ecx, ecx, 0x8001
call fcn.18005bec0
movss xmm2, dword [rbx + 0xa0]
xorps xmm0, xmm0
mov dword [rsp + 0x68], 1
movaps xmm1, xmm2
mov dword [rsp + 0x60], esi
movaps xmm3, xmm2
mov dword [rsp + 0x58], 1
mov edx, 1
mov dword [rsp + 0x50], 1
mov ecx, edi
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x38], xmm0
movss dword [rsp + 0x30], xmm0
mulss xmm1, xmm11
movss dword [rsp + 0x28], xmm0
mulss xmm3, xmm10
mulss xmm2, xmm9
movss dword [rsp + 0x20], xmm1
call fcn.180058170
call qword [sym.imp.WINMM.dll_timeGetTime]
mov rdi, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x148]
mov dword [0x180266148], eax
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm6, xmmword [rsp + 0x120]
movaps xmm11, xmmword [rsp + 0xd0]
add rsp, 0x130
pop rbx
ret