Function at 0x14034e9d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x388
mov ebx, r8d
mov rdi, rdx
lea rdx, [0x14034e480]
sar ebx, 5
test r9d, r9d
mov r10, rcx
lea eax, [rbx + 6]
mov dword [rsp + 0x3e8], r9d
mov dword [rsp + 0x28], eax
lea rax, [0x14034e6d0]
cmovne rax, rdx
mov edx, dword [0x1405e473c]
mov qword [rcx + 0x118], rax
test edx, edx
jne 0x14034ec8c
mov byte [rsp + 0x27f], 1
mov byte [rsp + 0x180], 1
lea rcx, [rsp + 0x280]
mov byte [rsp + 0x81], 0
xor edx, edx
mov eax, 3
jmp 0x14034ea82
movsxd r9, eax
mov byte [rcx], al
mov byte [rcx - 0xff], al
mov byte [rsp + r9 + 0x80], dl
lea r9d, [rax + rax]
xor eax, r9d
mov r9d, eax
xor r9d, 0x11b
cmp eax, 0x100
cmovge eax, r9d
add rcx, 1
add edx, 1
cmp edx, 0xff
jne 0x14034ea51
xor ebp, ebp
xor r11d, r11d
xor eax, eax
lea r14, [0x1405e4740]
lea rsi, [0x1405e4840]
lea r13, [rsp + 0x81]
mov r12d, 0xff
jmp 0x14034eacc
movzx eax, byte [r13 + rbp]
mov ecx, r12d
add rbp, 1
sub ecx, eax
movsxd rax, ecx
movzx eax, byte [rsp + rax + 0x180]
lea ecx, [rax + rax]
lea edx, [rax*4]
mov r9d, eax
shl r9d, 4
xor edx, ecx
lea ecx, [rax*8]
xor edx, eax
mov eax, edx
mov edx, r9d
xor eax, ecx
xor edx, eax
mov eax, edx
xor edx, 0x63
sar eax, 8
xor eax, edx
movzx edx, al
mov byte [rsi + rbp], al
mov byte [r14 + rdx], r11b
add r11d, 1
cmp r11d, 0x100
jne 0x14034eab2
movzx r14d, byte [rsp + 0x8e]
movzx r13d, byte [rsp + 0x89]
lea r11, [0x1405e4740]
movzx r12d, byte [rsp + 0x8d]
movzx ebp, byte [rsp + 0x8b]
lea rcx, [0x1405e2740]
lea rsi, [0x1405e2b40]
nop word [rax + rax]
movzx eax, byte [r11]
test al, al
je 0x14034ebce
movzx edx, byte [rsp + rax + 0x80]
lea eax, [rdx + r13]
cdqe
movzx eax, byte [rsp + rax + 0x180]
shl eax, 8
mov r9d, eax
lea eax, [rdx + r12]
cdqe
movzx eax, byte [rsp + rax + 0x180]
shl eax, 0x10
or eax, r9d
lea r9d, [rdx + r14]
add edx, ebp
movsxd rdx, edx
movsxd r9, r9d
movzx edx, byte [rsp + rdx + 0x180]
movzx r9d, byte [rsp + r9 + 0x180]
shl edx, 0x18
or eax, r9d
or eax, edx
mov edx, eax
mov dword [rcx], eax
rol edx, 8
mov dword [rcx + 0x400], edx
mov edx, eax
ror eax, 8
rol edx, 0x10
mov dword [rcx + 0xc00], eax
mov dword [rcx + 0x800], edx
add rcx, 4
add r11, 1
cmp rsi, rcx
jne 0x14034eb50
movzx r12d, byte [rsp + 0x82]
movzx ebp, byte [rsp + 0x81]
lea r9, [0x1405e4840]
movzx esi, byte [rsp + 0x83]
lea rcx, [0x1405e3740]
lea r11, [0x1405e3b40]
nop dword [rax]
movzx eax, byte [r9]
test al, al
je 0x14034ec7f
movzx edx, byte [rsp + rax + 0x80]
lea eax, [rdx + rbp]
cdqe
movzx r13d, byte [rsp + rax + 0x180]
mov eax, r13d
shl r13d, 0x10
shl eax, 8
or r13d, eax
lea eax, [rdx + r12]
add edx, esi
movsxd rdx, edx
cdqe
movzx edx, byte [rsp + rdx + 0x180]
movzx eax, byte [rsp + rax + 0x180]
shl edx, 0x18
or eax, r13d
or eax, edx
mov edx, eax
mov dword [rcx], eax
rol edx, 8
mov dword [rcx + 0x400], edx
mov edx, eax
ror eax, 8
rol edx, 0x10
mov dword [rcx + 0xc00], eax
mov dword [rcx + 0x800], edx
add rcx, 4
add r9, 1
cmp r11, rcx
jne 0x14034ec10
mov eax, r8d
and eax, 0xffffffbf
add eax, 0xffffff80
je 0x14034eca9
cmp r8d, 0x100
mov eax, 0xffffffea
jne 0x14034f1a2
mov eax, dword [rsp + 0x28]
lea r13d, [rbx*4]
lea r12, [rsp + 0x30]
mov rdx, rdi
mov qword [rsp + 0x20], r10
movsxd rbp, r13d
mov rcx, r12
mov dword [r10 + 0x110], eax
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov r10, qword [rsp + 0x20]
mov r8, rbp
mov rdx, rdi
mov rcx, r10
call sub.msvcrt.dll_memcpy
mov r10, rax
lea eax, [rbx + 7]
mov dword [rsp + 0x2c], eax
shl eax, 4
cmp r13d, eax
mov dword [rsp + 0x20], eax
jge 0x14034ee2e
lea r15d, [rbx*8]
lea r14, [0x14042f531]
lea edi, [rbx - 1]
lea r9, [r10 + rbp]
lea rsi, [0x1405e4840]
mov edx, 1
mov eax, r15d
movsxd rdi, edi
mov r15, r14
mov qword [rsp + 0x3d0], r10
mov r14d, r13d
mov r13d, eax
nop dword [rax]
movzx eax, byte [rsp + rdi*4 + 0x31]
movzx eax, byte [rsi + rax]
xor al, byte [rsp + 0x30]
mov byte [rsp + 0x30], al
movzx ecx, byte [rsp + rdi*4 + 0x32]
xor eax, edx
movzx ecx, byte [rsi + rcx]
xor byte [rsp + 0x31], cl
movzx ecx, byte [rsp + rdi*4 + 0x33]
movzx ecx, byte [rsi + rcx]
xor byte [rsp + 0x32], cl
movzx ecx, byte [rsp + rdi*4 + 0x30]
mov byte [rsp + 0x30], al
movzx ecx, byte [rsi + rcx]
xor byte [rsp + 0x33], cl
cmp ebx, 1
jle 0x14034edc2
cmp ebx, 8
mov rax, r12
mov edx, 1
setne r8b
cmp edx, 4
jne 0x14034ed9c
test r8b, r8b
je 0x14034edf0
movzx ecx, byte [rax]
xor byte [rax + 4], cl
movzx ecx, byte [rax + 1]
xor byte [rax + 5], cl
movzx ecx, byte [rax + 2]
xor byte [rax + 6], cl
movzx ecx, byte [rax + 3]
xor byte [rax + 7], cl
add edx, 1
add rax, 4
cmp ebx, edx
jne 0x14034ed92
mov rcx, r9
mov r8, rbp
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov r9, rax
add r9, rbp
cmp r13d, dword [rsp + 0x20]
jge 0x14034ee26
movzx edx, byte [r15]
add r13d, r14d
add r15, 1
jmp 0x14034ed40
movzx ecx, byte [rsp + 0x3c]
movzx ecx, byte [rsi + rcx]
xor byte [rsp + 0x40], cl
movzx ecx, byte [rsp + 0x3d]
movzx ecx, byte [rsi + rcx]
xor byte [rsp + 0x41], cl
movzx ecx, byte [rsp + 0x3e]
movzx ecx, byte [rsi + rcx]
xor byte [rsp + 0x42], cl
movzx ecx, byte [rsp + 0x3f]
movzx ecx, byte [rsi + rcx]
xor byte [rsp + 0x43], cl
jmp 0x14034edb7
mov r10, qword [rsp + 0x3d0]
mov eax, dword [rsp + 0x3e8]
test eax, eax
jne 0x14034f1b6
mov ecx, dword [rsp + 0x2c]
sar ecx, 1
test ecx, ecx
jle 0x14034f1a0
movsxd r8, dword [rsp + 0x28]
mov r11, qword [r10]
mov r12, qword [r10 + 8]
shl r8, 4
add r8, r10
cmp ecx, 1
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10], rax
mov qword [r10 + 8], rdx
je 0x14034f1a0
lea r8d, [rbx + 5]
mov r11, qword [r10 + 0x10]
mov r12, qword [r10 + 0x18]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 2
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x10], rax
mov qword [r10 + 0x18], rdx
je 0x14034f1a0
lea r8d, [rbx + 4]
mov r11, qword [r10 + 0x20]
mov r12, qword [r10 + 0x28]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 3
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x20], rax
mov qword [r10 + 0x28], rdx
je 0x14034f1a0
lea r8d, [rbx + 3]
mov r11, qword [r10 + 0x30]
mov r12, qword [r10 + 0x38]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 4
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x30], rax
mov qword [r10 + 0x38], rdx
je 0x14034f1a0
lea r8d, [rbx + 2]
mov r11, qword [r10 + 0x40]
mov r12, qword [r10 + 0x48]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 5
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x40], rax
mov qword [r10 + 0x48], rdx
je 0x14034f1a0
lea r8d, [rbx + 1]
mov r11, qword [r10 + 0x50]
mov r12, qword [r10 + 0x58]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 6
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x50], rax
mov qword [r10 + 0x58], rdx
je 0x14034f1a0
movsxd r8, ebx
mov r11, qword [r10 + 0x60]
mov r12, qword [r10 + 0x68]
shl r8, 4
add r8, r10
cmp ecx, 7
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x60], rax
mov qword [r10 + 0x68], rdx
je 0x14034f1a0
lea r8d, [rbx - 1]
mov r11, qword [r10 + 0x70]
mov r12, qword [r10 + 0x78]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 8
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x70], rax
mov qword [r10 + 0x78], rdx
je 0x14034f1a0
lea r8d, [rbx - 2]
mov r11, qword [r10 + 0x80]
mov r12, qword [r10 + 0x88]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 9
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x80], rax
mov qword [r10 + 0x88], rdx
je 0x14034f1a0
lea r8d, [rbx - 3]
mov r11, qword [r10 + 0x90]
mov r12, qword [r10 + 0x98]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 0xa
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0x90], rax
mov qword [r10 + 0x98], rdx
je 0x14034f1a0
lea r8d, [rbx - 4]
mov r11, qword [r10 + 0xa0]
mov r12, qword [r10 + 0xa8]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 0xb
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0xa0], rax
mov qword [r10 + 0xa8], rdx
je 0x14034f1a0
lea r8d, [rbx - 5]
mov r11, qword [r10 + 0xb0]
mov r12, qword [r10 + 0xb8]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 0xc
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0xb0], rax
mov qword [r10 + 0xb8], rdx
je 0x14034f1a0
lea r8d, [rbx - 6]
mov r11, qword [r10 + 0xc0]
mov r12, qword [r10 + 0xc8]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 0xd
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0xc0], rax
mov qword [r10 + 0xc8], rdx
je 0x14034f1a0
lea r8d, [rbx - 7]
mov r11, qword [r10 + 0xd0]
mov r12, qword [r10 + 0xd8]
movsxd r8, r8d
shl r8, 4
add r8, r10
cmp ecx, 0xe
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [r8], r11
mov qword [r8 + 8], r12
mov qword [r10 + 0xd0], rax
mov qword [r10 + 0xd8], rdx
je 0x14034f1a0
lea ecx, [rbx - 8]
mov r11, qword [r10 + 0xe0]
mov r12, qword [r10 + 0xe8]
movsxd rcx, ecx
shl rcx, 4
add rcx, r10
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov qword [rcx], r11
mov qword [rcx + 8], r12
mov qword [r10 + 0xe0], rax
mov qword [r10 + 0xe8], rdx
xor eax, eax
add rsp, 0x388
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp dword [rsp + 0x28], 1
jle 0x14034f1a0
lea eax, [rbx + 4]
lea r11, [0x1405e2740]
lea rbx, [rsp + 0x60]
lea rsi, [r10 + 0x10]
add rax, 2
shl rax, 4
add r10, rax
nop dword [rax + rax]
mov rdx, qword [rsi + 8]
mov rax, qword [rsi]
lea r8, [0x1405e4840]
mov rcx, rbx
add rsi, 0x10
mov qword [rsp + 0x78], rdx
xor edx, edx
mov qword [rsp + 0x70], rax
call fcn.14034e3a0
movzx edx, byte [rsp + 0x65]
movzx eax, byte [rsp + 0x60]
mov eax, dword [r11 + rax*4]
xor eax, dword [r11 + rdx*4 + 0x400]
movzx edx, byte [rsp + 0x6a]
xor eax, dword [r11 + rdx*4 + 0x800]
movzx edx, byte [rsp + 0x6f]
xor eax, dword [r11 + rdx*4 + 0xc00]
movzx edx, byte [rsp + 0x69]
mov dword [rsp + 0x50], eax
movzx eax, byte [rsp + 0x64]
mov eax, dword [r11 + rax*4]
xor eax, dword [r11 + rdx*4 + 0x400]
movzx edx, byte [rsp + 0x6e]
xor eax, dword [r11 + rdx*4 + 0x800]
movzx edx, byte [rsp + 0x63]
xor eax, dword [r11 + rdx*4 + 0xc00]
movzx edx, byte [rsp + 0x6d]
mov dword [rsp + 0x54], eax
movzx eax, byte [rsp + 0x68]
mov eax, dword [r11 + rax*4]
xor eax, dword [r11 + rdx*4 + 0x400]
movzx edx, byte [rsp + 0x62]
xor eax, dword [r11 + rdx*4 + 0x800]
movzx edx, byte [rsp + 0x67]
xor eax, dword [r11 + rdx*4 + 0xc00]
movzx edx, byte [rsp + 0x61]
mov dword [rsp + 0x58], eax
movzx eax, byte [rsp + 0x6c]
mov eax, dword [r11 + rax*4]
xor eax, dword [r11 + rdx*4 + 0x400]
movzx edx, byte [rsp + 0x66]
xor eax, dword [r11 + rdx*4 + 0x800]
movzx edx, byte [rsp + 0x6b]
xor eax, dword [r11 + rdx*4 + 0xc00]
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov qword [rsi - 0x10], rax
mov qword [rsi - 8], rdx
cmp r10, rsi
jne 0x14034f1e0
xor eax, eax
jmp 0x14034f1a2