Function at 0x180007020
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x158
mov rax, qword [0x1800f6ae8]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov r15d, dword [rsp + 0x1c8]
mov r14, qword [rsp + 0x1c0]
mov qword [rsp + 0xa0], rdx
mov rdx, rcx
mov qword [rsp + 0x98], r9
lea eax, [r15 + 0x6d7]
mov qword [rsp + 0xa8], r8
mov dword [rsp + 0x34], eax
mov edi, dword [rsp + 0x34]
mov qword [rsp + 0x90], rcx
cmp r15d, eax
jae 0x1800072be
movzx r11d, byte [rsp + 0x30]
movzx eax, byte [rsp + 0x30]
mov rbp, qword [rsp + 0x50]
movzx esi, byte [rsp + 0x30]
mov r12d, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x34]
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x3c], eax
xor r8d, r8d
lea rcx, [0x180000000]
cmp r15d, 0x159
ja 0x1800073a1
je 0x180007481
lea eax, [r15 - 0x24]
cmp eax, 0xe0
ja case.0x1800070fe.44
movzx eax, byte [rcx + rax + 0x76ec]
lea r10, [0x180000000]
mov ecx, dword [rcx + rax*4 + 0x76c8]
add rcx, r10
jmp rcx
mov rbx, qword [rsp + 0x90]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_feof]
test eax, eax
jne case.0x1800070fe.44
nop dword [rax]
mov r8, rbx
lea rcx, [rsp + 0xc0]
mov edx, 0x80
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
je 0x180007481
lea r8, [rsp + 0x38]
lea rdx, [0x1800e51f0]
lea rcx, [rsp + 0xc0]
call fcn.1800d07c0
test eax, eax
jle 0x1800071f4
mov rax, qword [r14]
mov edx, dword [rsp + 0x38]
test rax, rax
je 0x1800071b3
mov rcx, qword [rax + 0x20]
cmp edx, dword [rcx + 0x14]
jb 0x18000718f
xor r9d, r9d
mov rdx, rcx
xor ecx, ecx
lea r8d, [r9 + 0x5e]
call fcn.18004c280
mov edx, dword [rsp + 0x38]
cmp rdx, rax
jb 0x1800071b3
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x1800071f4
mov r9, qword [rsp + 0xa8]
lea r8, [rsp + 0xc0]
mov rcx, qword [r14]
call rax
jmp 0x1800071f4
mov rax, qword [rsp + 0x98]
mov r9d, 0xbe
mov dword [rsp + 0x58], edx
xor r8d, r8d
lea rdx, [rsp + 0x58]
xor ecx, ecx
mov rax, qword [rax]
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
call fcn.1800a4b60
test eax, eax
jne 0x1800072c0
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_feof]
test eax, eax
je 0x180007120
jmp case.0x1800070fe.44
mov rbp, qword [rsp + 0x50]
jmp case.0x1800070fe.44
mov rax, qword [rsp + 0x50]
lea rcx, [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov eax, dword [r14]
mov dword [rsp + 0x60], eax
lea edx, [r8 + 0x47]
call fcn.180097ca0
mov dword [r14], eax
jmp case.0x1800070fe.44
mov qword [rsp + 0x78], r14
jmp case.0x1800070fe.44
mov rcx, qword [r9]
mov rbp, rdx
mov rax, qword [rsp + 0x48]
sub rax, rdx
cmp rax, rcx
cmovbe rcx, rax
mov qword [rsp + 0x80], rcx
jmp case.0x1800070fe.44
cmp qword [r9], 0
jne case.0x1800070fe.44
mov qword [rsp + 0x28], r9
lea r8, [rsp + 0x68]
xor r9d, r9d
mov dword [rsp + 0x68], 0xa
xor edx, edx
mov dword [rsp + 0x20], 1
xor ecx, ecx
call fcn.18005adc0
mov edx, eax
test eax, eax
je case.0x1800070fe.44
mov ecx, 0xd7
nop dword [rax]
mov eax, ecx
sub eax, 0xd7
je 0x1800072e4
cmp eax, 1
jne 0x1800072e6
mov eax, edi
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.1800d1090
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov edi, edx
inc ecx
cmp ecx, 0xd9
jb 0x1800072b0
jmp case.0x1800070fe.44
mov rcx, qword [rsp + 0x78]
mov eax, 1
xchg dword [rcx + 0x120], eax
nop word [rax + rax]
mov ebx, 0xe2
mov eax, ebx
sub eax, 0xe1
je 0x180007333
cmp eax, 1
jne 0x18000734f
xor eax, eax
lock cmpxchg dword [rcx + 0x120], r8d
mov r13d, eax
jmp 0x18000734f
test r13d, r13d
je 0x1800074a8
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rsp + 0x78]
xor r8d, r8d
dec ebx
cmp ebx, 0xe0
ja 0x180007315
jmp 0x180007310
mov rax, qword [r14]
test rax, rax
je case.0x1800070fe.44
cmp dword [rax], 0x7f2bb701
je case.0x1800070fe.44
mov ecx, 0x4a
nop dword [rax + rax]
mov eax, ecx
sub eax, 0x49
je 0x1800072be
cmp eax, 1
jne 0x180007395
mov edi, 0x7f2bb701
dec ecx
cmp ecx, 0x48
ja 0x180007380
jmp case.0x1800070fe.44
cmp r15d, 0x239
ja 0x18000760e
je 0x1800074b3
mov eax, r15d
sub eax, 0x169
je 0x1800074a8
sub eax, 2
je 0x18000748c
sub eax, 0x55
je 0x18000745a
cmp eax, 0x12
jne case.0x1800070fe.44
mov rcx, qword [rsp + 0x80]
mov rax, qword [r9]
sub rax, rcx
and eax, 7
mov qword [rsp + 0x50], rax
test rcx, rcx
je case.0x1800070fe.44
mov r8, rcx
lea r10, [0x180000000]
mov edx, 0x51
nop dword [rax + rax]
cmp edx, 0x51
je 0x180007436
cmp edx, 0x282f
jne 0x180007441
mov ecx, dword [r14]
movzx eax, sil
shr ecx, 8
mov eax, dword [r10 + rax*4 + 0xd5da0]
xor eax, ecx
mov dword [r14], eax
jmp 0x180007441
movzx esi, byte [r14]
xor sil, byte [rbp]
inc rbp
add edx, 0x27de
cmp edx, 0x4fbc
jbe 0x180007410
sub r8, 1
jne 0x180007406
jmp case.0x1800070fe.44
mov ecx, 0xf3
nop
mov eax, ecx
sub eax, 0xf3
je 0x180007474
cmp eax, 1
je 0x1800072be
jmp 0x180007477
mov edi, r8d
inc ecx
cmp ecx, 0xf5
jb 0x180007460
mov r15d, 0x159
jmp case.0x1800070fe.44
mov rax, qword [r9]
sub rax, qword [rsp + 0x80]
shr rax, 3
mov qword [rsp + 0xb8], rax
jmp case.0x1800070fe.44
mov r15d, 0x169
jmp case.0x1800070fe.44
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0xb8]
sub rbx, 4
mov qword [rsp + 0x48], rbx
test rax, rax
je case.0x1800070fe.44
mov r15d, dword [rsp + 0x3c]
mov qword [rsp + 0x88], rax
nop
movzx r10d, byte [rsp + 0x30]
mov r9d, 8
nop dword [rax]
cmp r8d, 7
ja case.default.0x18000750e
mov eax, r8d
lea rdx, [0x180000000]
mov ecx, dword [rcx + rax*4 + 0x77d0]
add rcx, rdx
jmp rcx
mov esi, r12d
shr esi, 0x18
jmp 0x1800075c7
mov r11d, r12d
shr r11d, 8
jmp 0x1800075c7
mov r11d, r12d
shr r11d, 8
mov r15d, r12d
shr r15d, 0x10
jmp 0x1800075c7
mov eax, r12d
movzx ecx, r10b
shr eax, 0x18
movzx esi, al
movzx eax, r15b
mov edx, dword [rdx + rcx*4 + 0xd79a0]
lea rcx, [0x180000000]
xor edx, dword [rcx + rax*4 + 0xd71a0]
movzx eax, r11b
xor edx, dword [rcx + rax*4 + 0xd75a0]
xor edx, dword [rcx + rsi*4 + 0xd6da0]
mov dword [r14], edx
jmp case.default.0x18000750e
movzx ecx, r10b
movzx eax, r15b
mov edx, dword [rdx + rcx*4 + 0xd69a0]
lea rcx, [0x180000000]
xor edx, dword [rcx + rax*4 + 0xd61a0]
movzx eax, r11b
xor edx, dword [rcx + rax*4 + 0xd65a0]
movzx eax, sil
xor edx, dword [rcx + rax*4 + 0xd5da0]
xor dword [r14], edx
jmp case.default.0x18000750e
mov r12d, dword [rbx + 4]
add rbx, 4
jmp 0x1800075c3
mov r12d, dword [r14]
add rbx, 4
xor r12d, dword [rbx]
movzx r10d, r12b
lea rcx, [0x180000000]
inc r8d
sub r9, 1
jne 0x1800074f0
sub qword [rsp + 0x88], 1
mov r8d, r9d
mov byte [rsp + 0x30], r10b
mov dword [rsp + 0x3c], r15d
mov dword [rsp + 0x40], r11d
mov qword [rsp + 0x48], rbx
jne 0x1800074e0
mov r15d, dword [rsp + 0x1c8]
jmp case.0x1800070fe.44
mov eax, r15d
sub eax, 0x2a0
je 0x180007644
sub eax, 0x67
je 0x180007628
cmp eax, 0x67
je 0x1800072be
jmp case.0x1800070fe.44
mov eax, dword [r14]
lea rcx, [rsp + 0x70]
xor r8d, r8d
mov dword [rsp + 0x70], eax
lea edx, [r8 + 0x47]
call fcn.180097ca0
mov edi, eax
jmp case.0x1800070fe.44
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
add rbx, 4
mov qword [rsp + 0x48], rbx
mov rbp, rbx
test rax, rax
je case.0x1800070fe.44
mov edx, dword [r14]
lea r10, [0x180000000]
mov r8, rax
nop dword [rax]
movzx eax, byte [r14]
xor al, byte [rbp]
inc rbp
movzx esi, al
mov eax, edx
shr eax, 8
mov edx, dword [r10 + rsi*4 + 0xd5da0]
xor edx, eax
mov dword [r14], edx
sub r8, 1
jne 0x180007670
add r15d, 0x67
mov dword [rsp + 0x1c8], r15d
cmp r15d, dword [rsp + 0x34]
jae 0x1800072be
mov r11d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x90]
mov r9, qword [rsp + 0x98]
jmp 0x1800070b9