Function at 0x4070b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rax, qword [0x00419040]
mov rdx, qword [0x00419048]
test rax, rax
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
jne 0x4071a3
test rdx, rdx
jne 0x4071a3
lea rsi, [rsp + 0x70]
mov ebx, 8
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x38], rsi
jmp 0x40713a
sub rbx, 1
je 0x40775a
xor ecx, ecx
mov r9d, 2
mov r8d, 0x10
mov rdx, rsi
call qword [0x0041a110]
test eax, eax
jne 0x407130
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
test rax, rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
jne 0x407180
test rdx, rdx
je 0x407130
nop dword [rax]
nop word cs:[rax + rax]
mov rdi, rax
or rdi, rdx
je 0x407769
movq xmm0, rax
movq xmm4, rdx
punpcklqdq xmm0, xmm4
movaps xmmword [0x00419040], xmm0
jmp 0x4071ad
lea rdi, [rsp + 0x70]
mov qword [rsp + 0x38], rdi
movdqa xmm2, xmmword [0x00419040]
xor r8d, r8d
xor r9d, r9d
xor ecx, ecx
movabs r11, 0xbeac0467eba5facb
movaps xmmword [rsp + 0x50], xmm2
nop dword [rax]
bt r11, rcx
jae 0x4071dc
xor r9, rax
xor r8, rdx
xor rdx, rax
ror rax, 9
add rcx, 1
mov r10, rdx
xor rax, rdx
ror rdx, 0x1c
shl r10, 0xe
xor rax, r10
cmp rcx, 0x40
jne 0x4071d0
movabs r11, 0xd86b048b86aa9922
xor ecx, ecx
nop word [rax + rax]
bt r11, rcx
jae 0x40721c
xor r9, rax
xor r8, rdx
xor rdx, rax
ror rax, 9
add rcx, 1
mov r10, rdx
xor rax, rdx
ror rdx, 0x1c
shl r10, 0xe
xor rax, r10
cmp rcx, 0x40
jne 0x407210
lea rax, [rsp + 0x48]
movdqa xmm3, xmmword [rsp + 0x50]
xor ecx, ecx
mov esi, 1
mov qword [rsp + 0x20], rax
lea rax, [rsp + 0x60]
mov ebx, 5
movabs r12, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov ebp, 0x68c8c4ad
mov qword [0x00419040], r9
lea rdi, [rsp + 0x40]
mov qword [0x00419048], r8
movaps xmmword [0x00419050], xmm3
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x28], rax
mov rax, rsi
imul ebx, ebx, 0x39
mov r8, rsi
mul r12
lea r9d, [rbx + 0x2b]
shr rdx, 1
lea rax, [rdx + rdx*2]
sub r8, rax
mov eax, r9d
imul ebp
mov eax, r9d
sar eax, 0x1f
sar edx, 0xc
mov ebx, edx
sub ebx, eax
imul ebx, ebx, 0x2717
sub r9d, ebx
cmp r8, 1
lea r13d, [r9 + 1]
mov ebx, r9d
je 0x407640
cmp r8, 2
je 0x407500
mov qword [rsp + 0x48], 0
mov r8, qword [rsp + 0x38]
mov qword [rsp + 0x50], 0
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x70], 0
call fcn.00405be0
mov r8, qword [rsp + 0x30]
mov r9d, r13d
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x70]
call fcn.00405be0
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x4076f0
mov r15, qword [rsp + 0x48]
mov r13, rdi
test r15, r15
je 0x4073c1
nop
nop word cs:[rax + rax]
mov eax, dword [r14 + 4]
cmp dword [r15 + 4], eax
jge 0x4074d0
mov rcx, r13
call fcn.00401f00
test al, al
jne 0x4073b0
add qword [r15 - 0x10], 8
mov rax, qword [r13]
cmp rax, 0xfff
jbe 0x4073b0
mov rcx, qword [rax - 0x10]
lea rdx, [rax - 0x10]
sub rcx, 8
cmp rcx, 7
mov qword [rax - 0x10], rcx
ja 0x4073b0
lea rcx, [0x00428628]
call fcn.00405a50
nop dword [rax]
mov qword [r13], r15
lea r13, [r15 + 0x10]
mov r15, qword [r15 + 0x10]
test r15, r15
jne 0x407360
mov rdx, r14
mov rcx, r13
call fcn.00405b70
mov r15, qword [rsp + 0x40]
mov r13, rdi
mov r14, qword [rsp + 0x60]
test r15, r15
je 0x407451
test r14, r14
je 0x40749c
nop word [rax + rax]
mov eax, dword [r14 + 4]
cmp dword [r15 + 4], eax
jge 0x407480
mov rcx, r13
call fcn.00401f00
test al, al
jne 0x407440
add qword [r15 - 0x10], 8
mov rax, qword [r13]
cmp rax, 0xfff
jbe 0x407440
mov rcx, qword [rax - 0x10]
lea rdx, [rax - 0x10]
sub rcx, 8
cmp rcx, 7
mov qword [rax - 0x10], rcx
ja 0x407440
lea rcx, [0x00428628]
call fcn.00405a50
nop dword [rax]
mov qword [r13], r15
lea r13, [r15 + 0x10]
mov r15, qword [r15 + 0x10]
test r15, r15
jne 0x4073f0
mov rdx, r14
mov rcx, r13
call fcn.00405b70
add rsi, 1
cmp rsi, 0x7a120
je 0x4074b4
mov rcx, qword [rsp + 0x40]
jmp 0x4072a0
mov rdx, r14
mov rcx, r13
call fcn.00405b70
lea r13, [r14 + 8]
mov r14, qword [r14 + 8]
test r14, r14
jne 0x4073f0
mov rdx, r15
mov rcx, r13
add rsi, 1
call fcn.00405b70
cmp rsi, 0x7a120
jne 0x407469
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r14
mov rcx, r13
call fcn.00405b70
lea r13, [r14 + 8]
mov r14, qword [r14 + 8]
test r14, r14
jne 0x407360
mov rdx, r15
mov rcx, r13
call fcn.00405b70
jmp 0x4073cc
mov qword [rsp + 0x70], 0
mov r8, qword [rsp + 0x20]
mov qword [rsp + 0x60], 0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
call fcn.00405be0
mov rcx, qword [rsp + 0x48]
mov r9d, r13d
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
call fcn.00405be0
mov r14, qword [rsp + 0x70]
mov rcx, rdi
mov r13, qword [rsp + 0x60]
test r14, r14
je 0x40758f
test r13, r13
je 0x4075f9
nop
nop word cs:[rax + rax]
mov eax, dword [r13 + 4]
cmp dword [r14 + 4], eax
jge 0x4075e0
mov rdx, r14
call fcn.00405b70
lea rcx, [r14 + 0x10]
mov r14, qword [r14 + 0x10]
test r14, r14
jne 0x407570
mov rdx, r13
call fcn.00405b70
mov r14, qword [rsp + 0x40]
mov rcx, rdi
mov r13, qword [rsp + 0x50]
test r14, r14
je 0x4075cf
test r13, r13
je 0x407625
nop
mov eax, dword [r13 + 4]
cmp dword [r14 + 4], eax
jge 0x407610
mov rdx, r14
call fcn.00405b70
lea rcx, [r14 + 0x10]
mov r14, qword [r14 + 0x10]
test r14, r14
jne 0x4075b0
mov rdx, r13
call fcn.00405b70
jmp 0x40745c
mov rdx, r13
call fcn.00405b70
lea rcx, [r13 + 8]
mov r13, qword [r13 + 8]
test r13, r13
jne 0x407570
mov rdx, r14
call fcn.00405b70
jmp 0x407597
mov rdx, r13
call fcn.00405b70
lea rcx, [r13 + 8]
mov r13, qword [r13 + 8]
test r13, r13
jne 0x4075b0
mov rdx, r14
call fcn.00405b70
jmp 0x40745c
mov qword [rsp + 0x70], 0
mov r8, qword [rsp + 0x20]
mov qword [rsp + 0x60], 0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
call fcn.00405be0
mov rcx, qword [rsp + 0x48]
mov r9d, r13d
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
call fcn.00405be0
mov r14, qword [rsp + 0x70]
mov rcx, rdi
mov r13, qword [rsp + 0x50]
test r14, r14
je 0x4075cf
test r13, r13
je 0x407625
mov eax, dword [r13 + 4]
cmp dword [r14 + 4], eax
jge 0x4076d2
mov rdx, r14
call fcn.00405b70
lea rcx, [r14 + 0x10]
mov r14, qword [r14 + 0x10]
test r14, r14
je 0x4075cf
mov eax, dword [r13 + 4]
cmp dword [r14 + 4], eax
jl 0x4076af
mov rdx, r13
call fcn.00405b70
lea rcx, [r13 + 8]
mov r13, qword [r13 + 8]
jmp 0x4076a0
lea rcx, [0x0041a480]
call fcn.00406f20
mov dword [rax], ebx
mov r14, rax
mov rdx, qword [0x00419058]
mov rax, qword [0x00419050]
lea rcx, [rdx + rax]
xor rdx, rax
ror rax, 9
mov r8, rdx
xor rax, rdx
ror rdx, 0x1c
shl r8, 0xe
xor rax, r8
cmp rcx, 0xfffffffffffffffc
ja 0x40770f
movq xmm0, rax
movq xmm1, rdx
and ecx, 0x7fffffff
punpcklqdq xmm0, xmm1
movaps xmmword [0x00419050], xmm0
mov dword [r14 + 4], ecx
mov qword [rsp + 0x50], r14
jmp 0x407348
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
jmp 0x407180
mov ecx, 2
mov rbx, qword [fcn.004110c0]
call rbx
lea rdx, [0x00413970]
mov rcx, rax
call fcn.00402ad0
mov ecx, 2
call rbx
lea rdx, [0x004130b6]
mov rcx, rax
call fcn.00402ad0
mov ecx, 1
call sub.msvcrt.dll_exit
nop
nop word [rax + rax]