Function at 0x180037a80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0x90
mov rax, qword [0x18007b358]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov rsi, qword [rbp + 0x77]
mov r12, rdx
mov rax, qword [rbp + 0x7f]
lea edx, [r9 - 0xd]
mov dword [rbp - 0x31], r9d
mov r14, r8
mov qword [rbp - 0x19], rcx
mov qword [rbp - 0x11], rsi
mov qword [rbp - 9], rax
mov dword [rbp - 0x41], edx
cmp r9d, edx
jbe 0x180037b79
movzx edi, byte [rbp - 0x2d]
lea edx, [r9 - 0x6f]
mov r15d, dword [rbp - 0x49]
mov r13, qword [rbp - 0x19]
mov eax, dword [rbp - 0x41]
mov dword [rbp - 0x39], edx
xor r8d, r8d
lea r10, [0x180000000]
cmp edx, 0x2a
ja case.default.0x180037b15
movzx eax, byte [r10 + rdx + 0x37f90]
mov ecx, dword [r10 + rax*4 + 0x37f58]
add rcx, r10
jmp rcx
mov edx, dword [r14]
lea r9, [rbp - 1]
mov dword [rbp - 0x49], edx
lea r8, [rbp - 0x21]
mov eax, dword [r10 + rdx*8 + 0x7bc9c]
mov edx, 0x10e
lea rcx, [rax + rax*4]
mov eax, dword [r10 + rcx*8 + 0x6c4cc]
lea rcx, [rbp - 0x49]
imul eax, dword [r12]
add eax, dword [rsi]
mov dword [rbp - 0x21], eax
call fcn.180067b50
mov dword [0x18007bcb4], eax
test eax, eax
je 0x180037e30
xor dil, dil
mov ebx, reloc.SHELL32.dll_ILAppendID
mov eax, ebx
sub eax, 0x9a
je 0x180037ba3
cmp eax, 1
jne 0x180037bc7
mov byte [rbp - 0x29], 0
mov eax, dword [rbp - 0x29]
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.180069d20
mov rbx, qword [rsp + 0xe8]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [r14]
lea rdx, [rbp - 0x49]
mov dword [rbp - 0x49], eax
xor r9d, r9d
xor eax, eax
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
lea ecx, [rax + 0x1d]
call fcn.180066f30
inc ebx
cmp ebx, 0x9c
jb 0x180037b67
jmp 0x180037e30
mov eax, dword [r14]
xor edx, edx
mov qword [rsp + 0x28], r8
xor r9d, r9d
mov dword [rbp - 0x49], eax
xor r8d, r8d
lea rax, [rbp - 0x49]
lea ecx, [rdx + 0x13]
mov qword [rsp + 0x20], rax
call fcn.18005ac80
mov dword [0x18007bcb4], eax
test eax, eax
je 0x180037e30
xor dil, dil
mov ebx, 1
mov eax, ebx
sub eax, 1
je 0x180037c2d
sub eax, 1
je 0x180037c27
cmp eax, 1
je 0x180037b79
jmp 0x180037c51
mov byte [rbp - 0x29], dil
jmp 0x180037c51
mov eax, dword [r14]
lea rdx, [rbp - 0x49]
mov dword [rbp - 0x49], eax
xor r9d, r9d
xor eax, eax
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
lea ecx, [rax + 0x1d]
call fcn.180066f30
inc ebx
cmp ebx, 4
jb 0x180037c10
jmp 0x180037e30
movzx r9d, byte [rbp - 0x2d]
xor cl, cl
mov byte [r12], 0
nop dword [rax]
movzx eax, r9b
shr al, cl
inc cl
and al, 1
xor al, byte [r12]
mov byte [r12], al
cmp cl, 8
jle 0x180037c70
mov r9d, dword [rbp - 0x31]
cmp al, 1
jbe case.0x180037b15.13
mov eax, 0xfffffff1
jmp 0x180037b7c
movzx eax, byte [r14]
mov byte [rbp - 0x2d], al
jmp case.0x180037b15.13
mov ebx, 0xbb
nop
mov eax, ebx
sub eax, 0xbb
je 0x180037cc4
cmp eax, 1
je 0x180037b79
jmp 0x180037cd7
cmp r15d, 1
jge 0x180037cd3
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [rbp - 0x29], r15d
inc ebx
cmp ebx, 0xbd
jb 0x180037cb0
mov r9d, dword [rbp - 0x31]
mov edx, dword [rbp - 0x39]
test r13, r13
je 0x180037e54
movzx eax, byte [r12]
mov byte [r13], al
mov byte [r13 + 4], 1
jmp case.0x180037b15.13
mov r9, r13
mov dword [r13 + 8], 0xfffffffc
mov r8, r14
mov edx, 0x103
xor ecx, ecx
call fcn.180047ae0
mov r15d, eax
jmp 0x180037e30
mov ebx, 0x7e
nop dword [rax + rax]
cmp ebx, 0x7e
je 0x180037d46
cmp ebx, 0x3d86
jne 0x180037d6c
mov byte [rbp - 0x29], dil
jmp 0x180037b79
mov eax, dword [r14]
lea rdx, [rbp - 0x49]
mov qword [rsp + 0x28], r8
xor r9d, r9d
mov qword [rsp + 0x20], r8
xor r8d, r8d
mov dword [rbp - 0x49], eax
lea ecx, [r9 + 0x1d]
call fcn.180066f30
xor r8d, r8d
add ebx, 0x3d08
cmp ebx, 0x7a10
jbe 0x180037d30
jmp 0x180037e30
mov esi, r8d
lea rdi, [rbp - 1]
cmp byte [rdi], 0xff
je 0x180037dd4
mov ebx, 0xab
mov eax, ebx
sub eax, 0xab
je 0x180037da4
cmp eax, 1
je 0x180037b75
jmp 0x180037dca
mov eax, dword [r14]
lea rdx, [rbp - 0x49]
mov qword [rsp + 0x28], r8
xor r9d, r9d
mov qword [rsp + 0x20], r8
xor r8d, r8d
mov dword [rbp - 0x49], eax
lea ecx, [r9 + 0x1d]
call fcn.180066f30
xor r8d, r8d
inc ebx
cmp ebx, 0xad
jb 0x180037d90
inc esi
inc rdi
cmp esi, 0x10
jb 0x180037d86
mov rsi, qword [rbp - 0x11]
mov dil, 1
jmp 0x180037e30
test r14, r14
je 0x180037e68
cmp byte [r12], 1
ja 0x180037e5e
mov edx, 0x28
lea ecx, [rdx - 0x27]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov r13, rax
jmp 0x180037e30
mov eax, dword [r14]
xor edx, edx
mov qword [rsp + 0x28], r8
xor r9d, r9d
mov dword [rbp - 0x49], eax
xor r8d, r8d
lea rax, [rbp - 0x49]
lea ecx, [rdx + 0x13]
mov qword [rsp + 0x20], rax
call fcn.18005ac80
mov dword [0x18007bcb4], eax
mov edx, dword [rbp - 0x39]
mov r9d, dword [rbp - 0x31]
mov eax, dword [rbp - 0x41]
dec r9d
dec edx
mov dword [rbp - 0x31], r9d
mov dword [rbp - 0x39], edx
cmp r9d, eax
jbe 0x180037b79
jmp 0x180037aee
mov eax, 0xfffffffa
jmp 0x180037b7c
mov eax, 0xfffffffb
jmp 0x180037b7c
mov eax, 0xfffffff6
jmp 0x180037b7c
cmp dword [0x18007bcb4], 0
je 0x180037ed4
mov ebx, 0x87
mov eax, ebx
sub eax, 0x87
je 0x180037ea4
sub eax, 1
je 0x180037e99
cmp eax, 1
je 0x180037b79
jmp 0x180037eca
mov eax, dword [0x18007bcb4]
mov dword [rbp - 0x29], eax
jmp 0x180037eca
mov eax, dword [r14]
lea rdx, [rbp - 0x49]
mov qword [rsp + 0x28], r8
xor r9d, r9d
mov qword [rsp + 0x20], r8
xor r8d, r8d
mov dword [rbp - 0x49], eax
lea ecx, [r9 + 0x1d]
call fcn.180066f30
xor r8d, r8d
inc ebx
cmp ebx, 0x8a
jb 0x180037e80
mov rax, qword [rbp - 9]
lea r9, [rbp - 0x21]
mov r8d, 0x129
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x39]
mov eax, dword [rax]
mov dword [rbp - 0x21], eax
mov eax, dword [rsi]
mov dword [rbp - 0x39], eax
mov eax, dword [r12]
mov dword [rbp - 0x49], eax
mov eax, dword [r14]
mov dword [rbp - 0x29], eax
lea rax, [rbp - 0x49]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp - 0x19]
mov qword [rsp + 0x20], rax
call fcn.18001e1a0
mov dword [0x18007bcb4], eax
lea rdx, [rbp - 0x49]
mov eax, dword [r14]
xor r9d, r9d
mov dword [rbp - 0x49], eax
xor r8d, r8d
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
lea ecx, [rax + 0x1d]
call fcn.180066f30
mov eax, dword [0x18007bcb4]
jmp 0x180037b7c
movsx eax, byte [r12]
jmp 0x180037b7c