Function at 0x140099b8c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
mov rbp, rsp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x180
mov rax, qword [0x1400c8590]
xor rax, rsp
mov qword [rbp - 0x40], rax
lea r14, [rcx + 0x18]
mov qword [rsp + 0x60], rcx
lea rcx, [0x140000000]
mov rax, qword [r14]
mov qword [rsp + 0x48], rdx
mov edx, 0xfffffff
mov ebx, dword [rax + 5]
mov esi, dword [rax + 9]
lea r9, [rax + 0xd]
and rbx, rdx
and rsi, rdx
lea rdi, [r9 - 1]
add rbx, rcx
mov ecx, dword [rax + 1]
mov rax, qword [0x14017dba0]
and rcx, rdx
xor r10d, r10d
mov qword [rsp + 0x40], r14
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xd8], rsi
mov qword [rsp + 0xe0], rcx
cmp rdi, rax
jb 0x140099c66
mov ecx, dword [0x14010ba84]
mov eax, dword [0x14010ba80]
imul ecx, eax
mov rax, qword [0x14017dba0]
add rcx, rax
cmp rdi, rcx
jae 0x140099c66
mov rcx, qword [0x14017dba0]
mov rax, rdi
sub rax, rcx
mov ecx, dword [0x14010ba80]
cqo
idiv rcx
mov edx, dword [0x14010ba80]
mov r8, qword [0x14017dba0]
imul rdx, rax
add r8, rdx
jmp 0x140099c69
mov r8, r10
test r8, r8
jne 0x140099c78
mov r8, rdi
and r8, 0xffffffffffff0000
sub r9, r8
lea rax, [r9 - 0x40]
test rax, rax
cmovs rax, r10
lea rdi, [r8 + rax]
xor eax, eax
lea r11d, [rax + 0x40]
mov ecx, r11d
rep stosb byte [rdi], al
mov r9d, dword [0x14010ba80]
sub r9, rsi
inc r9
mov rdi, r9
je 0x140099cdd
mov rcx, qword [0x14017dbb0]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr rdi, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test rdi, rdi
jne 0x140099cae
mov qword [0x14017dbb0], rcx
xor edx, edx
mov dil, r10b
mov byte [rsp + 0x20], r10b
div r9
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x58], rbx
lea r9, [rdx + r8]
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x70], r9
test rsi, rsi
je 0x14009a14a
movups xmm0, xmmword [rsi + rbx]
mov r14, r9
mov qword [rbp - 0x68], r10
mov qword [rbp - 0x60], r10
movdqu xmmword [rsp + 0x80], xmm0
mov rcx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
mov rax, rcx
mov rdx, r8
mov dword [rbp - 0x7c], r8d
shr rax, 0x20
shr rdx, 0x20
mov dword [rbp - 0x74], ecx
mov dword [rbp - 0x70], eax
mov dword [rbp - 0x48], eax
mov eax, dword [0x14010bb68]
mov dword [rbp - 0x80], eax
mov eax, dword [0x14010bb6c]
mov dword [rbp - 0x78], edx
mov dword [rbp - 0x6c], eax
mov eax, dword [0x14010bb70]
mov dword [rbp - 0x54], r8d
mov dword [rbp - 0x58], eax
mov eax, dword [0x14010bb74]
mov dword [rbp - 0x50], edx
mov dword [rbp - 0x44], eax
lea rax, [rsp + 0x90]
mov dword [rbp - 0x4c], ecx
sub r14, rax
mov rax, rbx
sub rax, r9
mov qword [rsp + 0x80], rax
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0xf0]
mov r8, r11
mov qword [rsp + 0x50], r14
call sub.MSVCR100.dll_memcpy
mov eax, dword [rsp + 0x104]
mov ecx, dword [rsp + 0x12c]
mov edx, dword [rsp + 0x128]
mov r8d, dword [rsp + 0x124]
mov r9d, dword [rsp + 0x120]
mov r10d, dword [rsp + 0x11c]
mov r11d, dword [rsp + 0x118]
mov ebx, dword [rsp + 0x114]
mov r12d, dword [rsp + 0x110]
mov r13d, dword [rsp + 0x10c]
mov r15d, dword [rsp + 0x108]
mov r14d, dword [rsp + 0x100]
mov edi, dword [rsp + 0xfc]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xf8]
mov esi, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xf4]
mov qword [rsp + 0x68], 3
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x2c], eax
add eax, r9d
rol eax, 7
xor r14d, eax
mov eax, dword [rsp + 0x2c]
add eax, r14d
rol eax, 9
xor r12d, eax
lea eax, [r12 + r14]
rol eax, 0xd
xor r9d, eax
mov dword [rsp + 0x30], r9d
lea eax, [r12 + r9]
mov r9d, dword [rsp + 0x2c]
ror eax, 0xe
xor r9d, eax
mov eax, dword [rsp + 0x24]
add eax, esi
mov dword [rsp + 0x2c], r9d
rol eax, 7
xor ebx, eax
lea eax, [rsi + rbx]
rol eax, 9
xor r8d, eax
lea eax, [r8 + rbx]
rol eax, 0xd
xor dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
add eax, r8d
ror eax, 0xe
xor esi, eax
lea eax, [r15 + r11]
rol eax, 7
xor edx, eax
lea eax, [r11 + rdx]
rol eax, 9
xor dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
add eax, edx
rol eax, 0xd
xor r15d, eax
mov eax, dword [rsp + 0x28]
add eax, r15d
ror eax, 0xe
xor r11d, eax
lea eax, [r10 + rcx]
rol eax, 7
xor edi, eax
lea eax, [rcx + rdi]
rol eax, 9
xor r13d, eax
lea eax, [rdi + r13]
rol eax, 0xd
xor r10d, eax
lea eax, [r10 + r13]
ror eax, 0xe
xor ecx, eax
lea eax, [rdi + r9]
mov r9d, dword [rsp + 0x24]
rol eax, 7
xor r9d, eax
mov eax, r9d
mov dword [rsp + 0x24], r9d
mov dword [rsp + 0xf4], eax
add eax, dword [rsp + 0x2c]
rol eax, 9
xor dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0xf8], eax
add eax, r9d
mov r9d, dword [rsp + 0x2c]
rol eax, 0xd
xor edi, eax
mov eax, dword [rsp + 0x28]
add eax, edi
ror eax, 0xe
xor r9d, eax
lea eax, [rsi + r14]
rol eax, 7
mov dword [rsp + 0x2c], r9d
mov dword [rsp + 0xf0], r9d
xor r15d, eax
mov r9d, dword [rsp + 0x30]
lea eax, [r15 + rsi]
rol eax, 9
xor r13d, eax
lea eax, [r15 + r13]
rol eax, 0xd
xor r14d, eax
lea eax, [r14 + r13]
ror eax, 0xe
xor esi, eax
lea eax, [r11 + rbx]
rol eax, 7
xor r10d, eax
lea eax, [r10 + r11]
rol eax, 9
xor r12d, eax
lea eax, [r10 + r12]
rol eax, 0xd
xor ebx, eax
lea eax, [rbx + r12]
ror eax, 0xe
xor r11d, eax
lea eax, [rcx + rdx]
rol eax, 7
xor r9d, eax
mov dword [rsp + 0x120], r9d
lea eax, [rcx + r9]
rol eax, 9
xor r8d, eax
lea eax, [r9 + r8]
rol eax, 0xd
xor edx, eax
lea eax, [rdx + r8]
ror eax, 0xe
xor ecx, eax
dec qword [rsp + 0x68]
mov eax, dword [rsp + 0x2c]
jne 0x140099e46
mov dword [rsp + 0x12c], ecx
mov dword [rsp + 0x114], ebx
mov rbx, qword [rsp + 0x80]
mov dword [rsp + 0x110], r12d
mov r12, qword [rsp + 0x58]
mov dword [rsp + 0x10c], r13d
mov r13, qword [rsp + 0x70]
mov dword [rsp + 0x108], r15d
mov r15, qword [rsp + 0x78]
mov dword [rsp + 0x104], esi
mov esi, dword [rbp - 0x60]
mov dword [rsp + 0x100], r14d
mov r14, qword [rsp + 0x50]
mov dword [rsp + 0xfc], edi
mov dil, byte [rsp + 0x20]
xor ecx, ecx
mov dword [rsp + 0x128], edx
mov dword [rsp + 0x124], r8d
mov dword [rsp + 0x11c], r10d
mov dword [rsp + 0x118], r11d
mov eax, dword [rbp + rcx - 0x80]
add rcx, 4
add dword [rsp + rcx + 0xec], eax
cmp rcx, 0x40
jl 0x14009a066
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x90]
mov r8d, 0x40
call sub.MSVCR100.dll_memcpy
inc esi
mov r11d, 0x40
mov dword [rbp - 0x60], esi
cmp r15, r11
jbe 0x14009a0ee
lea rdx, [rsp + 0x90]
mov r8d, r11d
lea rax, [r14 + rdx]
mov cl, byte [rax + rbx]
xor cl, byte [rdx]
mov byte [r14 + rdx], cl
inc rdx
xor dil, cl
dec r8
jne 0x14009a0b1
sub r15, r11
add r13, r11
add r14, r11
add r12, r11
mov byte [rsp + 0x20], dil
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x70], r13
jmp 0x140099d98
mov rbx, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
xor r10d, r10d
mov edx, r10d
test r15, r15
je 0x14009a140
lea rax, [rsp + 0x90]
lea rcx, [rsp + 0x90]
sub r12, rax
lea rax, [rsp + 0x90]
sub r13, rax
mov al, byte [rcx + r12]
inc edx
xor al, byte [rcx]
mov byte [rcx + r13], al
xor dil, al
mov eax, edx
inc rcx
cmp rax, r15
jb 0x14009a127
mov r14, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
cmp dil, byte [rsi + rbx + 0x10]
je 0x14009a212
call fcn.14009eca8
mov rsi, qword [rsp + 0x60]
mov r8, r14
mov r11, rax
mov rax, 0xfffffffffffff000
and r8, 0xfffffffffffffff8
and r11, rax
lea r10, [fcn.1400bd550]
lea r9, [r8 + 0xfff]
and r9, rax
mov qword [rsi + 0x10], r10
mov rax, qword [0x14017dbb0]
xor edi, edi
mov ebx, 0xffff
imul rax, rax, 0x343fd
shl rdi, 0x10
shr rbx, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or rdi, rdx
test rbx, rbx
jne 0x14009a196
mov qword [0x14017dbb0], rax
movabs rax, 0x8000800080008001
mul rdi
mov rax, qword [rsp + 0x48]
shr rdx, 0xf
mov qword [rax + 0x98], r11
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rax + 0xb0], rdi
mov qword [rsp + 0x48], rbx
jmp 0x14009a208
mov rax, qword [rsp + 0x48]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x14009a1fc
jmp 0x14009a32c
mov rax, qword [0x14010bb18]
lea rcx, [0x140000000]
mov r11, rbx
mov r14, rcx
sub r11, r9
sub r14, rax
jne 0x14009a237
test r11, r11
je 0x14009a311
mov r10, r9
sub r10, rbx
sub ebx, ecx
lea r12d, [rsi + rbx]
mov rsi, qword [0x14017dbb8]
test rsi, rsi
je 0x14009a311
mov r15d, dword [rsi]
xor edi, edi
mov r13d, 0x7ffffff
lea r8d, [r15 - 1]
test r8d, r8d
js 0x14009a28e
lea eax, [r8 + rdi]
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
mov edx, dword [rsi + rcx*4 + 4]
and edx, r13d
cmp ebx, edx
jae 0x14009a284
lea r8d, [rax - 1]
jmp 0x14009a289
jbe 0x14009a2db
lea edi, [rax + 1]
cmp r8d, edi
jge 0x14009a267
movsxd r9, edi
cmp r9, r15
jae 0x14009a30c
lea rbx, [rsi + 4]
lea r15, [0x140000000]
lea rbx, [rbx + r9*4]
mov edi, dword [rbx]
mov eax, edi
and eax, r13d
cmp eax, r12d
jae 0x14009a30c
mov edx, dword [rbx]
and rdi, r13
xor r8d, r8d
mov ecx, edx
sar edx, 0x1d
add rdi, r15
sar ecx, 0x1b
and edx, 7
and ecx, 3
dec ecx
je 0x14009a2e5
dec ecx
je 0x14009a2e0
dec ecx
jne 0x14009a2eb
mov r8, r14
jmp 0x14009a2eb
movsxd r9, eax
jmp 0x14009a291
mov r8, r11
jmp 0x14009a2eb
mov r8, r14
sub r8, r11
sub edx, 2
je 0x14009a2fa
dec edx
jne 0x14009a2fe
add qword [rdi + r10], r8
jmp 0x14009a2fe
add dword [rdi + r10], r8d
mov eax, dword [rsi]
inc r9
add rbx, 4
cmp r9, rax
jb 0x14009a2a5
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0xe0]
mov eax, dword [0x14010ba80]
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x60]
add r10, r9
mov qword [rsi + 0x10], r10
add qword [r14], 0xd
mov rcx, qword [rbp - 0x40]
xor rcx, rsp
call fcn.1400056f0
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret