Function at 0x140003e30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push r14
push r15
sub rsp, 0x80
mov ecx, dword [rsp + 0xc8]
xor r10d, r10d
mov eax, ecx
mov dword [rsp + 0x20], r10d
shr eax, 3
mov r14, r9
cmp ecx, 0x2000
mov dword [rsp + 0x28], r10d
mov r9, rdx
mov dword [rsp + 0x2c], r10d
mov edx, ecx
mov rbx, r8
cmovb edx, eax
mov r8d, 0x102
mov eax, 0x40
mov dword [rsp + 0x24], edx
cmovae eax, r8d
mov r15d, r10d
mov dword [rsp + 0x34], eax
lea eax, [rcx - 1]
cmp eax, 0x7fff
ja 0x14000454d
lea edx, [rcx - 1]
mov dword [rsp + 0x38], edx
test ecx, edx
je 0x140003ec7
mov eax, 0x5a
add rsp, 0x80
pop r15
pop r14
pop rbx
ret
cmp dword [rsp + 0xd8], r8d
mov ecx, r8d
mov r8, qword [rsp + 0xc0]
cmovbe ecx, dword [rsp + 0xd8]
mov dword [rsp + 0x30], ecx
cmp r14, r8
jae 0x14000453d
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], rdi
mov ecx, edx
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x48], rcx
nop
mov rsi, rcx
lea rax, [r14 + 2]
and rsi, r14
mov r13d, r10d
mov edx, r10d
cmp rax, r8
jae 0x140003f42
movzx eax, byte [r14 + rbx + 1]
movzx edx, byte [r14 + rbx + 2]
shl edx, 4
xor edx, eax
movzx eax, byte [r14 + rbx]
shl edx, 4
xor edx, eax
jmp 0x140003f88
mov r9, r8
mov r8, r10
sub r9, r14
je 0x140003f78
mov rcx, r10
lea r10, [r14 + rbx]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8 + r10]
inc r8
shl eax, cl
add rcx, 8
xor edx, eax
cmp r8, r9
jne 0x140003f60
xor r10d, r10d
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xa8]
movzx ebp, dx
test ebp, ebp
jne 0x140003fdc
test r15d, r15d
jne 0x140003fc5
lea rdx, [rbx + r14]
lea rcx, [rdx + 0x102]
mov r15, rdx
lea rax, [r8 + rbx]
cmp rcx, rax
cmova rcx, rax
cmp rdx, rcx
je 0x140003fc0
cmp byte [r15], 0
jne 0x140003fc0
inc r15
cmp r15, rcx
jne 0x140003fb2
sub r15d, edx
jmp 0x140003fdf
mov ecx, r15d
add rcx, r14
cmp rcx, r8
ja 0x140003fd7
cmp byte [rcx + rbx - 1], 0
je 0x140003fdf
dec r15d
jmp 0x140003fdf
mov r15d, r10d
mov rax, qword [r9 + 0x10]
mov dword [rax + rsi*4], ebp
mov rax, qword [r9]
mov ecx, dword [rax + rbp*4]
lea rdx, [rax + rbp*4]
cmp ecx, 0xffffffff
je 0x140003ffd
mov rax, qword [r9 + 8]
mov word [rax + rsi*2], cx
mov rax, qword [r9 + 0x28]
movzx ecx, r15w
mov dword [rdx], esi
mov word [rax + rsi*2], cx
mov rax, qword [r9 + 0x18]
lea rdx, [rax + rcx*4]
mov ecx, dword [rax + rcx*4]
cmp ecx, 0xffffffff
je 0x140004023
mov rax, qword [r9 + 0x20]
mov word [rax + rsi*2], cx
mov rax, qword [r9 + 8]
mov r14d, r10d
mov dword [rdx], esi
mov r12d, r10d
mov rdx, qword [rsp + 0xb8]
mov edi, r10d
movzx r11d, word [rax + rsi*2]
lea rax, [rdx + 0x102]
cmp r8, rax
cmovb rax, r8
add rbx, rax
cmp dword [rsp + 0x24], 0
jbe 0x140004176
mov r10d, r11d
nop
mov eax, dword [rsp + 0xc8]
inc r13d
mov r9d, esi
sub r9d, r11d
add eax, r9d
cmp r10, rsi
cmova r9d, eax
cmp r9d, edi
jb 0x140004163
mov edi, r9d
test r9d, r9d
je 0x14000410c
mov rax, qword [rsp + 0xb0]
mov r8, rdx
mov ecx, r9d
add rax, rdx
sub r8, rcx
add r8, qword [rsp + 0xb0]
cmp r15d, 3
jb 0x1400040d9
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rcx + 0x28]
movzx edx, word [rcx + r10*2]
cmp edx, r15d
cmova edx, r15d
mov ecx, edx
mov rdx, qword [rsp + 0xb8]
add r8, rcx
add rax, rcx
cmp rax, rbx
je 0x1400040f2
sub r8, rax
movzx ecx, byte [rax]
cmp byte [r8 + rax], cl
jne 0x1400040f2
inc rax
cmp rax, rbx
jne 0x1400040e1
sub eax, edx
sub eax, dword [rsp + 0xb0]
cmp eax, r14d
jbe 0x14000410c
mov r14d, eax
mov r12d, r9d
cmp eax, dword [rsp + 0x30]
jae 0x140004163
mov r9, qword [rsp + 0xa8]
mov rax, qword [r9 + 8]
movzx ecx, word [rax + r10*2]
cmp r11d, ecx
je 0x14000416b
cmp r15d, 3
jb 0x140004147
cmp r14d, r15d
jbe 0x140004147
mov rax, qword [r9 + 0x20]
movzx r11d, word [rax + r10*2]
mov rax, qword [r9 + 0x28]
mov r10d, r11d
movzx ecx, word [rax + r11*2]
cmp ecx, r15d
jmp 0x140004154
mov rax, qword [r9 + 0x10]
mov r11, rcx
mov r10, rcx
cmp dword [rax + rcx*4], ebp
jne 0x14000416b
cmp r13d, dword [rsp + 0x24]
jb 0x140004060
jmp 0x14000416b
mov r9, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xc0]
xor r10d, r10d
cmp dword [rsp + 0xe0], 0
je 0x140004268
cmp dword [rsp + 0x20], 0
jne 0x1400041c4
cmp r14d, 3
jb 0x140004462
cmp r14d, dword [rsp + 0x34]
ja 0x140004272
cmp r14d, 0x102
jae 0x140004272
mov dword [rsp + 0x20], 1
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x2c], r12d
jmp 0x1400044d9
mov dword [rsp + 0x20], r10d
test rdx, rdx
je 0x14000450e
mov ecx, dword [rsp + 0x28]
lea eax, [rcx + 1]
cmp r14d, eax
jbe 0x14000423d
mov r13, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xb0]
mov rdi, qword [r13 + 8]
mov rbx, qword [r13 + 0x10]
inc rdi
movzx ebp, byte [rdx + rax - 1]
lea rsi, [rdi*4]
cmp rsi, rbx
jbe 0x14000422f
mov rcx, qword [r13]
shr rbx, 1
add rbx, rsi
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14000451e
mov qword [r13 + 0x10], rbx
mov qword [r13], rax
mov rax, qword [r13]
mov qword [r13 + 8], rdi
mov dword [rsi + rax - 4], ebp
jmp 0x140004268
mov rax, qword [r9]
mov r14d, ecx
mov r12d, dword [rsp + 0x2c]
dec rdx
mov ecx, r15d
mov qword [rsp + 0xb8], rdx
mov dword [rax + rbp*4], 0xffffffff
mov rax, qword [r9 + 0x18]
mov dword [rax + rcx*4], 0xffffffff
cmp r14d, 3
jb 0x140004462
cmp r12d, dword [rsp + 0xc8]
ja 0x140004516
cmp r14d, dword [rsp + 0xd0]
jb 0x140004462
cmp r14d, 3
jne 0x1400042a1
cmp r12d, 0x1000
ja 0x140004462
mov rcx, qword [rsp + 0xa0]
mov r8d, r12d
mov edx, r14d
call fcn.1400039c0
cmp r14d, 1
jbe 0x1400044d1
mov rcx, qword [rsp + 0xa8]
lea ebx, [r14 - 1]
mov r10, qword [rsp + 0xb8]
mov rdi, 0xffffffffffffff00
add r10, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x38]
mov r9, qword [rcx + 0x18]
mov rsi, qword [rcx + 0x10]
mov r12, qword [rcx]
mov r13, qword [rcx + 0x28]
sub rdi, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
mov qword [rsp + 0x40], r9
nop dword [rax]
mov rdx, qword [rsp + 0xc0]
lea rax, [rdi + 0x102]
inc r14
inc r10
xor ecx, ecx
mov r11, rbp
and r11, r14
add rax, r10
mov r8d, ecx
cmp rax, rdx
jae 0x140004356
movzx eax, byte [r10 + 1]
movzx r8d, byte [r10 + 2]
shl r8d, 4
xor r8d, eax
movzx eax, byte [r10]
shl r8d, 4
xor r8d, eax
jmp 0x140004395
cmp r14, rdx
jae 0x14000439e
mov r9, rdx
mov rdx, rcx
sub r9, r14
je 0x140004388
nop word [rax + rax]
movzx eax, byte [rdx + r10]
inc rdx
shl eax, cl
add rcx, 8
xor r8d, eax
cmp rdx, r9
jne 0x140004370
xor ecx, ecx
mov rdx, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x40]
movzx r8d, r8w
test r8d, r8d
jne 0x140004404
test r15d, r15d
jne 0x1400043e5
mov rcx, qword [rsp + 0xb0]
lea rax, [r10 + 0x102]
add rcx, qword [rsp + 0xc0]
lea rdx, [r10 + 0x102]
cmp rax, rcx
mov rax, r10
cmova rdx, rcx
cmp r10, rdx
je 0x1400043dd
cmp byte [rax], 0
jne 0x1400043dd
inc rax
cmp rax, rdx
jne 0x1400043d0
sub eax, r10d
mov r15d, eax
jmp 0x140004407
mov ecx, r15d
add rcx, r14
cmp rcx, rdx
ja 0x1400043ff
mov rax, qword [rsp + 0xb0]
cmp byte [rcx + rax - 1], 0
je 0x140004407
dec r15d
jmp 0x140004407
mov r15d, ecx
mov eax, r8d
mov dword [rsi + r11*4], r8d
lea rdx, [r12 + rax*4]
mov ecx, dword [rdx]
mov r8, qword [rsp + 0xa8]
cmp ecx, 0xffffffff
je 0x14000442a
mov rax, qword [r8 + 8]
mov word [rax + r11*2], cx
mov dword [rdx], r11d
movzx eax, r15w
lea rdx, [r9 + rax*4]
mov word [r13 + r11*2], ax
mov ecx, dword [rdx]
cmp ecx, 0xffffffff
je 0x14000444b
mov rax, qword [r8 + 0x20]
mov word [rax + r11*2], cx
mov dword [rdx], r11d
sub rbx, 1
jne 0x140004310
mov r8, qword [rsp + 0xc0]
jmp 0x1400044e1
mov r12, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
mov rdi, qword [r12 + 8]
mov rbx, qword [r12 + 0x10]
inc rdi
movzx ebp, byte [r14 + rax]
lea rsi, [rdi*4]
cmp rsi, rbx
jbe 0x1400044ba
mov rcx, qword [r12]
shr rbx, 1
add rbx, rsi
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14000451e
mov qword [r12 + 0x10], rbx
mov qword [r12], rax
mov rax, qword [r12]
mov r8, qword [rsp + 0xc0]
mov qword [r12 + 8], rdi
mov dword [rsi + rax - 4], ebp
jmp 0x1400044e1
mov r8, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xb8]
inc r14
xor r10d, r10d
mov qword [rsp + 0xb8], r14
cmp r14, r8
jae 0x140004524
mov r9, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x48]
jmp 0x140003f10
mov r10d, 0x51
jmp 0x140004524
mov r10d, 0x56
jmp 0x140004524
mov r10d, 0x53
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov r13, qword [rsp + 0x58]
mov eax, r10d
add rsp, 0x80
pop r15
pop r14
pop rbx
ret
mov eax, 0x3c
add rsp, 0x80
pop r15
pop r14
pop rbx
ret