Function at 0x140189c50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], rcx
mov eax, dword [0x140221168]
xor eax, 0x215c77f4
imul eax, dword [0x14022116c]
sub eax, 0x3df62a5d
mov ecx, 0x19740021
xor ecx, 0xe68bffde
mov edx, eax
xor edx, ecx
and edx, 0x96a95a70
mov r8d, 0xffffffff
xor r8d, 0x96a95a70
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x5f662df3
xor r8d, 0xc9cf7783
mov edx, eax
and edx, r8d
mov r8d, 0xa6b3621c
xor r8d, 0x301a386c
or eax, r8d
imul eax, edx
add eax, ecx
sub eax, 0x660156e9
cmp eax, 0x3919962d
jbe 0x14018a16e
mov edx, dword [0x140221170]
mov ecx, dword [0x140221174]
mov eax, edx
and eax, ecx
xor edx, ecx
mov ecx, eax
mov eax, edx
lea eax, [rax + rcx*2]
xor eax, 0x3d6a43ed
imul edx, eax, 0xca6f978d
mov eax, edx
and eax, 0x6fe5d666
xor edx, 0xefe5d666
mov ecx, eax
mov eax, edx
lea eax, [rax + rcx*2]
mov dword [rbp + 0x3c], eax
mov eax, 0xcafa255b
mov dword [rbp + 0x38], eax
mov eax, 0x10
mov qword [rbp - 0x28], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp - 8], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp + 0x18], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp + 0x10], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp - 0x38], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp - 0x30], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp - 0x20], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x18], rax
sub rsp, 0x20
call fcn.14018af70
add rsp, 0x20
mov qword [rbp + 0x30], rax
add rax, 0x50
mov qword [rbp - 0x10], rax
mov ecx, 0x38
mov edx, 8
sub rsp, 0x20
call fcn.140015160
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp + 0x50]
mov qword [rbp + 8], r8
mov r9d, dword [rax]
mov dword [r8], r9d
mov r8, qword [rax + 8]
mov qword [rdx], r8
mov rax, qword [rax + 0x10]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001fd14
mov r9, qword [rbp]
mov r8, qword [rbp + 8]
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov r10, qword [r9]
mov r9, qword [r9 + 8]
mov qword [r8 + 8], r10
mov qword [r8 + 0x10], r9
mov r9b, byte [rax + 0x28]
mov byte [r8 + 0x28], r9b
mov r8, qword [rax + 0x18]
mov qword [rdx], r8
mov rax, qword [rax + 0x20]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001fd14
mov rcx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp + 0x20], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x28], rcx
mov rcx, qword [rax + 0x30]
sub rsp, 0x20
call fcn.1400ee0e3
mov rdx, qword [rbp + 0x30]
mov ecx, dword [rbp + 0x38]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp + 0x3c]
mov qword [rbp + 0x40], r8
cmp byte [rdx + 0x50], 0
sete dl
mov byte [rbp + 0x4f], dl
cmp eax, ecx
je 0x14018a16e
mov dl, byte [rbp + 0x4f]
mov cl, 1
xor eax, eax
test dl, 1
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x140189ed2
jmp 0x14018a027
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x30]
mov rax, qword [rbp + 0x50]
mov r8, qword [rax + 0x38]
mov qword [rdx], r8
mov rax, qword [rax + 0x40]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140189aa0
mov rax, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x10]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp - 0x58], rcx
mov rax, qword [rax + 8]
mov qword [rbp - 0x50], rax
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x14018a027
mov eax, dword [0x140221178]
mov r8d, dword [0x14022117c]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x87646798
xor edx, edx
div ecx
xor eax, 0x5397403d
mov ecx, 0xdb59fbd9
xor edx, edx
div ecx
cmp eax, 0xfad60251
jae 0x14018a177
mov r8, qword [rbp - 0x18]
mov rdx, qword [rbp + 0x40]
mov rcx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x50]
mov r9, qword [rbp - 0x58]
mov r10, qword [rbp + 0x28]
mov r11, qword [rbp + 0x20]
mov esi, dword [0x140221180]
mov edi, dword [0x140221184]
xor edi, 0x279ea369
xor edi, 0xffffffff
xor ebx, ebx
sub ebx, 1
sub edi, ebx
sub esi, edi
and esi, 0x7f19fa06
sub esi, 0xfe24af5a
or esi, 0xaad4ba2e
mov dword [rbp - 0x68], esi
mov qword [rcx], r11
mov qword [rcx + 8], r10
mov qword [r8], r9
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.140187860
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp + 8]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp - 0x68]
mov qword [rdx + 0x30], r8
mov r8b, byte [rcx]
mov byte [rbp - 0x61], r8b
xor ecx, ecx
cmp r8b, 0
cmove rcx, rdx
mov qword [rbp - 0x60], rcx
cmp eax, 0xc1098fa9
jae 0x14018a177
mov rax, qword [rbp - 0x60]
mov cl, byte [rbp - 0x61]
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jmp 0x14018a027
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x50]
mov dl, byte [rbp - 0x41]
mov r8, qword [rbp - 0x40]
mov qword [rbp - 0x78], r8
mov byte [rbp - 0x69], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1400ed720
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xd7
xor cl, 0xd7
cmp al, cl
jne 0x14018a161
mov eax, dword [0x140221188]
mov ecx, 0x9299f45b
xor ecx, 0xeacbb098
xor eax, ecx
mov ecx, dword [0x14022118c]
xor ecx, 0x70b78898
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov r8d, 0xeeae61b4
xor r8d, 0x11519e4b
mov edx, ecx
xor edx, r8d
or eax, edx
and eax, 0x18161749
xor eax, 0xffffffff
mov edx, 0x18161749
and edx, 0x18161749
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
mov edx, 0x638905df
xor edx, 0x9c76fa20
xor ecx, edx
or eax, ecx
sub eax, 0xc6557e22
xor ecx, ecx
sub ecx, eax
mov eax, 0x11b7de71
xor eax, 0x11b7de71
mov edx, 0x70775303
xor edx, 0x86960c8b
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
cmp eax, 0xa9c8a2af
jae 0x14018a180
mov rcx, qword [rbp - 0x10]
mov dl, byte [rbp - 0x69]
mov eax, dword [0x140221190]
xor eax, dword [0x140221194]
mov r8d, 0x75e4fa6
xor r8d, 0xaf4cb136
or eax, r8d
mov r8d, eax
and r8d, 0x1821e4bf
shl r8d, 1
xor eax, 0x1821e4bf
add eax, r8d
add eax, 0x9e58728a
mov r8d, 0xdb8cda6c
xor r8d, 0x27972189
add eax, r8d
sub eax, 0x9e58728a
mov byte [rcx], dl
cmp eax, 0x973223ae
jae 0x14018a0fc
jmp 0x14018a161
mov rax, qword [rbp - 0x78]
lea rsp, [rbp + 0x58]
pop rbx
pop rdi
pop rsi
pop rbp
ret
ror eax, cl
xchg byte [rax - 0x49717], ch
call [rbp + 0x3d]
and bh, ah
jmp 0x140189f78
pop rbp
cmp eax, 0xf8e9e720
std
invalid
movsb byte [rdi], byte [rsi]
out dx, eax
call 0x13f8c8ab8
invalid