Function at 0x1403a3340
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x190
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x108], 0xfffffffffffffffe
mov dword [rsp + 0x20], 0xdfd70c31
mov ecx, 1
mov edx, 1
mov r8d, 0x2a03ca68
mov r9d, 0xe7d9c711
call fcn.1403a66f0
mov r8d, 0xa3bd91c6
add r8d, dword [0x140549cb8]
lea rdx, [rbp - 0x50]
mov rcx, rax
call fcn.14026c600
test eax, eax
je 0x1403a3579
mov qword [rbp + 0xf8], 0
mov qword [rbp + 0x100], 0xf
mov byte [rbp + 0xe8], 0
lea rcx, [rbp - 0x50]
mov edx, 0x80c73c31
mov r8d, 0x2aa07161
call fcn.1400abe80
mov rsi, rax
lea rax, [0x1404500fc]
movsxd rcx, dword [0x1404500fc]
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea rdi, [rdx + rcx*2]
mov eax, dword [0x140549cb8]
lea ecx, [rax - 0x5c426f39]
lea rdx, [fcn.1403a3340]
add edx, edx
add edx, 0x2b40
and edx, ecx
add eax, 0xa3bd90c6
cmp edx, eax
je 0x1403a3423
mov eax, dword [0x14045019c]
mov ebx, dword [0x14045019c]
cmp rsi, 0xf
jbe 0x1403a3444
lea rcx, [rbp + 0xe8]
lea r9, [rbp - 0x50]
mov rdx, rsi
call fcn.140086c60
jmp 0x1403a3466
mov qword [rbp + 0xf8], rsi
lea rcx, [rbp + 0xe8]
lea rdx, [rbp - 0x50]
mov r8, rsi
call fcn.14040cc90
mov byte [rbp + rsi + 0xe8], 0
mov rax, qword [rbp + 0xf8]
cmp qword [rbp + 0x100], 0x10
jb 0x1403a3486
mov rsi, qword [rbp + 0xe8]
cmp rax, 9
jae 0x1403a3493
jmp 0x1403a34ef
lea rsi, [rbp + 0xe8]
cmp rax, 9
jb 0x1403a34ef
movzx eax, byte [0x140549cbc]
add al, 0x60
cmp byte [rsi], al
jne 0x1403a34ef
mov dword [rsp + 0x20], 0x4a2d6c29
xor ecx, ecx
mov edx, 1
mov r8d, 0x9950021e
mov r9d, 0xeb42b325
call fcn.1403a58d0
mov dword [rsp + 0x28], 0x35745a0f
mov dword [rsp + 0x20], 0x86f19027
mov r8d, 9
mov rcx, rsi
mov rdx, rax
mov r9d, 0xaa7e49e3
call fcn.1400a9850
test eax, eax
je 0x1403a358d
mov rax, qword [0x14055bea8]
add rax, qword [rbp + 0x100]
cmp rax, 0x10
jb 0x1403a3579
mov rcx, qword [rbp + 0xe8]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
movabs r8, 0x3b84c04fe63485be
add r8, qword [0x140549cb0]
cmp rdx, r8
jbe 0x1403a3568
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
add rcx, rcx
and rcx, 0xfffffffffffffff0
mov r9, rdx
xor r9, rcx
and rcx, rdx
lea rcx, [r9 + rcx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x1403a386a
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov r8d, 0x68b091fd
mov r9d, 0x8ba06ce5
call fcn.1400a7e90
xor eax, eax
add rsp, 0x190
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
lea rcx, [rbp + 0xb0]
call fcn.14039ece0
movzx esi, byte [rbp + 0xd8]
test sil, sil
je 0x1403a35ac
mov byte [rbp + 0xd8], 0
movzx eax, byte [0x140549cbc]
mov ecx, eax
xor cl, 0x1d
and al, 0x1d
add al, al
mov edx, ecx
xor dl, al
and al, cl
add al, al
add al, dl
cmp byte [rbp + 0xb0], al
je 0x1403a369b
mov rax, qword [rbp + 0xd0]
cmp byte [0x14055bd35], 0
jne 0x1403a35fc
movabs rcx, 0x3b84c04fe63475ce
add rcx, qword [0x140549cb0]
cmp rax, rcx
jbe 0x1403a369b
mov rcx, qword [rbp + 0xb8]
movabs rdx, 0xe047a4b1dc406f9b
add rdx, qword [0x140549cb0]
mov r8, rdx
xor r8, rdx
not r8
and r8, rax
xor r8, rdx
and rdx, rax
lea r8, [r8 + rdx*2]
movabs rdx, 0x5b3d1b9e09f40625
add rdx, r8
cmp rdx, 0x1000
jb 0x1403a368a
mov r8, qword [rcx - 8]
movabs rdx, 0xd653d4a2a287816e
add rdx, rcx
movabs rcx, 0x7ffffffffffffff8
and rcx, rdx
xor rdx, 0xfffffffffffffff8
lea rcx, [rdx + rcx*2]
sub rcx, r8
movabs rdx, 0x29ac2b5d5d787e92
add rdx, rcx
cmp rdx, 0x20
jae 0x1403a386f
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov r8d, 0x68b091fd
mov r9d, 0x8ba06ce5
call fcn.1400a7e90
test sil, sil
je 0x1403a34ef
mov rax, qword [rbp + 0x100]
cmp rax, 0x10
jb 0x1403a3a26
mov rcx, qword [rbp + 0xe8]
mov edx, dword [0x140549580]
lea r9d, [rdx + 1]
mov dword [0x140549580], r9d
not r9d
not edx
mov r8d, edx
xor r8d, r9d
and r8d, edx
or r8d, r9d
xor r8d, 0xffffffff
je 0x1403a36e9
xor r9d, r9d
jmp 0x1403a3739
mov edx, dword [0x14055f550]
nop
mov edx, dword [0x140549cb8]
mov r9d, dword [0x14055f550]
lea r10d, [rdx + r9]
dec r10d
imul r10d, r9d
and r10d, 1
lea r9d, [rdx - 0x5c426f3a]
cmp r10d, r9d
jne 0x1403a36f0
mov r9d, edx
xor r9d, 0xa3bd90c6
and edx, 0x23bd90c6
lea r10d, [r9 + rdx*2]
xor edx, edx
mov r9d, 0
cmp r10d, ebx
jl 0x1403a3756
mov edx, dword [0x14055f550]
lea r10d, [rdx - 1]
imul r10d, edx
test r10b, 1
jne 0x1403a38a0
jmp 0x1403a3874
mov r10b, 1
xor r9d, r9d
jmp 0x1403a37a1
mov r14d, r11d
not r14b
xor r11b, sil
not r11b
and r11b, sil
xor r9b, r14b
not r9b
and r9b, r14b
or r9b, r11b
mov r11d, dword [0x140549cb8]
mov esi, r11d
xor esi, 0x255c5c62
and r11d, 0x255c5c62
lea r11d, [rsi + r11*2]
sub edx, r11d
add edx, 0x819ecb9d
cmp edx, ebx
jge 0x1403a3739
movsxd rsi, edx
add rsi, rdi
mov r11d, dword [0x14055f554]
cmp r11d, 0x30
jg 0x1403a37d9
nop word cs:[rax + rax]
movzx r11d, byte [rsi]
mov r14d, dword [0x14055f550]
lea r15d, [r14 - 1]
imul r15d, r14d
test r15b, 1
je 0x1403a37df
movzx r11d, byte [rsi]
jmp 0x1403a37c0
mov esi, dword [0x14055f550]
mov r14d, dword [0x140549cb8]
add r14d, esi
dec r14d
imul r14d, esi
test r14b, 1
je 0x1403a3805
nop dword [rax]
test r10b, r10b
je 0x1403a3800
mov esi, r9d
not sil
mov r14d, dword [0x14055f550]
lea r15d, [r14 - 1]
imul r15d, r14d
test r15b, 1
jne 0x1403a3840
mov r14d, dword [0x14055f550]
lea r15d, [r14 - 1]
imul r15d, r14d
test r15b, 1
je 0x1403a375e
nop dword [rax]
mov r14d, dword [0x14055f554]
mov r15d, dword [0x140549cb8]
mov r12d, r15d
xor r12d, 0xa3bd90df
and r15d, 0x23bd90df
lea r15d, [r12 + r15*2]
cmp r14d, r15d
jge 0x1403a3840
jmp 0x1403a3820
call fcn.1403c4adc
call fcn.1403c4adc
mov edx, dword [0x14055f550]
lea r10d, [rdx + 1]
imul r10d, edx
and r10d, 1
mov edx, 0xa3bd90c6
add edx, dword [0x140549cb8]
cmp r10d, edx
je 0x1403a38d9
nop word cs:[rax + rax]
mov edx, dword [0x14055f550]
lea r10d, [rdx - 1]
imul r10d, edx
and r10d, 1
mov edx, dword [0x140549cb8]
mov r11d, edx
xor r11d, 0xa4d09ed
and edx, 0xa4d09ed
lea edx, [r11 + rdx*2]
add edx, 0x997086d9
cmp r10d, edx
jne 0x1403a38a0
jmp 0x1403a3874
mov r10, qword [0x140549cb0]
add r10, rax
movabs rdx, 0x3b84c04fe63475c0
add rdx, r10
cmp rdx, 0xfff
jbe 0x1403a3a15
mov r10, qword [rcx - 8]
add rcx, qword [0x140549cb0]
sub rcx, r10
movabs rdx, 0x3b84c04fe63475b7
add rdx, rcx
cmp rdx, 0x20
jae 0x1403a3a2d
mov ecx, 0xa3bd90fa
mov edx, dword [0x14055f554]
mov r11d, dword [0x140549cb8]
add r11d, ecx
cmp edx, r11d
jge 0x1403a3958
movzx edx, byte [0x140450138]
mov r11d, dword [0x14055f550]
lea esi, [r11 - 1]
imul esi, r11d
test sil, 1
je 0x1403a3975
movzx edx, byte [0x140450138]
mov edx, dword [0x14055f550]
lea r11d, [rdx - 1]
imul r11d, edx
test r11b, 1
jne 0x1403a3927
jmp 0x1403a393c
mov ecx, dword [0x14055f554]
nop dword [rax + rax]
test r8d, r8d
setne cl
mov r11d, dword [0x14055f554]
cmp r11d, 0x1f
jg 0x1403a3980
mov r8d, ecx
neg r8b
dec cl
sub r9b, dl
mov edx, r9d
neg dl
movzx r11d, byte [0x140549cbc]
add r11b, 0x1c
dec r9b
mov ebx, r9d
and bl, r11b
or r9b, r11b
not r9b
or r9b, bl
xor dl, cl
mov r11d, r9d
not r11b
xor r9b, r8b
and r11b, cl
or r11b, r9b
not r11b
or r11b, dl
cmp r11b, 0xff
setne cl
or cl, byte [0x14055bd35]
and cl, 1
mov byte [0x14055bd35], cl
movabs rcx, 0xbdd2a16b75543b31
add rax, rcx
movabs rcx, 0x422d5e948aabc4f7
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rdx, [rdx + rax*2]
mov rcx, r10
mov r8d, 0x68b091fd
mov r9d, 0x8ba06ce5
call fcn.1400a7e90
mov al, 1
jmp 0x1403a357b
call fcn.1403c4adc
int3