Function at 0x140077a80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x170], rbx
mov rax, qword [0x14011e878]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov r15, rdx
mov rsi, rcx
mov rax, qword [rdx]
lea rdx, [rsp + 0x38]
mov rcx, r15
call qword [rax + 0xa0]
mov r12, qword [rax + 8]
xor ebx, ebx
mov edi, ebx
mov rcx, rsi
call fcn.140064600
cmp eax, 0xb
jne 0x140077c2e
mov rcx, rsi
call fcn.1400b77f0
test al, al
je 0x140077c2e
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005f4d0
mov r14, rax
mov rcx, rax
call fcn.140080e10
test al, al
je 0x140077c2e
mov r8, rsi
mov rdx, r15
lea rcx, [rsp + 0x70]
call fcn.14005c8c0
nop
mov r8, rsi
mov rdx, r15
lea rcx, [rbp - 0x40]
call fcn.14005c8c0
nop
mov rcx, rsi
call fcn.1400b7900
mov r15, qword [rax + 0x28]
mov rcx, rsi
call fcn.1400b7900
mov rsi, qword [rax + 0x28]
mov rax, qword [r14]
lea rdx, [rsp + 0x70]
mov rcx, r14
call qword [rax + 0x28]
mov rax, qword [r14]
lea rdx, [rbp - 0x40]
mov rcx, r14
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
lea r8, [rbp - 0x40]
lea rdx, [rsp + 0x70]
call qword [rax + 0x20]
test al, al
jne 0x140077bea
lea rdx, [rbp - 0x80]
mov rcx, r15
call fcn.14007ab70
lea rbx, [rax + 2]
lea rdx, [rbp - 0x58]
lea rcx, [rsi + 0x98]
call fcn.14007ae10
add rbx, rax
mov ecx, ebx
or ecx, 1
bsr edx, ecx
lea edx, [rdx + rdx*8]
add edx, 0x49
shr rdx, 6
add rdx, rbx
add rdi, rdx
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
lea rdx, [rsp + 0x70]
call qword [rax + 0x88]
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
lea r8, [rbp - 0x40]
lea rdx, [rsp + 0x70]
call qword [rax + 0x20]
test al, al
je 0x140077b84
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
lea rdx, [rbp - 0x40]
call qword [rax + 0x78]
cmp dword [rbp - 0x10], 9
jne 0x140077c08
lea rcx, [rbp - 0x30]
call fcn.14002eb50
nop
mov rcx, qword [rsp + 0x78]
mov r8, qword [rcx]
lea rdx, [rsp + 0x70]
call qword [r8 + 0x78]
cmp dword [rbp - 0x60], 9
jne 0x140077c29
lea rcx, [rbp - 0x80]
call fcn.14002eb50
nop
jmp case.default.0x140077ca2
cmp dword [rsi + 0x3c], 3
jne 0x140077c47
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005eb00
mov r14d, eax
jmp 0x140077c7c
mov rax, qword [rsi + 0x50]
mov rcx, qword [rax + 0x20]
cmp byte [rcx + 0x4b], bl
je 0x140077c5c
mov r14d, 1
jmp 0x140077c7c
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.140060900
mov rcx, rbx
mov r14d, 1
test al, al
cmovne rcx, r14
mov r14, rcx
mov rcx, rsi
call fcn.140064600
dec eax
cmp eax, 0x11
ja case.default.0x140077ca2
cdqe
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x78170]
add rcx, rdx
jmp rcx
cmp dword [rsi + 0x3c], 3
jne 0x140077cf1
test r14, r14
je case.default.0x140077ca2
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005fcd0
test eax, eax
jns 0x140077ccf
mov eax, 0xa
jmp 0x140077cdf
or eax, 1
bsr eax, eax
lea eax, [rax + rax*8]
add eax, 0x49
shr rax, 6
add rdi, rax
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077cb3
jmp case.default.0x140077ca2
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005f350
test eax, eax
jns 0x140077d0d
mov edi, 0xa
jmp case.default.0x140077ca2
or eax, 1
bsr eax, eax
jmp 0x140077dea
cmp dword [rsi + 0x3c], 3
jne 0x140077d65
test r14, r14
je case.default.0x140077ca2
nop word [rax + rax]
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005fda0
or rax, 1
bsr rcx, rax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rdi, rcx
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077d30
jmp case.default.0x140077ca2
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005f410
or rax, 1
bsr rcx, rax
lea edi, [rcx*8 + 0x49]
add edi, ecx
jmp 0x140077df3
cmp dword [rsi + 0x3c], 3
jne 0x140077dcd
test r14, r14
je case.default.0x140077ca2
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005fcd0
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
or ecx, 1
bsr eax, ecx
lea ecx, [rax*8 + 0x49]
add ecx, eax
shr rcx, 6
add rdi, rcx
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077d91
jmp case.default.0x140077ca2
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005f350
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
or ecx, 1
bsr eax, ecx
lea edi, [rax*8 + 0x49]
add edi, eax
shr rdi, 6
mov rax, rdi
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.1400d51a0
mov rbx, qword [rsp + 0x170]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp dword [rsi + 0x3c], 3
jne 0x140077e72
test r14, r14
je case.default.0x140077ca2
nop dword [rax]
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005fda0
mov rcx, rax
sar rcx, 0x3f
add rax, rax
xor rcx, rax
or rcx, 1
bsr rax, rcx
lea ecx, [rax*8 + 0x49]
add ecx, eax
shr rcx, 6
add rdi, rcx
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077e30
jmp case.default.0x140077ca2
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005f410
mov rcx, rax
sar rcx, 0x3f
add rax, rax
xor rcx, rax
or rcx, 1
bsr rax, rcx
jmp 0x140077dea
cmp dword [rsi + 0x3c], 3
jne 0x140077ee3
test r14, r14
je case.default.0x140077ca2
nop dword [rax]
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.140060130
or eax, 1
bsr ecx, eax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rdi, rcx
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077eb0
jmp case.default.0x140077ca2
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.1400604a0
or eax, 1
bsr ecx, eax
lea edi, [rcx*8 + 0x49]
add edi, ecx
jmp 0x140077df3
cmp dword [rsi + 0x3c], 3
jne 0x140077f49
test r14, r14
je case.default.0x140077ca2
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.140060200
or rax, 1
bsr rcx, rax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rdi, rcx
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077f14
jmp case.default.0x140077ca2
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.140060560
jmp 0x140077d73
lea rdi, [r14*4]
jmp case.default.0x140077ca2
lea rdi, [r14*8]
jmp case.default.0x140077ca2
mov rdi, r14
jmp case.default.0x140077ca2
cmp dword [rsi + 0x3c], 3
jne 0x140077fbc
test r14, r14
je case.default.0x140077ca2
nop dword [rax]
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005fe70
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x50]
add rdi, rax
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077f90
jmp case.default.0x140077ca2
xor r9d, r9d
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005f540
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x50]
mov rdi, rax
jmp case.default.0x140077ca2
cmp dword [rsi + 0x3c], 3
jne 0x14007801b
test r14, r14
je case.default.0x140077ca2
nop dword [rax]
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005fe70
mov rcx, rax
call fcn.140069a00
add rdi, rax
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140077ff0
jmp case.default.0x140077ca2
xor r9d, r9d
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005f540
mov rcx, rax
call fcn.140069a00
mov rdi, rax
jmp case.default.0x140077ca2
cmp dword [rsi + 0x3c], 3
jne 0x140078091
test r14, r14
je case.default.0x140077ca2
nop dword [rax + rax]
mov r9d, ebx
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005fa50
mov ecx, dword [rax + 0x10]
test ecx, ecx
jns 0x14007806f
mov eax, 0xa
jmp 0x14007807f
or ecx, 1
bsr eax, ecx
lea eax, [rax + rax*8]
add eax, 0x49
shr rax, 6
add rdi, rax
inc ebx
movsxd rax, ebx
cmp rax, r14
jb 0x140078050
jmp case.default.0x140077ca2
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14005eee0
mov ecx, dword [rax + 0x10]
test ecx, ecx
js 0x140077d03
jmp 0x140077de4
mov r13d, ebx
test r14, r14
je case.default.0x140077ca2
nop dword [rax + rax]
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], 0
mov r8, rsi
mov rdx, r15
mov rcx, r12
cmp dword [rsi + 0x3c], 3
jne 0x1400780f6
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, r13d
call fcn.140060060
jmp 0x140078100
lea r9, [rsp + 0x48]
call fcn.1400603c0
mov rdx, qword [rax + 0x10]
mov eax, edx
or eax, 1
bsr ecx, eax
lea ecx, [rcx + rcx*8]
add ecx, 0x49
shr rcx, 6
add rcx, rdx
add rdi, rcx
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140078155
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140078150
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140078169
call fcn.1400d5498
inc r13d
movsxd rax, r13d
cmp rax, r14
jae case.default.0x140077ca2
jmp 0x1400780c0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3