Function at 0x1403a89a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x40], 0xfffffffffffffffe
mov rsi, r9
mov rbx, r8
mov qword [rbp - 0x18], rdx
mov edi, 0xffff46f1
mov eax, dword [0x140549ef0]
add eax, edi
cdqe
add rax, qword [0x140549f00]
mov qword [rbp + 0x10], rcx
call qword [case.0x140303ece.0]
mov qword [rbp + 0x30], 0xf
mov qword [rbp + 0x28], 0xa
mov eax, dword [0x140549ee0]
add eax, edi
cdqe
add rax, qword [0x140549f20]
xor ecx, ecx
xor edx, edx
mov r8d, 0x6f7ce304
mov r9d, 0xe0b2367f
call qword [case.0x140303ece.0]
mov rcx, qword [rax]
mov qword [rbp + 0x18], rcx
movzx eax, word [rax + 8]
mov word [rbp + 0x20], ax
mov byte [rbp + 0x22], 0
lea rdx, [rbp + 0x18]
mov qword [rbp - 0x10], rsi
mov rcx, rsi
call fcn.14038e9d0
mov rax, qword [rbp + 0x30]
cmp rax, 0x10
jb 0x1403a8bf3
mov r14, qword [rbp + 0x18]
mov ecx, eax
not ecx
and ecx, 1
mov rdx, rax
xor rdx, 1
and rdx, rax
or rdx, rcx
mov ecx, eax
and ecx, 1
mov r8, qword [0x140549f30]
movabs r15, 0xaf416a5ac7b23f0d
add r15, r8
imul r15, rcx
add r15, rdx
movabs rcx, 0xaf416a5ac7b24f0a
add rcx, r8
cmp r15, rcx
jbe 0x1403a8b51
mov rcx, qword [r14 - 8]
add r14, 0xfffffffffffffff8
sub r14, rcx
cmp r14, 0x20
jae 0x1403a8b64
movabs r8, 0x90758f817eb2744d
movabs rdx, 0x1ecbdad948ffcae6
lea r9, [fcn.1403a89a0]
lea r10d, [r9 + r9]
add r10d, 0xa80
mov r11d, r10d
not r11d
nop word cs:[rax + rax]
test r10d, r11d
je 0x1403a8b37
nop word cs:[rax + rax]
mov esi, dword [0x140549f38]
mov edi, esi
xor edi, 0xf843f0be
and esi, 0x7843f0be
lea esi, [rdi + rsi*2]
lea edi, [r9 + r9]
add edi, 0x1780
mov r14d, edi
xor r14d, esi
not esi
not edi
and edi, esi
or edi, r14d
cmp edi, 0xffffffff
jne 0x1403a8b00
jmp 0x1403a8af0
add rax, qword [0x140549f30]
add rax, r8
mov r8, rax
xor r8, rdx
and rax, rdx
lea r15, [r8 + rax*2]
mov r14, rcx
mov eax, dword [0x14055f560]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403a8bc0
jmp 0x1403a8b86
mov eax, dword [0x14055f564]
nop word [rax + rax]
mov eax, dword [0x14055f560]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x1403a8b70
call fcn.1403c4adc
mov eax, 0xffff46f1
add eax, dword [0x140549ef4]
cdqe
add rax, qword [0x140549f08]
mov rcx, r14
mov rdx, r15
call qword [case.0x140303ece.0]
mov eax, dword [0x140549f38]
mov ecx, eax
xor ecx, 0xf843f0bd
and eax, 0x7843f0bd
add eax, eax
add eax, ecx
je 0x1403a8bf3
nop
mov eax, dword [0x140549ef4]
sub eax, dword [0x140549f38]
add eax, 0x7bb5634
cdqe
add rax, qword [0x140549f08]
mov rcx, r14
mov rdx, r15
call qword [case.0x140303ece.0]
mov eax, dword [0x14055f564]
cmp eax, 0x4e
jge 0x1403a8bc0
jmp 0x1403a8b86
mov rax, qword [rbx + 8]
mov r14b, 1
mov qword [rbp - 0x20], rax
mov rsi, rax
nop word cs:[rax + rax]
mov rsi, qword [rsi]
cmp rsi, qword [rbp - 0x20]
je 0x1403a93e2
mov rax, qword [rbp - 0x18]
mov r11, qword [rax + 0x180]
mov rax, qword [rax + 0x188]
mov qword [rbp - 0x38], rax
cmp r11, rax
sete al
movzx ecx, byte [0x14055bd89]
test cl, al
jne 0x1403a9390
xor cl, 1
mov edx, ecx
and dl, al
jne 0x1403a9390
or cl, al
je 0x1403a9390
lea rax, [rsi + 0x20]
mov qword [rbp - 0x30], rax
lea rax, [rsi + 0x48]
mov qword [rbp - 0x28], rax
movsxd rcx, dword [0x140450550]
lea rax, [0x140450550]
add rcx, rax
mov qword [rbp - 0x40], rcx
mov eax, dword [0x140450570]
mov dword [rbp + 0x38], eax
mov qword [rbp], rsi
nop
mov qword [rbp + 0x30], 0xf
mov qword [rbp + 0x28], 6
mov eax, dword [r11 + 0xa]
mov dword [rbp + 0x18], eax
movzx eax, word [r11 + 0xe]
mov word [rbp + 0x1c], ax
movzx eax, byte [0x140549f3c]
add al, 0xfb
mov byte [rbp + 0x1e], al
mov qword [rbp - 0x48], 0xf
mov qword [rbp - 0x50], 8
mov rax, qword [r11 + 0x10]
mov qword [rbp - 0x60], rax
mov byte [rbp - 0x58], 0
cmp byte [rsi + 0x18], 0
setne byte [rbp + 0x3f]
mov qword [rbp - 8], r11
je 0x1403a8d20
mov eax, dword [0x140549ee4]
mov ecx, 0xffff46f1
add eax, ecx
cdqe
add rax, qword [0x140549f18]
lea rcx, [rbp + 0x18]
mov rdx, qword [rbp - 0x30]
xor r8d, r8d
call qword [case.0x140303ece.0]
cmp rax, 0xffffffffffffffff
setne r13b
jmp 0x1403a8d23
mov r13b, 1
movzx eax, byte [rsi + 0x40]
mov edi, dword [0x140549dd4]
mov ecx, edi
xor ecx, 0xf12a53fa
mov edx, edi
and edx, 0x712a53fa
lea ecx, [rcx + rdx*2]
add ecx, 0xed5ac07
mov dword [0x140549dd4], ecx
mov r15d, 0
mov esi, 0
mov r12d, ecx
test edi, ecx
jne 0x1403a8da0
mov ecx, dword [0x14055f564]
nop word cs:[rax + rax]
mov ecx, dword [0x14055f560]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1403a8d70
mov r15d, 0
mov esi, 0
cmp dword [rbp + 0x38], 0
jg 0x1403a8f0b
nop word cs:[rax + rax]
test al, al
je 0x1403a8de6
mov eax, dword [0x140549ee4]
mov ecx, 0xffff46f1
add eax, ecx
cdqe
add rax, qword [0x140549f18]
lea rcx, [rbp - 0x60]
mov rdx, qword [rbp - 0x28]
xor r8d, r8d
call qword [case.0x140303ece.0]
cmp rax, 0xffffffffffffffff
setne al
test r13b, r13b
setne r13b
xor r13b, al
not r13b
and r13b, al
mov byte [rbp + 0x3f], 1
mov rcx, qword [rbp]
cmp byte [rcx + 0x68], 0
je 0x1403a8e0b
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x1c]
cmp eax, dword [rcx + 0x6c]
sete al
test r13b, r13b
setne r13b
and r13b, al
mov byte [rbp + 0x3f], 1
test r13b, r13b
setne r13b
mov ebx, dword [rcx + 0x70]
mov rax, qword [rbp - 0x48]
cmp rax, 0x10
mov r9d, 0
jb 0x1403a8ecc
mov rcx, qword [rbp - 0x60]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1403a8eae
nop word [rax + rax]
mov edx, dword [0x14055f560]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1403a8e59
test r9b, r9b
je 0x1403a8e70
mov edx, dword [0x14055f564]
cmp edx, 0x24
jge 0x1403a8e40
jmp 0x1403a8e54
mov r8, qword [rcx - 8]
mov rdx, qword [0x140549f30]
add rcx, rdx
sub rcx, r8
movabs r9, 0xaf416a5ac7b23f03
add rcx, r9
movabs r9, 0xaf416a5ac7b23f2b
add rdx, r9
cmp rcx, rdx
jae 0x1403a93fa
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov eax, dword [0x140549ef4]
mov r8d, 0xffff46f1
add eax, r8d
cdqe
add rax, qword [0x140549f08]
call qword [case.0x140303ece.0]
mov rax, qword [rbp + 0x30]
cmp rax, 0x10
jb 0x1403a9334
mov byte [rbp + 0x3e], r13b
mov rcx, qword [rbp + 0x18]
lea rdx, [rax + 1]
lea r8, [fcn.1403a89a0]
add r8d, r8d
add r8d, 0x2a60
mov r9d, r8d
not r9d
test r9d, r8d
jne 0x1403a9150
jmp 0x1403a90d0
xor ecx, ecx
xor r15d, r15d
xor esi, esi
jmp 0x1403a8f29
cmp ecx, dword [rbp + 0x38]
jge 0x1403a8da0
mov edx, dword [0x14055f560]
jmp 0x1403a8f4b
mov edx, dword [0x14055f564]
cmp edx, 0x3c
jl 0x1403a8f90
mov edx, dword [0x14055f564]
cmp edx, 0x5b
jle 0x1403a8f40
nop word cs:[rax + rax]
mov edx, dword [0x14055f564]
mov r8d, dword [0x140549f38]
mov r9d, r8d
xor r9d, 0x7f9ff575
and r8d, 0x7f9ff575
lea r8d, [r9 + r8*2]
add r8d, 0x78a3fb62
cmp edx, r8d
jge 0x1403a8f60
jmp 0x1403a8f40
movsxd r8, ecx
add r8, qword [rbp - 0x40]
mov rdx, qword [r8]
mov r9, qword [r8 + 8]
mov r10, rsi
not r10
mov r8, r15
not r8
and r8, rdx
not rdx
and r10, r9
not r9
mov r11d, dword [0x14055f564]
cmp r11d, 0x5f
jge 0x1403a8ff0
nop word cs:[rax + rax]
mov r11d, dword [0x14055f560]
lea ebx, [r11 - 1]
imul ebx, r11d
test bl, 1
je 0x1403a9000
nop word cs:[rax + rax]
mov r11d, dword [0x14055f564]
cmp r11d, 0x4f
jge 0x1403a8ff0
jmp 0x1403a8fd0
mov r11, rsi
and r11, r9
mov rsi, r10
or rsi, r11
mov r9, r15
and r9, rdx
mov r15, r8
or r15, r9
nop dword [rax + rax]
mov edx, dword [0x14055f560]
lea r8d, [rdx + 1]
imul r8d, edx
test r8b, 1
je 0x1403a9052
mov edx, dword [0x14055f564]
cmp edx, 0x25
jmp 0x1403a9020
mov edx, dword [0x14055f560]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
mov edx, dword [0x14055f560]
mov r8d, dword [0x140549f38]
neg r8d
add r8d, edx
add r8d, 0x7bc0f42
imul r8d, edx
test r8b, 1
jne 0x1403a9040
add ecx, 0xc58fcfc5
add ecx, 0x3a70304b
mov edx, dword [0x14055f560]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1403a90c0
nop word cs:[rax + rax]
mov edx, dword [0x14055f560]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1403a8f20
nop dword [rax + rax]
test r14b, r14b
je 0x1403a90c0
jmp 0x1403a90a0
mov r8, qword [0x140450568]
mov r13, qword [0x140450560]
cmp dword [0x140549f38], 0x7bc0f43
jne 0x1403a9150
mov dword [rbp + 0xc], ebx
xor r10d, r10d
test edi, r12d
setne r10b
add r10, 0xffffffffffffffff
mov r11d, 0
adc r11, 0xffffffffffffffff
sub r13, r15
sbb r8, rsi
nop dword [rax + rax]
mov esi, dword [0x14055f560]
lea edi, [rsi + 1]
imul edi, esi
test dil, 1
jne 0x1403a912d
mov esi, dword [0x14055f564]
cmp esi, 0x59
jle 0x1403a9170
mov r9d, dword [0x14055f560]
lea esi, [r9 + 1]
imul esi, r9d
test sil, 1
jne 0x1403a9110
jmp 0x1403a9122
mov r8, qword [0x140450568]
mov r8, qword [0x140450560]
jmp 0x1403a90d0
mov r12, r13
not r12
mov rbx, r8
not rbx
mov rsi, r10
not rsi
mov rdi, r11
not rdi
mov r15, r8
xor r15, rdi
xor rdi, rbx
and rbx, r11
mov r9, r13
xor r9, rsi
xor rsi, r12
and r12, r10
or r9, r12
or r15, rbx
not r15
not r9
or r9, r12
or r15, rbx
and r13, r10
or r13, rsi
and r8, r11
or r8, rdi
not r13
or r13, r9
not r8
or r8, r15
not r13
not r8
or r8, r13
sete r8b
setne r9b
movzx r10d, byte [0x14055c3e0]
and r8b, r10b
xor r10b, 1
mov r11d, r9d
xor r11b, r10b
and r11b, r9b
and r10b, r9b
or r8b, r10b
or r8b, r11b
mov byte [0x14055c3e0], r8b
nop word cs:[rax + rax]
mov r8d, dword [0x14055f564]
cmp r8d, 0x62
jle 0x1403a922a
mov r8d, dword [0x14055f564]
cmp r8d, 0x39
jge 0x1403a9210
cmp rdx, 0x1000
mov r10d, 0xf843f0bd
mov ebx, dword [rbp + 0xc]
movzx r13d, byte [rbp + 0x3e]
jb 0x1403a9314
nop word cs:[rax + rax]
mov edx, dword [0x14055f560]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x140549f38]
add edx, r10d
cmp r8d, edx
jne 0x1403a9288
mov r8, qword [rcx - 8]
mov rdx, qword [0x140549f30]
mov r9d, dword [0x14055f564]
cmp r9d, 0x59
jle 0x1403a92a0
mov edx, dword [0x14055f564]
cmp edx, 0x28
jge 0x1403a9250
jmp 0x1403a9270
add rcx, rdx
movabs r9, 0xaf416a5ac7b23f03
add rcx, r9
mov r9, r8
neg r9
mov r10, rcx
xor r10, r9
and r9, rcx
lea rcx, [r10 + r9*2]
mov r9, rdx
movabs r10, 0xaf416a5ac7b23f2b
xor r9, r10
movabs r10, 0x2f416a5ac7b23f2b
and rdx, r10
lea rdx, [r9 + rdx*2]
cmp rcx, rdx
jae 0x1403a93ff
mov rcx, rax
neg rcx
dec rax
and rax, 0xffffffffffffffd8
mov rdx, rcx
xor rdx, 0x27
and rdx, rcx
and ecx, 0x27
or rcx, rax
lea rdx, [rcx + rdx*2]
neg rdx
mov rcx, r8
mov eax, dword [0x140549ef4]
sub eax, dword [0x140549f38]
add eax, 0x7bb5634
cdqe
add rax, qword [0x140549f08]
call qword [case.0x140303ece.0]
and byte [rbp + 0x3f], r13b
mov rsi, qword [rbp]
jne 0x1403a9392
mov r11, qword [rbp - 8]
add r11, 0x40
cmp r11, qword [rbp - 0x38]
setne dl
sete r8b
movzx eax, byte [0x14055c3e0]
mov r9d, eax
xor r9b, 1
mov r10d, eax
xor r10b, r8b
mov ecx, r9d
and cl, dl
or cl, r10b
xor cl, 1
and r9b, r8b
and al, dl
or al, r9b
test cl, al
jne 0x1403a9390
xor cl, al
je 0x1403a8c90
nop word cs:[rax + rax]
xor ebx, ebx
mov rax, qword [rsi + 0x10]
mov qword [rbp + 0x18], rax
mov dword [rbp + 0x20], ebx
mov rcx, qword [rbp + 0x10]
lea rdx, [rbp - 0x60]
lea r8, [rbp + 0x18]
call fcn.140396f20
nop
mov eax, dword [0x14055f560]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1403a93b0
cmp dword [0x140549f38], 0x7bc0f43
jne 0x1403a93b0
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rbp - 0x10]
mov r8d, ebx
call fcn.14038ea30
jmp 0x1403a8c10
mov rax, qword [rbp + 0x10]
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1403c4adc
call fcn.1403c4adc
int3