Function at 0x1800d9700
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r14
sub rsp, 0x70
movabs rax, 0x50fac3a3e030a6e1
mov dword [0x18035eae0], 1
mov qword [0x1803afcd8], rax
xor r12d, r12d
mov eax, dword [0x180384d2c]
mov rbp, rcx
mov qword [rsp + 0x98], r12
mov dword [rsp + 0x98], eax
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebb8], rax
mov dword [0x18035eaf0], r12d
call fcn.180110360
mov qword [rsp + 0x98], r12
mov r14d, dword [rax]
movabs rax, 0x7239b21a38f536ba
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], r14d
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebb8], rax
mov dword [0x18035eaf0], r12d
mov dword [0x18035eae0], 1
call fcn.180110360
cmp dword [rax], r12d
je 0x1800d9ca4
mov qword [rsp + 0x90], rbx
mov ebx, r12d
mov qword [rsp + 0xa0], rsi
lea rsi, str.WEAPON_RAILGUN
mov qword [rsp + 0x68], rdi
mov edi, r12d
mov qword [rsp + 0x60], r15
mov eax, edi
movsx ecx, byte [rax + rsi]
call fcn.18022e718
add eax, ebx
inc edi
imul ebx, eax, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
cmp edi, 0xe
jb 0x1800d97d4
lea eax, [rbx + rbx*8]
mov qword [rsp + 0x98], r12
mov ecx, eax
mov dword [rsp + 0x98], r14d
shr ecx, 0xb
xor ecx, eax
mov dword [0x18035eaf0], r12d
movabs rax, 0x3fef770d40960d5a
imul r15d, ecx, 0x8001
mov qword [0x1803afcd8], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rax
mov dword [rsp + 0x98], 1
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebc0], rax
mov dword [0x18035eae0], 2
call fcn.180110360
mov rdi, 0xffffffffffffffff
movups xmm0, xmmword [rax]
movsd xmm1, qword [rax + 0x10]
movups xmmword [rsp + 0x40], xmm0
movsd qword [rsp + 0x50], xmm1
nop dword [rax + rax]
inc rdi
cmp byte [rdi + rbp], r12b
jne 0x1800d9890
mov esi, r12d
mov ebx, r12d
test rdi, rdi
je 0x1800d98c8
mov rax, r12
movsx ecx, byte [rax + rbp]
call fcn.18022e718
add eax, ebx
inc esi
imul ebx, eax, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
mov eax, esi
cmp rax, rdi
jb 0x1800d98a7
movabs rax, 0xd127585f77030af
mov qword [rsp + 0x98], r12
mov qword [0x1803afcd8], rax
lea ebx, [rbx + rbx*8]
mov dword [rsp + 0x98], r14d
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebb8], rax
mov dword [0x18035eaf0], r12d
mov dword [0x18035eae0], 1
call fcn.180110360
mov edi, dword [rax]
call fcn.18022e0e4
call fcn.18022e0e4
movss xmm1, dword [0x1802fb5dc]
xorps xmm0, xmm0
movss xmm4, dword [rsp + 0x50]
mov eax, ebx
movss xmm3, dword [rsp + 0x48]
addss xmm4, xmm1
movss xmm2, dword [rsp + 0x40]
addss xmm3, xmm0
shr eax, 0xb
addss xmm2, xmm0
xor eax, ebx
movss dword [rsp + 0x28], xmm1
imul edx, eax, 0x8001
mov ecx, 0x1a
movss dword [rsp + 0x20], xmm4
call fcn.1800e20f0
mov qword [rsp + 0x98], r12
mov ebx, eax
mov dword [rsp + 0x98], r14d
movabs rax, 0x2a7819605465fbce
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rcx
mov dword [rsp + 0x98], edi
mov rcx, qword [rsp + 0x98]
mov qword [0x18035ebc0], rcx
mov dword [0x18035eaf0], r12d
mov qword [0x1803afcd8], rax
mov dword [0x18035eae0], 2
call fcn.180110360
mov qword [rsp + 0x98], r12
movabs rax, 0x9f3480fe65db31b5
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], ebx
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rax
mov dword [rsp + 0x98], edi
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebc0], rax
mov dword [0x18035eaf0], r12d
mov dword [0x18035eae0], 2
call fcn.180110360
mov qword [rsp + 0x98], r12
movabs rax, 0x3dbfc55d5c9bb447
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], ebx
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rax
mov dword [rsp + 0x98], edi
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebc0], rax
mov dword [0x18035eaf0], r12d
mov dword [0x18035eae0], 2
call fcn.180110360
movabs rax, 0x3882114bde571ad4
mov qword [rsp + 0x98], r12
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], ebx
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebb8], rax
mov dword [0x18035eaf0], r12d
mov qword [0x18035ebc0], r12
mov dword [0x18035eae0], 2
call fcn.180110360
movabs rax, 0xc7622c0d36b2fda8
mov dword [0x18035eaf0], r12d
mov qword [rsp + 0x98], r12
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], ebx
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rax
mov dword [rsp + 0x98], 0x64
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebc0], rax
mov dword [0x18035eae0], 2
call fcn.180110360
mov r8d, r15d
mov edx, r15d
mov ecx, ebx
call fcn.1800e2040
mov qword [rsp + 0x98], r12
movabs rax, 0xed7f7efe9fabf340
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], ebx
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rax
mov dword [rsp + 0x98], 1
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebc0], rax
mov dword [0x18035eaf0], r12d
mov dword [0x18035eae0], 2
call fcn.180110360
mov qword [rsp + 0x98], r12
movabs rax, 0xce2f5fc3af7e8c1e
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], edi
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rax
mov dword [rsp + 0x98], 3
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebc0], rax
mov dword [0x18035eaf0], r12d
mov dword [0x18035eae0], 2
call fcn.180110360
mov qword [rsp + 0x98], r12
movabs rax, 0xf5f6378c4f3419d3
mov qword [0x1803afcd8], rax
mov dword [rsp + 0x98], ebx
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [0x18035ebb8], rax
mov dword [rsp + 0x98], 0x1388
mov rax, qword [rsp + 0x98]
mov qword [0x18035ebc0], rax
mov dword [0x18035eaf0], r12d
mov dword [0x18035eae0], 2
call fcn.180110360
mov r15, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x90]
add rsp, 0x70
pop r14
pop r12
pop rbp
ret