Function at 0x140088b90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rax, qword [rcx + 8]
mov r15, qword [rax + 0x380]
mov rax, qword [r15 + 0x340]
mov rdi, rcx
mov r14, rdx
xor edx, edx
mov qword [rsp + 0xf0], r8
movzx eax, byte [rax + 9]
mov byte [rsp + 0x38], al
call fcn.140054f10
lea rdx, str..rela.dyn
mov rcx, rdi
mov dword [rsp + 0x48], eax
call fcn.140052c60
lea rdx, str..rel.dyn
mov rcx, rdi
mov qword [rsp + 0x30], rax
call fcn.140052c60
mov r11, qword [rsp + 0x30]
mov r10, rax
test r11, r11
je 0x140088cc8
mov rbp, qword [r11 + 0x40]
test rbp, rbp
je 0x140088cc8
mov rsi, qword [r11 + 0xf8]
mov r9, qword [r15 + 0x340]
test rax, rax
je 0x140088d70
mov r8, qword [rax + 0x40]
test r8, r8
je 0x140088d70
test rsi, rsi
je 0x1400892ab
mov qword [rsp + 0x30], r15
mov rcx, rsi
xor r12d, r12d
mov ebx, 1
jmp 0x140088c6c
mov rcx, qword [rcx]
test rcx, rcx
je 0x1400890f0
cmp dword [rcx + 8], 1
jne 0x140088c60
mov rax, qword [rcx + 0x20]
movzx r15d, byte [r9 + 3]
xor edx, edx
mov r13, qword [rax + 0x40]
mov rax, r13
div r15
mov rax, r13
mov r15, rdx
movzx edx, byte [r9 + 4]
mov r13, rdx
xor edx, edx
div r13
test rdx, rdx
jne 0x1400890b0
test r15, r15
je 0x140088c60
cmp bl, 1
je 0x140088cb6
test r12b, r12b
jne 0x14008919e
mov r12d, 1
mov ebx, 1
jmp 0x140088c60
test r10, r10
je 0x140088d38
mov rbp, qword [r10 + 0x40]
test rbp, rbp
je 0x140088d38
mov r9, qword [r15 + 0x340]
mov rax, qword [r10 + 0xf8]
mov rsi, qword [r9 + 0x68]
movzx r13d, byte [r9 + 3]
mov r8, qword [r9 + 0x60]
mov qword [rsp + 0x60], rsi
mov rsi, rax
test rax, rax
je 0x140088d38
mov r11, r10
xor eax, eax
nop dword [rax + rax]
cmp dword [rsi + 8], 1
jne 0x140088d16
mov rdx, qword [rsi + 0x20]
add rax, qword [rdx + 0x40]
mov rsi, qword [rsi]
test rsi, rsi
jne 0x140088d08
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x30], r8
cmp rax, rbp
jne 0x140088d38
cmp rax, r13
jae 0x140088d90
nop word [rax + rax]
xor r12d, r12d
mov rax, r12
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, r15
mov r11, qword [rsp + 0x40]
mov r15, qword [rsp + 0x30]
test r12b, r12b
jne 0x14008918e
nop dword [rax + rax]
mov rax, qword [r9 + 0x78]
movzx r13d, byte [r9 + 4]
mov r8, qword [r9 + 0x70]
mov qword [rsp + 0x60], rax
test rsi, rsi
jne 0x140088d01
jmp 0x140088d38
movzx edx, byte [rsp + 0x38]
sub edx, 1
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
lea rbp, [rdx*8 + 0x28]
xor edx, edx
div r13
mov rcx, rbp
imul rcx, rax
mov rbx, rax
call fcn.140058b80
mov r8, qword [rsp + 0x30]
mov r11, qword [rsp + 0x50]
test rax, rax
mov qword [rsp + 0x40], rax
je 0x1400891bc
mov rax, qword [r15 + 0x340]
mov r12, qword [r11 + 0xf8]
movabs r10, 0xffffffff00000000
cmp byte [rax + 0xa], 0x20
mov rax, 0xffffffffffffff00
cmove r10, rax
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0x68], rax
test r12, r12
je 0x140088f1b
mov qword [rsp + 0x88], rbx
mov rbx, r12
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x58], r10
mov qword [rsp + 0xe0], rdi
jmp 0x140088e4c
mov rbx, qword [rbx]
test rbx, rbx
je 0x140088ef9
cmp dword [rbx + 8], 1
jne 0x140088e40
mov r15, qword [rbx + 0x20]
mov r12, qword [r15 + 0xa0]
mov r10, qword [r15 + 0x40]
test r12, r12
je 0x1400890d0
mov rax, qword [rsp + 0x68]
imul rax, qword [r15 + 0x58]
xor edx, edx
lea rdi, [r12 + r10]
div r13
imul rax, rbp
cmp r12, rdi
jae 0x140088e40
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x30], r15
mov r15, r12
mov qword [rsp + 0x50], rbx
mov r12, qword [rsp + 0x58]
lea rsi, [rsi + rax + 0x10]
mov rbx, rsi
mov rsi, qword [rsp + 0x70]
nop word [rax + rax]
mov r8, rbx
mov rdx, r15
mov rcx, qword [rsp + 0xe0]
add r15, r13
call rsi
mov rax, qword [rsp + 0x38]
mov r8, rbx
mov rdx, qword [rsp + 0x30]
mov rcx, r14
call qword [rax + 0x250]
mov qword [rbx - 0x10], r12
mov dword [rbx - 8], eax
add rbx, rbp
cmp r15, rdi
jb 0x140088eb0
mov rbx, qword [rsp + 0x50]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140088e4c
mov r11, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov r10, qword [rsp + 0x58]
mov rdi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x88]
mov r15, qword [rsp + 0x40]
mov r8, rbp
mov rdx, rbx
mov qword [rsp + 0x38], r10
lea r9, [0x140088ad0]
mov qword [rsp + 0x30], r11
xor r12d, r12d
mov rcx, r15
call sub.api_ms_win_crt_utility_l1_1_0.dll_qsort
mov r11, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov rcx, r15
jmp 0x140088f64
add r12, 1
add rcx, rbp
cmp r12, rbx
jae 0x140088fa2
cmp dword [rcx + 8], 1
je 0x140088f58
cmp r12, rbx
jae 0x140088fa2
mov r9, r12
mov rdx, rcx
mov rax, rcx
nop dword [rax + rax]
mov r8, qword [rax + 0x18]
xor r8, qword [rdx + 0x18]
test r8, r10
cmovne rdx, rax
add r9, 1
mov r8, qword [rdx + 0x10]
mov qword [rax], r8
add rax, rbp
cmp r9, rbx
jne 0x140088f80
mov rdx, rbx
lea r9, [0x140088b30]
mov r8, rbp
mov qword [rsp + 0x30], r11
sub rdx, r12
call sub.api_ms_win_crt_utility_l1_1_0.dll_qsort
mov rax, qword [r14 + 0x28]
mov r11, qword [rsp + 0x30]
mov rcx, qword [rax + 0x640]
test rcx, rcx
je 0x140088fdb
cmp r11, qword [rcx + 0x60]
je 0x1400891ea
mov rsi, qword [r11 + 0xf8]
mov r14, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x48]
test rsi, rsi
je 0x14008908a
mov qword [rsp + 0x48], r12
mov r15, qword [rsp + 0x60]
mov r12, r14
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], r8
jmp 0x140089018
mov rsi, qword [rsi]
test rsi, rsi
je 0x140089080
cmp dword [rsi + 8], 1
jne 0x140089010
mov rcx, qword [rsp + 0x40]
mov rax, r12
xor edx, edx
mov r8, qword [rsi + 0x20]
sub rax, rcx
mov rbx, qword [r8 + 0xa0]
mov r14, qword [r8 + 0x40]
div rbp
xor edx, edx
add r14, rbx
imul rax, r13
div qword [rsp + 0x30]
mov qword [r8 + 0x58], rax
cmp rbx, r14
jae 0x140089010
nop dword [rax]
mov r8, rbx
add rbx, r13
lea rdx, [r12 + 0x10]
mov rcx, rdi
call r15
add r12, rbp
cmp rbx, r14
jb 0x140089058
mov rsi, qword [rsi]
test rsi, rsi
jne 0x140089018
nop dword [rax]
mov r11, qword [rsp + 0x38]
mov r12, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x30], r11
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rax, qword [rsp + 0xf0]
mov r11, qword [rsp + 0x30]
mov qword [rax], r11
jmp 0x140088d3b
test r15, r15
jne 0x14008926e
and bl, r12b
jne 0x14008919e
mov r12d, 1
jmp 0x140088c60
test r10, r10
je 0x140088e40
mov rcx, qword [rsp + 0x40]
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x140088d38
mov rax, qword [r10 + 0xf8]
mov r15, qword [rsp + 0x30]
mov rcx, rax
test rax, rax
je 0x1400892d0
mov qword [rsp + 0x40], r11
mov r15, rax
jmp 0x140089124
mov rcx, qword [rcx]
test rcx, rcx
je 0x140088d52
cmp dword [rcx + 8], 1
jne 0x140089118
mov rax, qword [rcx + 0x20]
movzx r13d, byte [r9 + 3]
xor edx, edx
mov r11, qword [rax + 0x40]
mov rax, r11
div r13
mov rax, r11
mov r13, rdx
movzx edx, byte [r9 + 4]
mov r11, rdx
xor edx, edx
div r11
test rdx, rdx
jne 0x140089178
test r13, r13
je 0x140089118
cmp bl, 1
je 0x140089166
test r12b, r12b
jne 0x14008919e
mov r12d, 1
mov ebx, 1
jmp 0x140089118
test r13, r13
jne 0x14008926e
and bl, r12b
jne 0x14008919e
mov r12d, 1
jmp 0x140089118
test bl, bl
jne 0x140088d70
mov rbp, r8
jmp 0x140088ce4
mov rdx, rdi
lea rcx, str._pB:_unable_to_sort_relocs___they_are_in_more_than_one_size
call fcn.14002dad0
mov ecx, 5
call fcn.1400578d0
jmp 0x140088d38
mov rax, qword [r14 + 0x20]
mov r9, rdi
xor r8d, r8d
mov rcx, r14
mov qword [rsp + 0x28], 0
lea rdx, str.not_enough_memory_to_sort_relocations
mov qword [rsp + 0x20], 0
call qword [rax + 0x28]
jmp 0x140088d38
mov rdx, qword [rsp + 0x40]
lea rax, [rbx + rbx*4]
lea rdx, [rdx + rax*8 - 0x20]
xor eax, eax
jmp 0x14008920d
add rax, 1
sub rdx, 0x28
cmp rax, rbx
jae 0x14008928c
cmp dword [rdx], 4
je 0x140089200
mov rdx, qword [r11 + 0xf8]
test rax, rax
je 0x140088fdb
imul rax, r13
cmp qword [rcx + 0x40], rax
jne 0x140088fdb
lea r9, [r11 + 0xf8]
test rdx, rdx
jne 0x140089250
jmp 0x1400ab710
mov r9, rax
test rdx, rdx
je 0x140089295
mov r8d, dword [rdx + 8]
mov rax, rdx
mov rdx, qword [rdx]
cmp r8d, 1
jne 0x140089248
cmp rcx, qword [rax + 0x20]
jne 0x140089248
mov qword [r9], rdx
mov rsi, rax
jmp 0x14008924b
mov rdx, rdi
lea rcx, str._pB:_unable_to_sort_relocs___they_are_of_an_unknown_size
call fcn.14002dad0
mov ecx, 5
call fcn.1400578d0
jmp 0x140088d38
mov rdx, qword [r11 + 0xf8]
jmp 0x140089222
mov qword [r9], rsi
mov qword [rsi], 0
mov qword [r11 + 0x100], rsi
jmp 0x140088fdb
mov rax, qword [rax + 0xf8]
xor r12d, r12d
mov ebx, 1
mov rcx, rax
test rax, rax
je 0x140088d38
mov qword [rsp + 0x30], r15
jmp 0x140089108
test r12b, r12b
je 0x1400892dd
test bl, bl
je 0x140089196
mov rax, qword [r9 + 0x78]
movzx r13d, byte [r9 + 4]
mov r8, qword [r9 + 0x70]
mov qword [rsp + 0x60], rax
jmp 0x140088d01
xor eax, eax
mov qword [r11 + 0xf8], rax
mov qword [0], rax
ud2