Function at 0x180139310
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x120
movaps xmmword [rax - 0x38], xmm6
movabs rcx, 0xa5edc40ef369b48d
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
call fcn.1800e7ce0
mov edx, eax
movabs rcx, 0x43a66c31c68491c0
call fcn.1800e7da0
mov rcx, qword [0x18026c858]
mov ebp, eax
cmp byte [rcx + 3], 0
jne 0x18013938b
cmp byte [rcx + 2], 0
jne 0x18013938b
cmp byte [rcx + 0xa], 0
jne 0x18013938b
cmp byte [rcx + 9], 0
je 0x180139597
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, dword [0x18026c7fc]
sub rax, rcx
cmp rax, 0xbb8
jb 0x180139590
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x18026c7f8], eax
call fcn.1800e6170
mov rsi, qword [rax + 0x268]
mov rdi, qword [rax + 0x260]
cmp rdi, rsi
je 0x180139590
movss xmm8, dword [0x1801e8dd4]
movabs r15, 0x6ac7003fa6e5575e
movss xmm9, dword [0x1801e8dc4]
movabs r14, 0xb69317bf5e782347
movss xmm10, dword [0x1801e8dc8]
movabs r12, 0x428ca6dbd1094446
movaps xmmword [rsp + 0xc0], xmm11
movabs r13, 0x45f6d8eef34abef1
movss xmm11, dword [0x1801e8dc0]
movaps xmmword [rsp + 0xb0], xmm12
movss xmm12, dword [0x1801e8dbc]
movaps xmmword [rsp + 0xa0], xmm13
movss xmm13, dword [0x1801e8dd0]
mov rcx, qword [rdi]
call fcn.1801511f0
mov edx, eax
mov rcx, r15
mov ebx, eax
call fcn.1800e7da0
mov rcx, qword [0x18026c858]
test eax, eax
je 0x180139566
cmp byte [rcx + 0xa], 0
je 0x18013949b
mov edx, ebx
mov rcx, r14
call fcn.1800e7da0
mov r9d, 1
mov r8d, ebp
mov edx, ebx
movabs rcx, 0xb5c51b5502e85e83
call fcn.1800ebba0
mov rcx, qword [0x18026c858]
cmp byte [rcx + 3], 0
je 0x1801394c2
mov edx, ebx
mov rcx, r14
call fcn.1800e7da0
mov r8d, 1
mov edx, ebx
mov rcx, r12
call fcn.180135b00
mov rcx, qword [0x18026c858]
cmp byte [rcx + 2], 0
je 0x1801394e7
mov edx, ebx
mov rcx, r14
call fcn.1800e7da0
movaps xmm2, xmm8
mov edx, ebx
mov rcx, r13
call fcn.1801387c0
mov rcx, qword [0x18026c858]
cmp byte [rcx + 9], 0
je 0x180139566
lea rcx, [0x180266260]
call fcn.180139020
lea rcx, [0x180266260]
movaps xmm7, xmm0
call fcn.180139020
mov edx, ebx
mov rcx, r14
movaps xmm6, xmm0
call fcn.1800e7da0
mulss xmm6, xmm9
mov edx, ebx
movabs rcx, 0x239a3351ac1da385
mov dword [rsp + 0x38], 1
mulss xmm7, xmm11
mov dword [rsp + 0x30], 1
subss xmm6, xmm10
mov dword [rsp + 0x28], 1
movss dword [rsp + 0x20], xmm13
addss xmm7, xmm12
movaps xmm3, xmm6
movaps xmm2, xmm7
call fcn.180137730
mov rcx, qword [0x18026c858]
add rdi, 8
cmp rdi, rsi
jne 0x180139447
movaps xmm13, xmmword [rsp + 0xa0]
movaps xmm12, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0xc0]
jmp 0x180139597
mov rcx, qword [0x18026c858]
cmp byte [rcx + 1], 0
jne 0x1801395b3
cmp byte [rcx + 5], 0
jne 0x1801395b3
cmp byte [rcx + 6], 0
jne 0x1801395b3
cmp byte [rcx + 4], 0
je 0x180139955
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, dword [0x18026c7f8]
xorps xmm1, xmm1
mov rdx, rax
sub rdx, rcx
js 0x1801395d1
cvtsi2ss xmm1, rdx
jmp 0x1801395e6
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rax, qword [0x18026c858]
movss xmm0, dword [rax + 0xc]
mulss xmm0, dword [0x1801e0f20]
comiss xmm1, xmm0
jb 0x180139955
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x18026c7f8], eax
call fcn.1800e6170
mov r14, qword [rax + 0x250]
mov rsi, qword [rax + 0x248]
cmp rsi, r14
je 0x180139955
movss xmm8, dword [0x1801e0f0c]
movabs rdi, 0x5f9532f3b5cc2551
movss xmm9, dword [0x1801e0e90]
xor r15d, r15d
movss xmm10, dword [0x1801e8dcc]
movabs r13, 0xaf35d0d2583051b0
movss xmm6, dword [0x1801e55d8]
movabs r12, 0xef29a16337facadb
xorps xmm7, xmm7
mov rcx, qword [rsi]
call fcn.1801511f0
mov edx, eax
movabs rcx, 0x12534c348c6cb68b
mov ebx, eax
call fcn.1800e7da0
test eax, eax
je 0x180139948
xor r8d, r8d
mov edx, ebx
mov rcx, rdi
call fcn.1800ec120
test eax, eax
jne 0x180139948
lea rcx, [0x180266260]
call fcn.180139020
mov rax, qword [0x18026c858]
mulss xmm0, xmm8
addss xmm0, xmm7
comiss xmm0, dword [rax + 0x14]
jbe 0x180139948
cmp byte [rax + 4], r15b
je 0x1801397e0
test ebx, ebx
je 0x1801397e0
cmp ebx, ebp
je 0x1801397e0
movss dword [rsp + 0x30], xmm7
lea rcx, [rsp + 0x70]
movss dword [rsp + 0x28], xmm7
xor r9d, r9d
mov r8d, ebx
movss dword [rsp + 0x20], xmm7
movabs rdx, 0x17c07fc640e86b4e
call fcn.180135980
movss dword [rsp + 0x30], xmm9
lea rcx, [rsp + 0x88]
movss dword [rsp + 0x28], xmm7
mov r9d, 0xdead
mov r8d, ebx
movss dword [rsp + 0x20], xmm7
movabs rdx, 0x17c07fc640e86b4e
call fcn.180135980
lea rdx, str.WEAPON_STUNGUN
movabs rcx, 0xd24d37cc275948cc
call fcn.1800e7690
movss xmm0, dword [rsp + 0x80]
movabs rcx, 0x867654cbc7606f2c
movss xmm1, dword [rsp + 0x78]
movss xmm3, dword [rsp + 0x98]
movss xmm2, dword [rsp + 0x90]
movss dword [rsp + 0x68], xmm10
mov dword [rsp + 0x60], 1
mov dword [rsp + 0x58], r15d
mov dword [rsp + 0x50], ebp
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x38], r15d
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rsp + 0x70]
movss dword [rsp + 0x28], xmm1
movss xmm1, dword [rsp + 0x88]
movss dword [rsp + 0x20], xmm0
call fcn.180135dd0
mov rax, qword [0x18026c858]
cmp byte [rax + 5], r15b
je 0x1801398fe
lea r10, str.blista
mov r9d, r15d
mov r8b, 0x62
nop word [rax + rax]
movzx edx, r8b
lea r10, [r10 + 1]
sub r8b, 0x41
cmp r8b, 0x19
movzx r8d, byte [r10]
lea eax, [rdx + 0x20]
movzx ecx, al
cmova ecx, edx
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
test r8b, r8b
jne 0x180139800
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edi, ecx, 0x8001
movabs rcx, 0x963d27a58df860ac
mov edx, edi
call fcn.1800ebab0
mov r9d, 1
lea rcx, [rsp + 0x70]
mov r8d, ebx
movabs rdx, 0x3fef770d40960d5a
call fcn.1800e6be0
mov edx, edi
movabs rcx, 0x98a4eb5d89a0c952
call fcn.1800e7da0
test eax, eax
je 0x1801398dc
cmp ebx, ebp
jne 0x18013989c
mov rax, qword [0x18026c858]
cmp byte [rax], r15b
je 0x1801398dc
movss xmm0, dword [rsp + 0x80]
mov edx, edi
movss xmm3, dword [rsp + 0x78]
mov rcx, r13
movss xmm2, dword [rsp + 0x70]
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm0
call fcn.180137420
mov edx, edi
movabs rcx, 0xe532f5d78798daab
call fcn.1800ebab0
mov rax, qword [0x18026c858]
movabs rdi, 0x5f9532f3b5cc2551
cmp byte [rax + 6], r15b
je 0x18013992a
cmp ebx, ebp
jne 0x18013990d
cmp byte [rax], r15b
je 0x18013992a
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov edx, ebx
mov rcx, r12
lea r8d, [r9 + 1]
call fcn.180138680
mov rax, qword [0x18026c858]
cmp byte [rax + 1], r15b
je 0x180139948
cmp ebx, ebp
jne 0x180139939
cmp byte [rax], r15b
je 0x180139948
mov ecx, ebx
call fcn.180151010
mov rcx, rax
call fcn.180151520
add rsi, 8
cmp rsi, r14
jne 0x180139672
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret