Function at 0x140008b50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
cmp dword [rsp + 0xd8], 0x1fff
mov eax, dword [rsp + 0xd8]
mov r15, rdx
mov qword [rsp + 0xb0], rcx
mov edx, dword [rsp + 0xe8]
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0xc8], r9
ja 0x140009560
shr eax, 3
mov dword [rsp + 0x58], 0x40
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x54], 0x3c
sub eax, 1
cmp eax, 0x7fff
ja 0x140008f5a
mov edi, eax
and edi, dword [rsp + 0xd8]
mov dword [rsp + 0x54], edi
jne 0x140009690
mov ecx, 0x102
mov rdi, qword [rsp + 0xc8]
cmp edx, ecx
cmovbe ecx, edx
mov dword [rsp + 0x48], ecx
cmp qword [rsp + 0xd0], rdi
jbe 0x140008f5a
mov qword [rsp + 0x38], rax
xor r12d, r12d
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x4c], 0
nop dword [rax]
mov rax, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x38]
and rbx, qword [rsp + 0xc8]
add r13, rax
lea rdx, [rax + 2]
movzx eax, byte [r13]
cmp qword [rsp + 0xd0], rdx
ja 0x140008fb0
mov r8, qword [rsp + 0xd0]
xor esi, esi
sub r8, qword [rsp + 0xc8]
xor eax, eax
nop dword [rax + rax]
movzx edx, byte [r13 + rax]
lea ecx, [rax*8]
add rax, 1
shl edx, cl
xor esi, edx
cmp r8, rax
jne 0x140008c70
movzx eax, si
mov dword [rsp + 0x20], eax
mov r10d, dword [rsp + 0x20]
test r10d, r10d
jne 0x140008fe6
test r12d, r12d
je 0x14000941a
mov eax, r12d
add rax, qword [rsp + 0xc8]
cmp qword [rsp + 0xd0], rax
jb 0x140008ccc
mov rdi, qword [rsp + 0xc0]
cmp byte [rdi + rax - 1], 0
je 0x140008cd0
sub r12d, 1
movzx eax, r12w
mov r9d, r12d
shl rax, 2
mov esi, dword [rsp + 0x20]
mov rdx, qword [r15 + 0x10]
mov dword [rdx + rbx*4], esi
mov rdx, qword [r15]
lea rcx, [rsi*4]
mov qword [rsp + 0x40], rsi
add rdx, rcx
mov r8d, dword [rdx]
cmp r8d, 0xffffffff
je 0x140008d11
mov rdx, qword [r15 + 8]
mov word [rdx + rbx*2], r8w
add rcx, qword [r15]
mov rdx, rcx
mov dword [rdx], ebx
mov rdx, qword [r15 + 0x28]
mov word [rdx + rbx*2], r9w
mov rdx, qword [r15 + 0x18]
add rdx, rax
mov ecx, dword [rdx]
cmp ecx, 0xffffffff
je 0x140008d39
mov rdx, qword [r15 + 0x20]
mov word [rdx + rbx*2], cx
add rax, qword [r15 + 0x18]
mov rdx, rax
mov rax, qword [rsp + 0xc8]
mov r9d, dword [rsp + 0x30]
mov dword [rdx], ebx
mov rbp, qword [r15 + 8]
lea r10, [rax + 0x102]
cmp r10, qword [rsp + 0xd0]
cmova r10, qword [rsp + 0xd0]
movzx r8d, word [rbp + rbx*2]
add r10, qword [rsp + 0xc0]
test r9d, r9d
je 0x1400092da
mov esi, dword [rsp + 0xd8]
mov edi, ebx
xor r14d, r14d
xor edx, edx
mov dword [rsp + 0x34], 0
mov r11d, 1
add esi, ebx
jmp 0x140008df4
movzx edx, word [rbp + r9*2]
mov rax, rdx
cmp edx, r8d
je 0x140008e88
cmp r12d, 2
jbe 0x140008f90
cmp r12d, r14d
jae 0x140008f90
mov rax, qword [r15 + 0x20]
mov rdx, qword [r15 + 0x28]
movzx r8d, word [rax + r9*2]
movzx eax, word [rdx + r8*2]
cmp r12d, eax
jne 0x140008e88
lea eax, [r11 + 1]
cmp r11d, dword [rsp + 0x30]
je 0x140008e88
mov edx, ecx
mov r11d, eax
mov r9d, r8d
mov eax, edi
mov ecx, esi
sub eax, r8d
sub ecx, r8d
cmp rbx, r9
cmovae ecx, eax
cmp ecx, edx
jb 0x140008e88
test ecx, ecx
je 0x140008da0
mov rdx, qword [rsp + 0xc8]
mov eax, ecx
sub rdx, rax
add rdx, qword [rsp + 0xc0]
cmp r12d, 2
jbe 0x140008f70
mov rax, qword [r15 + 0x28]
movzx eax, word [rax + r9*2]
cmp eax, r12d
cmova rax, r12
add rdx, rax
add rax, r13
cmp r10, rax
je 0x140008e68
mov dword [rsp + 0x28], ecx
jmp 0x140008e5d
add rax, 1
add rdx, 1
cmp r10, rax
je 0x140008e64
movzx ecx, byte [rax]
cmp byte [rdx], cl
je 0x140008e50
mov ecx, dword [rsp + 0x28]
sub rax, r13
cmp eax, r14d
jbe 0x140008da0
cmp dword [rsp + 0x48], eax
mov dword [rsp + 0x34], ecx
mov r14d, eax
ja 0x140008da0
nop dword [rax]
cmp r14d, 2
mov r8d, dword [rsp + 0xf0]
seta al
mov ebx, eax
test r8d, r8d
jne 0x140008ff8
mov edi, dword [rsp + 0x34]
cmp dword [rsp + 0xd8], edi
setb bl
and ebx, eax
test bl, bl
jne 0x1400093de
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov rax, qword [rax]
mov r8, rdx
mov r10, rcx
mov r9, rax
cmp r14d, 2
jbe 0x1400092fc
cmp r14d, dword [rsp + 0xe0]
jb 0x140008f02
cmp r14d, 3
jne 0x140009051
cmp dword [rsp + 0x34], 0x1000
jbe 0x140009051
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
movzx esi, byte [rdi + rbx]
lea rdi, [rdx + 1]
lea rbx, [rdi*4]
cmp rbx, rcx
ja 0x1400093eb
mov rcx, qword [rsp + 0xb0]
mov qword [rcx + 8], rdi
mov dword [rax + rbx - 4], esi
add qword [rsp + 0xc8], 1
mov rax, qword [rsp + 0xc8]
cmp qword [rsp + 0xd0], rax
ja 0x140008c20
mov eax, dword [rsp + 0x54]
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, r13
cmp r10, r13
jne 0x140008e49
movzx eax, word [rbp + r9*2]
movzx edx, ax
cmp r8d, edx
je 0x140008e88
nop
mov r8, qword [r15 + 0x10]
mov r9d, dword [rsp + 0x20]
cmp dword [r8 + rax*4], r9d
jne 0x140008e88
mov r8d, edx
jmp 0x140008de0
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xc8]
movzx edx, byte [rdi + rsi + 1]
movzx esi, byte [rdi + rsi + 2]
shl edx, 4
shl esi, 8
xor esi, edx
xor esi, eax
mov dword [rsp + 0x20], esi
mov r10d, dword [rsp + 0x20]
test r10d, r10d
je 0x140008c9f
xor r12d, r12d
xor eax, eax
xor r9d, r9d
jmp 0x140008cdb
mov ecx, dword [rsp + 0x4c]
test ecx, ecx
jne 0x140009360
test al, al
je 0x140009478
cmp r14d, dword [rsp + 0x58]
jbe 0x1400094cb
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0xd8], eax
jb 0x1400093de
mov rax, qword [rsp + 0xb0]
cmp r14d, dword [rsp + 0xe0]
mov dword [rsp + 0x4c], 0
mov rdx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov rax, qword [rax]
jb 0x140008f02
mov esi, dword [rsp + 0x34]
mov ebx, r14d
mov r10d, 0x1c
mov r9d, 1
nop dword [rax]
lea r8, [r10 + r9]
lea rdi, [0x140190c40]
shr r8, 1
mov r11d, dword [rdi + r8*4]
cmp rbx, r11
ja 0x14000933b
lea r10, [r8 - 1]
cmp r10, r9
jae 0x140009068
cmp r9, 0x1d
jne 0x140009571
sub r9, 1
mov dword [rsp + 0x20], r9d
lea rdi, [0x140190c40]
mov r9d, r9d
mov ebp, r14d
mov r10d, 0x1d
sub ebp, dword [rdi + r9*4]
lea rbx, [0x140190b40]
mov r9d, 1
nop dword [rax + rax]
lea r8, [r10 + r9]
shr r8, 1
mov r11d, dword [rbx + r8*4]
cmp rsi, r11
ja 0x1400095c2
lea r10, [r8 - 1]
cmp r10, r9
jae 0x1400090c8
cmp r9, 0x1e
je 0x1400095b9
mov r8d, dword [rbx + r9*4]
cmp rsi, r8
jb 0x1400095b9
mov r13d, r9d
lea rdi, [rdx + 4]
mov r9d, r9d
mov r8d, dword [rsp + 0x34]
sub r8d, dword [rbx + r9*4]
lea rbx, [rdi*4]
cmp rbx, rcx
ja 0x140009657
mov edx, dword [rsp + 0x20]
mov rsi, qword [rsp + 0xb0]
add edx, 0x101
mov qword [rsi + 8], rdi
mov dword [rax + rbx - 0x10], edx
mov rax, qword [rsi]
mov dword [rax + rbx - 0xc], ebp
mov rax, qword [rsi]
mov dword [rax + rbx - 8], r13d
mov rax, qword [rsi]
mov dword [rax + rbx - 4], r8d
mov rax, qword [rsp + 0xc8]
mov r11, qword [rsp + 0xc0]
mov edi, 1
mov r13, qword [rsp + 0xc0]
add r13, qword [rsp + 0xd0]
lea rbp, [rax + 1]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbp
mov rsi, qword [rsp + 0xd0]
add r11, rbp
lea r10, [rax - 1]
mov rax, qword [rsp + 0xc8]
mov r13, qword [rsp + 0x38]
sub r10, qword [rsp + 0xc8]
sub edi, eax
jmp 0x140009250
movzx edx, byte [r11 + 1]
movzx eax, byte [r11 + 2]
shl edx, 4
shl eax, 8
xor edx, eax
movzx eax, byte [r11]
xor edx, eax
test edx, edx
je 0x14000929f
mov ecx, edx
xor r12d, r12d
xor eax, eax
xor r8d, r8d
shl rcx, 2
mov rbp, qword [r15 + 0x10]
mov dword [rbp + r9*4], edx
mov rdx, qword [r15]
add rdx, rcx
mov ebp, dword [rdx]
cmp ebp, 0xffffffff
je 0x14000920a
mov rdx, qword [r15 + 8]
mov word [rdx + r9*2], bp
add rcx, qword [r15]
mov rdx, rcx
mov dword [rdx], r9d
mov rdx, qword [r15 + 0x28]
mov word [rdx + r9*2], r8w
mov rcx, qword [r15 + 0x18]
add rcx, rax
mov edx, dword [rcx]
cmp edx, 0xffffffff
je 0x1400095d4
mov rcx, qword [r15 + 0x20]
add r11, 1
sub r10, 1
mov word [rcx + r9*2], dx
mov rdx, qword [r15 + 0x18]
mov dword [rdx + rax], r9d
lea eax, [rdi + rbx]
cmp eax, r14d
jae 0x1400095eb
mov rax, rbx
lea rbx, [rax + 1]
add rax, 3
mov r9, rbx
and r9, r13
cmp rsi, rax
ja 0x1400091b7
cmp rsi, rbx
jbe 0x14000929f
xor edx, edx
xor eax, eax
lea rbp, [r11 - 1]
nop dword [rax]
movzx r8d, byte [rbp + rax + 1]
lea ecx, [rax*8]
add rax, 1
shl r8d, cl
xor edx, r8d
cmp r10, rax
jne 0x140009278
movzx edx, dx
test edx, edx
jne 0x1400091d7
test r12d, r12d
je 0x14000960f
mov eax, r12d
add rax, rbx
cmp rsi, rax
jb 0x1400092c2
mov rcx, qword [rsp + 0xc0]
cmp byte [rcx + rax - 1], 0
je 0x1400092c6
sub r12d, 1
movzx eax, r12w
mov r8d, r12d
xor ecx, ecx
xor edx, edx
shl rax, 2
jmp 0x1400091e5
mov eax, dword [rsp + 0xf0]
test eax, eax
jne 0x14000946b
mov rax, qword [rsp + 0xb0]
mov r8, qword [rax + 8]
mov r10, qword [rax + 0x10]
mov r9, qword [rax]
mov rdi, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xc0]
movzx esi, byte [rax + rdi]
lea rdi, [r8 + 1]
lea rbx, [rdi*4]
cmp rbx, r10
ja 0x140009499
mov rax, qword [rsp + 0xb0]
mov qword [rax + 8], rdi
mov dword [r9 + rbx - 4], esi
jmp 0x140008f3b
lea r9, [r8 + 1]
cmp r9, r10
jbe 0x140009068
cmp r9, 0x1d
je 0x140009096
jmp 0x140009571
cmp qword [rsp + 0xc8], 0
je 0x14000969d
mov edi, dword [rsp + 0x50]
mov rax, qword [rsp + 0xc8]
lea edx, [rdi + 1]
sub rax, 1
cmp edx, r14d
jb 0x1400094e5
mov rdx, qword [r15]
mov r14d, edi
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x4c], 0
cmp r14d, 2
mov qword [rsp + 0xc8], rax
mov dword [rdx + rdi*4], 0xffffffff
mov rcx, qword [r15 + 0x18]
mov edx, r12d
seta bl
mov edi, dword [rsp + 0x5c]
cmp dword [rsp + 0xd8], edi
mov dword [rcx + rdx*4], 0xffffffff
setb dl
and ebx, edx
mov dword [rsp + 0x34], edi
test bl, bl
je 0x140008eba
mov dword [rsp + 0x54], 0x56
jmp 0x140008f5a
shr rcx, 1
lea rbp, [rcx + rbx]
mov rcx, rax
mov rdx, rbp
call sym.realloc
test rax, rax
je 0x1400096aa
mov rcx, qword [rsp + 0xb0]
mov qword [rcx + 0x10], rbp
mov qword [rcx], rax
jmp 0x140008f2b
lea rax, [r13 + 0x102]
mov rdx, qword [rsp + 0xc0]
add rdx, qword [rsp + 0xd0]
cmp rax, rdx
cmovbe rdx, rax
mov rax, r13
cmp rdx, r13
jne 0x140009451
jmp 0x140009456
add rax, 1
cmp rdx, rax
je 0x140009456
cmp byte [rax], 0
je 0x140009448
sub rax, r13
mov r12d, eax
mov r9d, eax
movzx eax, ax
shl rax, 2
jmp 0x140008cdb
mov dword [rsp + 0x34], 0
xor r14d, r14d
xor ebx, ebx
mov edx, dword [rsp + 0x4c]
test edx, edx
jne 0x140009360
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0xd8], eax
setb al
and ebx, eax
jmp 0x140008eb2
shr r10, 1
mov rcx, r9
lea rbp, [r10 + rbx]
mov rdx, rbp
call sym.realloc
mov r9, rax
test rax, rax
je 0x1400096aa
mov rax, qword [rsp + 0xb0]
mov qword [rax + 0x10], rbp
mov qword [rax], r9
jmp 0x140009325
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x4c], 1
mov dword [rsp + 0x5c], eax
jmp 0x140008f3b
mov rax, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb0]
movzx ebp, byte [rax + rdi - 1]
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rcx]
mov rax, qword [rax + 8]
lea rdi, [rax + 1]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb0]
lea rsi, [rdi*4]
mov rax, qword [rax + 0x10]
cmp rsi, rax
ja 0x14000958a
mov rax, qword [rsp + 0xb0]
mov dword [rsp + 0x4c], 0
mov qword [rax + 8], rdi
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0xd8], eax
mov dword [rcx + rsi - 4], ebp
setb al
and ebx, eax
jmp 0x140008eb2
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x58], 0x101
jmp 0x140008ba9
lea rdi, [0x140190c40]
mov r8d, dword [rdi + r9*4]
cmp rbx, r8
jae 0x14000909a
jmp 0x140009096
shr rax, 1
lea r13, [rax + rsi]
mov rdx, r13
call sym.realloc
mov rcx, rax
test rax, rax
je 0x1400096aa
mov rax, qword [rsp + 0xb0]
mov qword [rax + 0x10], r13
mov qword [rax], rcx
jmp 0x140009533
sub r9, 1
jmp 0x1400090fc
lea r9, [r8 + 1]
cmp r9, r10
jbe 0x1400090c8
jmp 0x1400090e5
lea eax, [rdi + rbx]
mov dword [rcx], r9d
add r11, 1
sub r10, 1
cmp eax, r14d
jb 0x14000924d
mov eax, 2
mov rbp, qword [rsp + 0x20]
cmp r14d, eax
cmovae eax, r14d
sub eax, 2
add rax, rbp
mov qword [rsp + 0xc8], rax
jmp 0x140008f3b
mov rax, qword [rsp + 0x28]
lea rdx, [r11 + 0x102]
cmp rax, rdx
cmovbe rdx, rax
mov rax, r11
cmp r11, rdx
jne 0x140009639
jmp 0x14000963e
add rax, 1
cmp rdx, rax
je 0x14000963e
cmp byte [rax], 0
je 0x140009630
sub rax, r11
xor ecx, ecx
xor edx, edx
mov r12d, eax
mov r8d, eax
movzx eax, ax
shl rax, 2
jmp 0x1400091e5
shr rcx, 1
mov dword [rsp + 0x28], r8d
lea rsi, [rcx + rbx]
mov rcx, rax
mov rdx, rsi
call sym.realloc
test rax, rax
je 0x140009151
mov rcx, qword [rsp + 0xb0]
mov r8d, dword [rsp + 0x28]
mov qword [rcx + 0x10], rsi
mov qword [rcx], rax
jmp 0x140009120
mov dword [rsp + 0x54], 0x5a
jmp 0x140008f5a
mov dword [rsp + 0x54], 0x51
jmp 0x140008f5a
mov dword [rsp + 0x54], 0x53
jmp 0x140008f5a