Function at 0x140003880
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x140030010]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rbx, rcx
mov rsi, rdx
mov rcx, qword [rbp + 0x110]
mov rdi, r9
mov rdx, qword [rbp + 0x118]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x50], rdx
test rbx, rbx
je 0x140003f80
test rsi, rsi
je 0x140003f80
mov r14, 0xffffffffffffffff
mov rax, r14
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400038e4
test rax, rax
je 0x140003f80
test r8, r8
je 0x140003f80
mov rax, r14
inc rax
cmp word [r8 + rax*2], 0
jne 0x140003903
test rax, rax
je 0x140003f80
test rcx, rcx
je 0x140003f80
test rdx, rdx
je 0x140003f80
mov qword [rsp + 0x1e0], r12
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x1a8], r13
mov rcx, r8
mov qword [rsp + 0x1a0], r15
xor r15d, r15d
mov word [rsp + 0x20], r15w
call fcn.140003690
test eax, eax
je 0x140003a4d
test rdi, rdi
je 0x1400039a6
mov rax, r14
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2], r15w
jne 0x140003970
test rax, rax
je 0x1400039a6
lea rdx, [rsp + 0x24]
mov word [rsp + 0x24], r15w
mov rcx, rdi
call fcn.140003690
test eax, eax
je 0x140003a4d
movzx eax, word [rsp + 0x20]
xor word [rsp + 0x24], ax
jmp 0x1400039b0
movzx eax, word [rsp + 0x20]
mov word [rsp + 0x24], ax
mov rcx, rsi
call fcn.140007ef0
xor edx, edx
lea rcx, [rbp - 0x80]
mov r8d, 0x104
mov rdi, rax
call fcn.14000b020
xor esi, esi
mov rax, r14
inc rax
cmp byte [rdi + rax], sil
jne 0x1400039d1
test rax, rax
je 0x140003a26
mov rsi, rdi
movsx ecx, byte [rsi]
call fcn.1400126ec
test eax, eax
jne 0x1400039fa
movsx ecx, byte [rsi]
call fcn.140012768
test eax, eax
je 0x140003a0a
movsx ecx, byte [rsi]
call fcn.140012444
mov byte [rbp + r15 - 0x80], al
inc r15d
inc rsi
mov rcx, r14
inc rcx
cmp byte [rdi + rcx], 0
jne 0x140003a10
mov rax, rsi
sub rax, rdi
cmp rax, rcx
jb 0x1400039e2
xor esi, esi
mov rcx, rdi
call fcn.140008ef4
lea rax, [rbp - 0x80]
inc r14
cmp byte [rax + r14], 0
jne 0x140003a32
cmp r14, 0x18
je 0x140003a84
mov ecx, 0x452
call qword [sym.imp.KERNEL32.DLL_SetLastError]
xor eax, eax
mov r13, qword [rsp + 0x1a8]
mov r12, qword [rsp + 0x1e0]
mov r15, qword [rsp + 0x1a0]
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140008ed0
add rsp, 0x1b0
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor eax, eax
lea r8, [rsp + 0x68]
mov qword [rsp + 0x68], rax
lea r12, [0x140000000]
mov dword [rsp + 0x70], eax
mov r10d, esi
lea edi, [rax + 1]
lea edx, [r10 + r10]
lea eax, [rdx + 1]
movzx edx, byte [rbp + rdx - 0x80]
movzx r9d, byte [rbp + rax - 0x80]
test r8, r8
je 0x140003f6b
mov byte [r8], 0
mov ecx, esi
movsxd rax, ecx
cmp byte [rax + r12 + 0x2a9b0], dl
je 0x140003ae0
inc ecx
cmp ecx, 0x11
jb 0x140003ac2
mov ecx, 3
jmp 0x140003a47
shl cl, 4
mov r11d, esi
mov byte [r8], cl
mov edx, esi
nop dword [rax + rax]
movsxd rax, edx
cmp byte [rax + r12 + 0x2a9b0], r9b
je 0x140003b06
inc edx
cmp edx, 0x11
jb 0x140003af0
jmp 0x140003b0e
or cl, dl
mov r11d, edi
mov byte [r8], cl
test r11d, r11d
je 0x140003f76
inc r10d
inc r8
cmp r10d, 0xc
jb 0x140003aa1
movsd xmm0, qword [rsp + 0x68]
lea rax, [rsp + 0x58]
sub rbx, rax
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x48], rbx
mov edi, esi
mov r13d, 0xffffffff
nop word [rax + rax]
mov r11d, esi
mov dword [rsp + 0x30], esi
nop word [rax + rax]
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x60], eax
movsd qword [rsp + 0x58], xmm0
test edi, edi
je 0x140003d13
movzx ecx, byte [rsp + 0x58]
movzx r8d, byte [rsp + 0x63]
movzx r9d, byte [rsp + 0x62]
movzx r10d, byte [rsp + 0x61]
movzx esi, byte [rsp + 0x5f]
movzx r14d, byte [rsp + 0x5e]
movzx r15d, byte [rsp + 0x5d]
movzx r12d, byte [rsp + 0x5c]
movzx r13d, byte [rsp + 0x5b]
movzx ebx, byte [rsp + 0x5a]
movzx r11d, byte [rsp + 0x59]
mov eax, edi
movzx edi, byte [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x20], cl
nop word [rax + rax]
movzx eax, cl
movzx edx, r9b
and al, 0x80
movzx ecx, r8b
shr al, 7
movzx r9d, cl
movzx ecx, r10b
shr r9b, 7
movzx r10d, dl
add r8b, r8b
or r8b, al
shr r10b, 7
movzx eax, dl
movzx edx, dil
add al, al
movzx edi, cl
or r9b, al
shr dil, 7
movzx eax, cl
movzx ecx, sil
add al, al
movzx esi, dl
or r10b, al
shr sil, 7
movzx eax, dl
movzx edx, r14b
add al, al
movzx r14d, cl
or dil, al
shr r14b, 7
movzx eax, cl
movzx ecx, r15b
add al, al
movzx r15d, dl
or sil, al
shr r15b, 7
movzx eax, dl
movzx edx, r12b
add al, al
movzx r12d, cl
or r14b, al
shr r12b, 7
movzx eax, cl
movzx ecx, bl
add al, al
or r15b, al
movzx eax, dl
add al, al
shr dl, 7
or r12b, al
movzx eax, r13b
movzx ebx, al
add r13b, r13b
movzx eax, cl
shr bl, 7
add al, al
or r13b, dl
movzx edx, r11b
or bl, al
movzx r11d, cl
movzx eax, dl
add al, al
shr r11b, 7
or r11b, al
shr dl, 7
movzx eax, byte [rsp + 0x20]
movzx ecx, dl
add al, al
or cl, al
sub qword [rsp + 0x38], 1
mov byte [rsp + 0x20], cl
mov byte [rsp + 0x58], cl
jne 0x140003bd0
mov byte [rsp + 0x60], dil
mov edi, dword [rsp + 0x28]
mov byte [rsp + 0x5f], sil
xor esi, esi
mov byte [rsp + 0x5c], r12b
lea r12, [0x140000000]
mov byte [rsp + 0x5b], r13b
mov r13d, 0xffffffff
mov byte [rsp + 0x5a], bl
mov rbx, qword [rsp + 0x48]
mov byte [rsp + 0x59], r11b
mov r11d, dword [rsp + 0x30]
mov byte [rsp + 0x63], r8b
mov byte [rsp + 0x62], r9b
mov byte [rsp + 0x61], r10b
mov byte [rsp + 0x5e], r14b
mov byte [rsp + 0x5d], r15b
lea rax, [rsp + 0x58]
mov edx, 0xc
nop dword [rax]
movzx ecx, byte [rbx + rax]
xor cl, byte [rax]
lea rax, [rax + 1]
xor cl, r11b
mov byte [rax - 1], cl
sub rdx, 1
jne 0x140003d20
movzx eax, byte [rsp + 0x58]
mov r10d, 4
mov r15d, dword [rsp + 0x60]
not rax
movzx r14d, byte [rsp + 0x5b]
movzx ecx, al
mov dword [rsp + 0x60], esi
movzx esi, byte [rsp + 0x5a]
mov edx, dword [r12 + rcx*4 + 0x2a5b0]
movzx ecx, byte [rsp + 0x59]
xor edx, 0xffffff
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov r8d, dword [r12 + rax*4 + 0x2a5b0]
xor r8d, edx
mov ecx, r8d
shr r8d, 8
xor rcx, rsi
movzx eax, cl
mov r9d, dword [r12 + rax*4 + 0x2a5b0]
xor r9d, r8d
mov ecx, r9d
shr r9d, 8
xor rcx, r14
movzx eax, cl
movzx ecx, byte [rsp + 0x5c]
mov edx, dword [r12 + rax*4 + 0x2a5b0]
xor edx, r9d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsp + 0x5d]
mov r8d, dword [r12 + rax*4 + 0x2a5b0]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsp + 0x5e]
mov edx, dword [r12 + rax*4 + 0x2a5b0]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsp + 0x5f]
mov r8d, dword [r12 + rax*4 + 0x2a5b0]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
mov r9d, dword [r12 + rax*4 + 0x2a5b0]
xor r9d, r8d
lea r8, [rsp + 0x60]
nop dword [rax]
movzx ecx, byte [r8]
mov eax, r9d
xor rcx, rax
inc r8
shr eax, 8
movzx edx, cl
mov r9d, dword [r12 + rdx*4 + 0x2a5b0]
xor r9d, eax
add r10d, r13d
jne 0x140003e30
not r9d
cmp r9d, r15d
jne 0x140003e7c
movzx r12d, word [rsp + 0x24]
cmp word [rsp + 0x58], r12w
jne 0x140003e75
cmp sil, 0x10
jne 0x140003e75
cmp r14b, 1
je 0x140003ead
lea r12, [0x140000000]
inc r11d
mov esi, 0
mov dword [rsp + 0x30], r11d
cmp r11d, 0x100
jb 0x140003b60
inc edi
mov dword [rsp + 0x28], edi
cmp edi, 0x11
jb 0x140003b50
lea ecx, [rsi + 0x17]
jmp 0x140003a47
movzx ebx, word [rsp + 0x5c]
mov eax, 0xffff
mov esi, 1
cmp bx, ax
jne 0x140003edf
mov rax, qword [rsp + 0x40]
xor ecx, ecx
mov rdx, qword [rsp + 0x50]
mov qword [rax], rcx
mov eax, esi
movzx ecx, word [rsp + 0x5e]
mov word [rdx], cx
jmp 0x140003a4f
mov rdi, qword [rsp + 0x40]
lea rcx, [rsp + 0x68]
xor eax, eax
mov rdx, rdi
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rdi], rax
mov word [rsp + 0x6e], si
mov dword [rsp + 0x68], 0x107d0
call qword [sym.imp.KERNEL32.DLL_SystemTimeToFileTime]
test eax, eax
je 0x140003a4d
movzx eax, bx
imul rcx, rax, 0x15180
mov eax, dword [rdi + 4]
cmp rcx, r13
mov dword [rsp + 0x2c], eax
mov eax, dword [rdi]
cmova rcx, r13
mov dword [rsp + 0x28], eax
mov ecx, ecx
mov eax, esi
imul rdx, rcx, 0x989680
mov rcx, qword [rsp + 0x28]
add rcx, rdx
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x28], rcx
shr rcx, 0x20
mov dword [rdi + 4], ecx
mov ecx, dword [rsp + 0x28]
mov dword [rdi], ecx
movzx ecx, word [rsp + 0x5e]
mov word [rdx], cx
jmp 0x140003a4f
mov ecx, 0x57
call qword [sym.imp.KERNEL32.DLL_SetLastError]
mov ecx, 3
jmp 0x140003a47
mov ecx, 0x57
call qword [sym.imp.KERNEL32.DLL_SetLastError]
xor eax, eax
jmp 0x140003a67