Function at 0x1802c9c40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rdi, r8
mov rsi, rcx
mov r15, qword [rdx]
cmp r15, 0xfb
setb al
test al, 1
jne 0x1802c9c80
jmp 0x1802c9c69
cmp r15, 0x10000
setb al
test al, 1
jne 0x1802c9f62
jmp 0x1802c9d71
mov r14, rdi
add r14, 0x10
mov rbx, qword [r14]
cmp qword [rdi], rbx
je 0x1802c9c94
jmp 0x1802c9d5d
mov eax, dword [str.gP_g]
add eax, dword [0x1805282fc]
sub eax, 0x229bdfa3
imul eax, eax, 0x11602d3a
sub eax, 0xb0e4db01
cmp eax, 0x36d15fdc
jb 0x1802ca125
mov ebp, dword [0x180528300]
xor ebp, dword [0x180528304]
and ebp, 0x7833b826
xor ebp, 0x1c0ce6a4
and ebp, 0xe5181621
mov rcx, rdi
mov rdx, rbx
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
cmp ebp, 0x337081da
ja 0x1802ca125
jmp 0x1802c9d07
mov rbx, qword [r14]
mov eax, dword [0x180528308]
imul eax, dword [0x18052830c]
and eax, 0xdd450eb6
add eax, 0x67999026
add eax, 0x55ee5794
cmp eax, 0x9c1ffc51
jbe 0x1802ca156
mov eax, dword [0x180528310]
sub eax, dword [0x180528314]
mov ecx, 0x1f3dfa82
xor edx, edx
div ecx
xor eax, 0x8e4217ff
and eax, 0x43d9b5c9
cmp eax, 0x58ee8676
ja 0x1802ca156
jmp 0x1802c9d5d
mov rax, qword [rdi + 8]
mov byte [rax + rbx], r15b
add rbx, 1
mov qword [r14], rbx
jmp 0x1802ca10a
movabs rax, 0x100000000
cmp r15, rax
setb al
mov rbx, rdi
add rbx, 0x10
mov r8, qword [rdi + 0x10]
mov rcx, qword [rdi]
cmp rcx, r8
sete dl
test al, 1
jne 0x1802c9e29
test dl, 1
jne 0x1802c9da4
jmp 0x1802c9dcc
mov rcx, rdi
mov rdx, r8
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
mov r8, qword [rbx]
mov rcx, qword [rdi]
jmp 0x1802c9dcc
mov r14, rdi
add r14, 8
mov rax, qword [rdi + 8]
mov byte [rax + r8], 0xfd
add r8, 1
mov qword [rbx], r8
bswap r15
sub rcx, r8
cmp rcx, 8
jb 0x1802c9df1
jmp 0x1802c9e19
mov rcx, rdi
mov rdx, r8
mov r8d, 8
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
mov r8, qword [rbx]
mov rax, qword [r14]
jmp 0x1802c9e19
mov qword [rax + r8], r15
add r8, 8
mov qword [rbx], r8
jmp 0x1802ca10a
test dl, 1
jne 0x1802c9e30
jmp 0x1802c9e58
mov rcx, rdi
mov rdx, r8
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
mov r8, qword [rbx]
mov rcx, qword [rdi]
jmp 0x1802c9e58
mov eax, dword [0x180528318]
or eax, dword [0x18052831c]
imul eax, eax, 0xce2f192f
imul eax, eax, 0x56d917e7
and eax, 0xd42c65aa
cmp eax, 0xb8e78330
jae 0x1802ca163
mov eax, dword [0x180528320]
xor edx, edx
div dword [0x180528324]
xor eax, 0xb118d80d
or eax, 0x5e24bf01
or eax, 0x3f75c0a3
mov r14, rdi
add r14, 8
mov r9, qword [rdi + 8]
mov byte [r9 + r8], 0xfc
mov rdx, r8
add rdx, 1
mov qword [rbx], rdx
mov ebp, r15d
bswap ebp
mov r10, rcx
sub r10, rdx
cmp r10, 4
setb r10b
cmp eax, 0x7f4cc00b
jb 0x1802ca163
test r10b, 1
jne 0x1802c9edd
jmp 0x1802c9f52
mov rcx, rdi
mov r8d, 4
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
mov eax, dword [0x180528328]
xor eax, dword [0x18052832c]
mov ecx, 0x89d58985
xor edx, edx
div ecx
or eax, 0xcc7fb0c6
and eax, 0xa1cd8563
cmp eax, 0xef49ee7
jb 0x1802ca187
jmp 0x1802c9f26
mov eax, dword [0x180528330]
xor eax, dword [0x180528334]
add eax, 0x45960e56
and eax, 0xe20485f0
add eax, 0xe85cb17b
mov rdx, qword [rbx]
mov r9, qword [r14]
cmp eax, 0xd159e27c
ja 0x1802c9f26
jmp 0x1802c9f50
jmp 0x1802c9f52
mov dword [r9 + rdx], ebp
add rdx, 4
mov qword [rbx], rdx
jmp 0x1802ca10a
mov r12, rdi
add r12, 0x10
mov rbx, qword [r12]
mov rcx, qword [rdi]
cmp rcx, rbx
je 0x1802c9f77
jmp 0x1802c9ff4
mov eax, dword [0x180528338]
imul eax, dword [0x18052833c]
or eax, 0x4f1c1e5
imul eax, eax, 0x83dd0d9
sub eax, 0x29659491
cmp eax, 0xeb445ee5
ja 0x1802ca198
jmp 0x1802c9fa1
mov eax, dword [0x180528340]
or eax, dword [0x180528344]
or eax, 0x6f25f75f
imul eax, eax, 0xb88254a0
mov ecx, 0x5705fafb
xor edx, edx
div ecx
mov ebp, eax
mov rcx, rdi
mov rdx, rbx
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
cmp ebp, 0xe7e344cb
je 0x1802c9fa1
jmp 0x1802c9fed
mov rbx, qword [r12]
mov rcx, qword [rdi]
mov eax, dword [0x180528348]
xor eax, dword [0x18052834c]
or eax, 0x6d8763fa
sub eax, 0x612a3fbd
sub eax, 0xc67cf836
cmp eax, 0xbdf6a705
jb 0x1802ca1c5
jmp 0x1802ca01c
mov eax, dword [0x180528350]
xor edx, edx
div dword [0x180528354]
mov r8d, 0xf954a8a2
xor edx, edx
div r8d
or eax, 0xba939dab
add eax, 0xf2e1cbc5
mov r13, rdi
add r13, 8
mov rdx, qword [rdi + 8]
mov byte [rdx + rbx], 0xfb
mov r14, rbx
add r14, 1
mov qword [r12], r14
mov bp, r15w
rol bp, 8
mov r8, rcx
sub r8, r14
cmp r8, 2
setb r8b
cmp eax, 0x2456a1d6
jb 0x1802ca01c
test r8b, 1
jne 0x1802ca07e
jmp 0x1802ca0fd
mov eax, dword [0x180528358]
imul eax, dword [0x18052835c]
imul eax, eax, 0x545ec955
and eax, 0x7839e25c
or eax, 0x5bbc912f
cmp eax, 0x6c0424c3
ja 0x1802ca1e9
jmp 0x1802ca0a8
mov eax, dword [0x180528360]
and eax, dword [0x180528364]
mov ecx, 0x201d31aa
xor edx, edx
div ecx
mov ebx, eax
and ebx, 0xe212f4d6
and ebx, 0x98d5d58b
mov rcx, rdi
mov rdx, r14
mov r8d, 2
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
cmp ebx, 0xbae0d249
jae 0x1802ca0a8
jmp 0x1802ca0f5
mov r14, qword [r12]
mov rdx, qword [r13]
mov word [rdx + r14], bp
add r14, 2
mov qword [r12], r14
mov qword [rsi], 8
mov rax, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
loop 0x1802ca149
push 0xffffffffffffffe4
mov dh, byte [rdi - 0x3cd50e0c]
ror byte [rax - 0x77], 1
stc
mov rdx, rbx
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
jmp 0x1802c9cbb
add byte [rax], al
add al, ch
scasd eax, dword [rdi]
call 0x1e616a14c
sti
invalid
out 0xca, eax
mov edx, 0x3ae35c89
pop rdi
jmp 0x1802c9d31
test dl, 0xb3
js 0x1802ca17d
retf 0x8001
rol byte [rcx], 0x48
mov dword [rbx], eax
jmp 0x1802c9e80
invalid
std
mov r14b, 0xf
xlatb
movabs dword [0xda8948f989489ad5], eax
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
jmp 0x1802c9f9f
std
cwde
invalid
push rax
push rbp
sub dword [rsi + rax*4], 0x510b84d7
fist dword [rcx + 0x12]
mov rcx, rdi
mov rdx, r14
mov r8d, 2
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
jmp 0x1802ca0a6