Function at 0x180048c6c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push r13
push r14
push r15
sub rsp, 0x40
mov eax, dword [rsp + 0x88]
xor r12d, r12d
mov rbx, qword [rsp + 0x90]
mov edi, edx
xor edi, 0xd96
mov r15d, r8d
xor r15d, 0x3113
xor ecx, 0xeb2
lea r14d, [rax - 0x6cc]
lea esi, [rax + 0x293]
lea eax, [rdi - 0x953]
lea r13d, [r12 + 1]
cmp r14d, eax
je 0x180048e9d
lea eax, [r14 - 0x15f]
cmp ecx, eax
jle 0x180048e93
lea eax, [r15 + 0x31c5]
cmp r14d, eax
jle 0x180048e78
add dword [rbx + 0x64], 0xffffe173
sub esi, 0xaa4
mov eax, dword [rbx + 0x2c]
cmp dword [rbx + 0x6c], eax
jae 0x180048d21
mov eax, dword [rbx + 0xd4]
sub eax, dword [0x18018d07c]
add eax, 0x3054a
add dword [rbx + 0x154], eax
jmp 0x180048d2f
lea rax, [0x180192fe0]
mov qword [0x18018d098], rax
mov r9, r12
mov rdx, qword [section..data]
mov eax, dword [0x18018d16c]
inc eax
mov ecx, dword [rdx + 0x90]
imul ecx, eax
mov dword [rdx + 0x90], ecx
mov rax, qword [section..data]
mov ecx, dword [rax + 0x114]
xor ecx, dword [0x18018d058]
xor ecx, r13d
mov dword [0x18018d058], ecx
mov eax, dword [rbx + 8]
sub eax, 0xcadcc
xor dword [rbx + 0x9c], eax
mov rcx, qword [section..data]
mov rax, qword [rcx + 0x88]
mov r8d, dword [r9 + rax]
add r9, 4
mov eax, dword [0x18018d048]
sub eax, dword [rcx + 0x2c]
xor eax, 0x11bff9
or dword [rcx + 0x134], eax
imul r8d, dword [0x18018d074]
movsxd rcx, dword [rbx + 0x68]
mov rax, qword [rbx + 0xa8]
mov edx, r8d
shr edx, 8
mov byte [rcx + rax], dl
add dword [rbx + 0x68], r13d
movsxd rcx, dword [rbx + 0x68]
mov rax, qword [0x18018d0b8]
mov byte [rcx + rax], r8b
add dword [rbx + 0x68], r13d
mov eax, dword [rbx]
xor eax, dword [rbx + 0x6c]
sub eax, 0x18619d
or dword [0x18018d0a8], eax
mov rax, qword [section..data]
mov ecx, dword [rax + 0xd4]
sub ecx, 0x400ac
xor dword [0x18018d144], ecx
mov ecx, dword [0x18018d0b4]
mov eax, dword [rbx + 0x20]
sub eax, 0x134868
imul ecx, eax
mov eax, 0x32cdc6
mov dword [0x18018d0b4], ecx
sub eax, dword [rbx + 0x4c]
sub eax, dword [rbx + 0x78]
add dword [rbx + 0x98], eax
mov rcx, qword [section..data]
mov eax, dword [rcx + 0xc4]
xor eax, r13d
add dword [rcx + 0xf8], eax
mov eax, dword [0x18018d030]
mov edx, dword [rbx + 0x6c]
add eax, 0xffecb797
add edx, eax
mov eax, dword [rbx + 0x2c]
imul eax, edx
mov dword [rbx + 0x2c], eax
mov eax, r13d
sub eax, dword [rbx + 0x78]
sub eax, dword [rbx + 0xa4]
add dword [rbx + 0x114], eax
cmp r9, 0x64e18
jl 0x180048d32
jmp 0x180048e93
mov eax, dword [rbx + 0x20]
sub eax, ecx
and eax, 0x3245
cmp dword [rbx + 0x5c], eax
jae 0x180048e93
lea eax, [rcx + rsi]
movsxd rcx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x18018d074], 0xeeeeeeef
lea eax, [rsi + 0x648]
cmp dword [rsp + 0x80], eax
jle 0x1800491b1
mov rcx, qword [section..data]
mov eax, dword [0x18018d0a0]
cmp dword [rcx + 0x14c], eax
je 0x180048ed5
lea rax, [0x18018d170]
mov qword [rbx + 0x88], rax
jmp 0x180048ef3
mov ecx, dword [rbx + 0x24]
add ecx, dword [0x18018d0e8]
add ecx, dword [0x18018d0e4]
mov eax, dword [rbx + 0x90]
imul eax, ecx
mov dword [rbx + 0x90], eax
mov r10, r12
mov rax, qword [section..data]
mov rcx, qword [rax + 0x88]
mov eax, r13d
sub eax, dword [rbx + 0x98]
mov r9d, dword [r10 + rcx]
add r10, 4
add dword [rbx + 0x14c], eax
mov rax, qword [section..data]
movsxd rcx, dword [rbx + 0x68]
imul r9d, dword [rax + 0x64]
mov rax, qword [rbx + 0xa8]
mov edx, r9d
mov r8d, r9d
shr edx, 0x10
mov byte [rcx + rax], dl
add dword [rbx + 0x68], r13d
mov eax, dword [rbx + 0x5c]
sub eax, r13d
shr r8d, 8
xor dword [rbx + 0x20], eax
mov eax, 0x32cdc5
sub eax, dword [rbx + 0x4c]
add dword [rbx + 0x9c], eax
mov rax, qword [section..data]
movsxd rdx, dword [0x18018d078]
mov rcx, qword [rax + 0xa8]
mov byte [rdx + rcx], r8b
add dword [0x18018d078], r13d
mov eax, dword [rbx + 0x154]
movsxd rcx, dword [rbx + 0x68]
sub eax, 9
add dword [rbx + 0x110], eax
mov rax, qword [rbx + 0xa8]
mov byte [rcx + rax], r9b
add dword [rbx + 0x68], r13d
mov eax, dword [0x18018d15c]
mov rcx, qword [section..data]
xor eax, 0xba1b54e4
or dword [rcx + 0xf8], eax
mov ecx, dword [rbx + 0x14c]
mov eax, ecx
mov edx, dword [rbx + 0xd8]
sub eax, edx
xor eax, 0xba08ce75
add eax, ecx
mov dword [rbx + 0x14c], eax
mov rax, qword [section..data]
sub edx, dword [rax + 0x78]
sub edx, dword [rbx + 8]
add edx, 0xcadcd
mov dword [rbx + 0xd8], edx
cmp r10, 0xf00
jl 0x180048ef6
mov eax, dword [rbx + 0x20]
cmp dword [0x18018d114], eax
jae 0x180049011
mov dword [0x18018d074], 0x16ac
jmp 0x18004902a
mov rax, qword [section..data]
mov ecx, dword [rax + 0x98]
xor ecx, 0x6f45
add dword [0x18018d164], ecx
mov eax, dword [rbx + 0x38]
sub eax, 0x34856
add dword [rbx + 0x64], eax
mov rcx, qword [section..data]
mov eax, dword [0x18018d164]
cmp dword [rcx + 0x30], eax
ja 0x18004905c
mov eax, dword [rbx + 0xfc]
sub eax, 0x5ce3669
xor dword [rcx + 0x64], eax
mov rcx, qword [section..data]
lea rax, str.J2tQ4
mov qword [0x18018d098], rax
mov rax, qword [rbx + 0x88]
mov r8d, dword [r12 + rax]
add r12, 4
mov eax, dword [rbx + 0x90]
xor eax, 0xfff5f104
sub dword [rcx + 0x2c], eax
mov rax, qword [section..data]
imul r8d, dword [rbx + 0x64]
mov ecx, dword [rax + 0x78]
xor ecx, dword [0x18018d034]
mov eax, dword [0x18018d0a0]
mov edx, r8d
add eax, 0xfff50bd6
shr edx, 0x10
add ecx, eax
mov dword [0x18018d0a0], ecx
movsxd rcx, dword [rbx + 0x68]
mov rax, qword [rbx + 0xa8]
mov byte [rcx + rax], dl
mov edx, r8d
add dword [rbx + 0x68], r13d
movsxd rcx, dword [rbx + 0x68]
mov rax, qword [0x18018d0b8]
shr edx, 8
mov byte [rcx + rax], dl
add dword [rbx + 0x68], r13d
movsxd rcx, dword [rbx + 0x68]
mov rax, qword [rbx + 0xa8]
mov byte [rcx + rax], r8b
add dword [rbx + 0x68], r13d
mov rax, qword [section..data]
mov ecx, dword [rax + 0xc4]
mov eax, 0x18619d
xor ecx, dword [rbx + 0x4c]
sub eax, dword [rbx + 4]
sub ecx, 0x32cdc4
xor dword [rbx + 0x30], ecx
sub eax, dword [rbx]
mov rcx, qword [section..data]
add dword [rcx + 0xf8], eax
mov ecx, 0xf
mov rax, qword [section..data]
sub ecx, dword [rax + 0xfc]
add dword [rbx + 0x38], ecx
mov edx, dword [rbx + 8]
mov eax, dword [rbx + 0xc4]
mov ecx, dword [rbx + 0x9c]
add ecx, 0xfff35222
add edx, ecx
imul eax, edx
mov dword [rbx + 0xc4], eax
mov rax, qword [section..data]
mov ecx, dword [rax + 0x148]
sub ecx, dword [rbx + 8]
xor ecx, dword [rbx + 0x104]
xor ecx, 0xffdb0433
mov dword [rbx + 0x104], ecx
mov ecx, dword [rbx + 0xd8]
mov eax, dword [0x18018d03c]
sub ecx, dword [0x18018d05c]
add eax, 0x204756
add ecx, eax
mov dword [0x18018d03c], ecx
cmp r12, 0x4e70
jge 0x1800492d2
mov rcx, qword [section..data]
jmp 0x18004906a
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov r10d, dword [rbx + 0x74]
lea r9d, [r15 + rdi]
imul r10d, dword [rbx + 0x30]
mov r12d, 0x38e9
mov eax, dword [0x18018d160]
or r14d, r12d
mov ecx, dword [rbx + 4]
xor eax, 0x3724
mov edx, dword [rbx + 0xf4]
or ecx, 0x3245
or edx, dword [0x18018d164]
xor ecx, 0x3ce9
and r9d, dword [rbx + 0x9c]
or edx, 0x363f
mov dword [rsp + 0x30], eax
imul r8d, r14d, 0x388d
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], r10d
call fcn.180049404
mov edx, dword [0x18018d040]
xor eax, 0x322b
sub edx, dword [rbx + 0x78]
mov r8d, eax
mov r9d, dword [rbx + 0x150]
mov ecx, dword [0x18018d034]
xor r9d, edi
sub ecx, dword [rbx + 0x30]
mov dword [rsp + 0x20], edx
mov rdx, rbx
call fcn.18004a61c
mov rax, qword [section..data]
mov ecx, dword [rbx + 0x4c]
imul edx, dword [rax + 0xa4], 0x3a56
mov eax, dword [rsp + 0x80]
xor rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapWalk]
mov rcx, qword [section..data]
mov r15d, dword [rsp + 0x80]
jmp 0x1800492c5
mov eax, dword [rbx + 0x100]
sub eax, edi
add eax, 0x4431
cmp dword [rbx + 0x44], eax
jae 0x1800492c1
mov r14d, dword [rsp + 0x80]
mov eax, dword [rbx + 0x9c]
xor eax, r12d
cmp r14d, eax
jbe 0x1800492c1
mov ecx, dword [rcx]
and ecx, 0x412c
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, qword [section..data]
add r14d, r13d
jmp 0x180049299
add r15d, 2
mov eax, dword [rcx + 0x6c]
and eax, dword [rbx + 0x10]
add eax, esi
cmp r15d, eax
jbe 0x18004927f
mov rbx, qword [rsp + 0x60]
xor edi, 0x73a
mov rsi, qword [rsp + 0x68]
mov eax, edi
mov rdi, qword [rsp + 0x70]
mov r12, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop r13
ret