Function at 0x1802c3900
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 rsi, rcx
mov rax, rsi
add rax, 0xb8
mov al, byte [rax]
cmp al, 0xa
jb 0x1802c394b
mov rax, rsi
add rax, 0xc8
mov rdx, qword [rax]
cmp rdx, 0
je 0x1802c394b
mov rax, rsi
add rax, 0xc0
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
mov rax, rsi
add rax, 0x60
cmp byte [rax], 2
jb 0x1802c3986
mov rdi, qword [rsi + 0x68]
mov rax, qword [rdi]
mov rax, qword [rax + 0x20]
mov rcx, rdi
add rcx, 0x18
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
call rax
mov rcx, rdi
mov edx, 0x20
mov r8d, 8
call fcn.1802cbf20
mov rax, rsi
add rax, 0x70
mov rax, qword [rax]
mov rax, qword [rax + 0x20]
mov rcx, rsi
add rcx, 0x88
mov rdx, qword [rsi + 0x78]
mov r8, qword [rsi + 0x80]
call rax
mov rax, qword [rsi + 0x90]
mov rax, qword [rax + 0x20]
mov rcx, rsi
add rcx, 0xa8
mov rdx, qword [rsi + 0x98]
mov r8, qword [rsi + 0xa0]
call rax
mov rdx, qword [rsi + 0x50]
cmp rdx, 0
je 0x1802c39f5
mov rax, rsi
add rax, 0x48
mov rcx, qword [rax]
shl rdx, 2
mov r8d, 2
call fcn.1802cbf20
jmp 0x1802c39f5
mov rbx, rsi
add rbx, 0x18
mov rdi, rsi
add rdi, 0x20
mov r14, qword [rsi + 0x20]
mov r15, qword [rsi + 0x28]
cmp r15, 0
je 0x1802c3b24
xor ecx, ecx
jmp 0x1802c3a19
mov eax, dword [0x180527bc0]
add eax, dword [0x180527bc4]
and eax, 0xbef1bb92
and eax, 0xb7064c93
mov r8d, 0x93534f51
xor edx, edx
div r8d
cmp eax, 0x68f036f8
jae 0x1802c3c99
mov eax, dword [0x180527bc8]
xor edx, edx
div dword [0x180527bcc]
and eax, 0x4d56fa6a
sub eax, 0x91ac1292
xor eax, 0x81a90d86
imul rdx, rcx, 0x68
mov r13, r14
add r13, rdx
mov r12, rcx
add r12, 1
mov r8, qword [r13 + 0x40]
cmp r8, 0
sete dl
cmp eax, 0x707b518d
jbe 0x1802c3c99
test dl, 1
jne 0x1802c3afd
jmp 0x1802c3a90
mov eax, dword [0x180527bd0]
xor edx, edx
div dword [0x180527bd4]
xor eax, 0xec762610
mov ecx, 0xb898ac4e
xor edx, edx
div ecx
imul eax, eax, 0x6bd05891
cmp eax, 0x87b495bc
ja 0x1802c3ca6
jmp 0x1802c3abf
mov eax, dword [0x180527bd8]
xor eax, dword [0x180527bdc]
imul eax, eax, 0x26f1419b
or eax, 0xd21aefb3
imul r9d, eax, 0xcc3e67ac
mov rax, qword [r8 + 0x20]
mov rcx, r13
add rcx, 0x58
mov rdx, qword [r13 + 0x48]
cmp r9d, 0xf48b23db
je 0x1802c3abf
jmp 0x1802c3af7
mov r8, qword [r13 + 0x50]
call rax
mov rax, qword [r13 + 0x18]
mov rax, qword [rax + 0x20]
mov rcx, r13
add rcx, 0x30
mov rdx, qword [r13 + 0x20]
mov r8, qword [r13 + 0x28]
call rax
cmp r12, r15
mov rcx, r12
jne 0x1802c3a19
jmp 0x1802c3b24
mov rax, qword [rbx]
cmp rax, 0
sete cl
test cl, 1
jne 0x1802c3b49
jmp 0x1802c3b35
mov rcx, qword [rdi]
imul rdx, rax, 0x68
mov r8d, 8
call fcn.1802cbf20
jmp 0x1802c3b49
mov eax, dword [0x180527be0]
xor eax, dword [0x180527be4]
and eax, 0x9917216e
mov ecx, 0x2f11e3f0
xor edx, edx
div ecx
and eax, 0xa2baca39
cmp eax, 0xe3513bc4
je 0x1802c3cb7
mov eax, dword [0x180527be8]
and eax, dword [0x180527bec]
sub eax, 0xe1d5925d
xor eax, 0xad2a63f5
mov ecx, 0x27de91d6
xor edx, edx
div ecx
mov rbx, rsi
add rbx, 0x30
mov rdi, rsi
add rdi, 0x38
cmp eax, 0x9e08d588
jae 0x1802c3cb7
jmp 0x1802c3bad
mov r14, qword [rdi]
mov r15, qword [rsi + 0x40]
cmp r15, 0
je 0x1802c3bed
xor r12d, r12d
jmp 0x1802c3bbf
imul rax, r12, 0x48
mov r8, r14
add r8, rax
add r12, 1
mov rax, qword [r8 + 0x20]
mov rax, qword [rax + 0x20]
mov rcx, r8
add rcx, 0x38
mov rdx, qword [r8 + 0x28]
mov r8, qword [r8 + 0x30]
call rax
cmp r12, r15
jne 0x1802c3bbf
jmp 0x1802c3bed
mov rax, qword [rbx]
cmp rax, 0
je 0x1802c3c5b
mov rdi, qword [rdi]
imul rbx, rax, 0x48
mov eax, dword [0x180527bf0]
sub eax, dword [0x180527bf4]
xor eax, 0x55c19111
imul eax, eax, 0x51298fba
add eax, 0x2c361691
cmp eax, 0x99d8adf7
jb 0x1802c3cc8
mov eax, dword [0x180527bf8]
add eax, dword [0x180527bfc]
add eax, 0x1c84492d
add eax, 0x6578a53e
imul ebp, eax, 0xa4944c53
mov rcx, rdi
mov rdx, rbx
mov r8d, 8
call fcn.1802cbf20
cmp ebp, 0xe436b92d
je 0x1802c3cc8
jmp 0x1802c3c5b
add rsi, 0xd0
mov rsi, qword [rsi]
cmp rsi, 0
je 0x1802c3c88
mov rcx, rsi
call fcn.1802695e0
mov rcx, rsi
mov edx, 0x20
mov r8d, 8
call fcn.1802cbf20
jmp 0x1802c3c88
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
sal dword [rax + 0x27], 0x8e
movabs al, byte [0xfffffd9fe991568d]
invalid
loop 0x1802c3d0a
invalid
invalid
add byte [rax - 0x7d], cl
add byte ds:[rdi], cl
xchg esp, eax
ror byte [rax - 0x77], 0xf1
add rcx, 8
test al, 1
jne 0x1802c3d1f
jmp 0x1802c3d7d
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
jne 0x1802c3d2f
jmp 0x1802c3d6c
mov eax, dword [0x180527c00]
or eax, dword [0x180527c04]
imul eax, eax, 0xac7010f2
and eax, 0xf43560f1
xor eax, 0x6564ded9
cmp eax, 0xd1284180
je 0x1802c4238
xor eax, eax
cmp eax, 0x84bd97ea
jae 0x1802c4238
jmp 0x1802c3d65
call fcn.180275eb0
jmp 0x1802c3d6c
mov rcx, rsi
add rcx, 0x18
call fcn.1802c2580
jmp 0x1802c4154
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
jne 0x1802c3d8d
jmp 0x1802c3d94
call fcn.1802756e0
jmp 0x1802c3d94
mov r12, rsi
add r12, 0x18
mov rdi, qword [r12]
cmp rdi, 0
je 0x1802c4154
mov rbx, qword [rdi]
cmp rbx, 0
sete al
test al, 1
jne 0x1802c3dd1
jmp 0x1802c3db9
mov rcx, rbx
call fcn.180405e70
test al, 1
jne 0x1802c3dc7
jmp 0x1802c3dd1
mov rcx, rbx
call fcn.180407030
jmp 0x1802c3dd1
mov rax, rdi
add rax, 0x18
mov qword [rsp + 0x20], rax
mov r13, qword [rax]
mov rax, r13
add rax, 0x18
mov qword [rsp + 0x28], rax
mov rax, qword [r13 + 0x18]
mov r15, r13
add r15, 0x20
mov rbp, rax
mov eax, dword [0x180527c08]
xor eax, dword [0x180527c0c]
and eax, 0xc7bc8d8d
imul eax, eax, 0xeb2a5fff
mov ecx, 0x38703691
xor edx, edx
div ecx
cmp eax, 0x58a1ef5f
je 0x1802c4245
mov eax, dword [0x180527c10]
imul eax, dword [0x180527c14]
imul ebx, eax, 0xf8e14e35
add ebx, 0x3af6bbf9
and ebx, 0x48b6815c
mov r14, rbp
shr r14, 0x20
mov rcx, r15
call fcn.18040fa10
cmp eax, ebp
sete al
cmp ebx, 0x18273de0
jbe 0x1802c4245
test al, 1
jne 0x1802c3fa8
jmp 0x1802c3e6e
mov ecx, ebp
add ecx, 1
mov eax, dword [0x180527c18]
imul eax, dword [0x180527c1c]
or eax, 0x8779f6e8
xor eax, 0x8b853677
sub eax, 0x27e9a0c0
cmp eax, 0x7b6eab6f
jae 0x1802c425a
jmp 0x1802c3e9c
mov eax, dword [0x180527c20]
and eax, dword [0x180527c24]
or eax, 0x3c2f328b
sub eax, 0x515cc156
sub eax, 0x956d72d4
cmp r14d, ebp
sete r8b
cmp eax, 0x6dd51cdf
jae 0x1802c3e9c
jmp 0x1802c3ec7
mov eax, dword [0x180527c28]
imul eax, dword [0x180527c2c]
imul eax, eax, 0xd415ad2d
imul eax, eax, 0xdbbc2cd4
or eax, 0xa8929573
cmp eax, 0x9bfd4543
jbe 0x1802c426b
jmp 0x1802c3ef2
mov eax, dword [0x180527c30]
xor eax, dword [0x180527c34]
add eax, 0xa4c7bec5
mov r9d, 0xe4a89edf
xor edx, edx
div r9d
sub eax, 0xbb4c1730
cmp eax, 0x9aee43db
ja 0x1802c3ef2
test r8b, 1
jne 0x1802c3f2e
jmp 0x1802c3f22
cmp ecx, r14d
sete al
test al, 1
jne 0x1802c3f57
jmp 0x1802c3f40
mov ecx, ecx
movabs rax, 0x100000001
imul rcx, rax
jmp 0x1802c3f5b
mov eax, ecx
movabs rdx, 0xffffffff00000000
mov rcx, rbp
and rcx, rdx
or rcx, rax
jmp 0x1802c3f5b
ud2
mov rax, rbp
mov rdx, qword [rsp + 0x28]
lock cmpxchg qword [rdx], rcx
sete cl
test cl, 1
jne 0x1802c3f75
jmp 0x1802c3df7
and rbp, 0xff
mov rax, qword [r13 + 0x10]
shl rbp, 3
add rax, rbp
mov rax, qword [rax]
mov qword [rsp + 0x30], rax
cmp rax, 0
mov rcx, qword [rsp + 0x20]
je 0x1802c3faf
lea rcx, [rsp + 0x30]
call fcn.1802957b0
ud2
mov rcx, qword [rsp + 0x20]
jmp 0x1802c3faf
mov eax, dword [0x180527c38]
xor eax, dword [0x180527c3c]
sub eax, 0x52171f42
xor eax, 0xf0eef465
imul eax, eax, 0x82cefe61
cmp eax, 0x6a5df9c3
ja 0x1802c427c
jmp 0x1802c3fd8
mov eax, dword [0x180527c40]
xor eax, dword [0x180527c44]
or eax, 0x86551899
xor eax, 0x7d6e9d2e
add eax, 0x327f4d4b
cmp eax, 0x698fba80
je 0x1802c3fd8
jmp 0x1802c3ffc
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x1802c4011
call fcn.180277420
jmp 0x1802c4011
add rdi, 8
mov rax, qword [rdi]
cmp rax, 0
je 0x1802c40e6
lock dec qword [rax]
sete al
jmp 0x1802c402b
mov ecx, dword [0x180527c48]
xor ecx, dword [0x180527c4c]
xor ecx, 0x8529080
and ecx, 0xb3b81e0
add ecx, 0xcfcf9e42
cmp ecx, 0x5fa3d3f3
je 0x1802c4289
mov ecx, dword [0x180527c50]
add ecx, dword [0x180527c54]
sub ecx, 0x2fe64c5
or ecx, 0x1d882a14
or ecx, 0xed3138d6
cmp ecx, 0x734286cb
je 0x1802c4289
test al, 1
jne 0x1802c4085
jmp 0x1802c40e6
mov eax, dword [0x180527c58]
add eax, dword [0x180527c5c]
xor eax, 0xc94a5a78
sub eax, 0x31ce989e
add eax, 0x66bfe300
cmp eax, 0xa522b5b8
jbe 0x1802c429a
jmp 0x1802c40ad
mov eax, dword [0x180527c60]
mov ecx, dword [0x180527c64]
xor edx, edx
div ecx
imul rax, rax, 0x40b881c9
shr rax, 0x3b
imul eax, eax, 0x38d0980a
or eax, 0x7f8cdad6
cmp eax, 0x30beac5c
jb 0x1802c40ad
jmp 0x1802c40dc
mov rcx, rdi
call fcn.180279d20
jmp 0x1802c40e6
mov rdi, qword [r12]
mov eax, dword [0x180527c68]
sub eax, dword [0x180527c6c]
xor eax, 0x8b9dc458
add eax, 0x11b0074f
add eax, 0xa6d4a8c4
cmp eax, 0x8386cafa
jae 0x1802c42ab
jmp 0x1802c4112
mov eax, dword [0x180527c70]
xor edx, edx
div dword [0x180527c74]
or eax, 0xa1e680b8
sub eax, 0xcb1c042d
mov ecx, 0x3298495a
xor edx, edx
div ecx
mov ebx, eax
mov rcx, rdi
mov edx, 0x50
mov r8d, 8
call fcn.1802cbf20
cmp ebx, 0x775019fa
ja 0x1802c4112
jmp 0x1802c4152
jmp 0x1802c4154
mov rbx, rsi
add rbx, 0x28
mov rdi, rsi
add rdi, 0x30
mov r14, qword [rsi + 0x30]
mov rsi, qword [rsi + 0x38]
cmp rsi, 0
sete al
test al, 1
jne 0x1802c419e
jmp 0x1802c4177
xor r15d, r15d
jmp 0x1802c417c
mov rax, r15
shl rax, 4
mov rcx, r14
add rcx, rax
add r15, 1
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
call qword [rax + 0x18]
cmp r15, rsi
jne 0x1802c417c
jmp 0x1802c419e
mov rsi, qword [rbx]
cmp rsi, 0
sete al
test al, 1
jne 0x1802c4227
jmp 0x1802c41ae
mov rdi, qword [rdi]
shl rsi, 4
mov eax, dword [0x180527c78]
imul eax, dword [0x180527c7c]
or eax, 0x57d93829
mov ecx, 0x44097655
xor edx, edx
div ecx
mov ecx, 0x5a607ee1
xor edx, edx
div ecx
cmp eax, 0xe1b7fdfb
jae 0x1802c42cf
jmp 0x1802c41e6
mov eax, dword [0x180527c80]
xor edx, edx
div dword [0x180527c84]
sub eax, 0xcc7682da
mov ecx, 0x8dad197f
xor edx, edx
div ecx
mov ebx, eax
add ebx, 0x4c94eae9
mov rcx, rdi
mov rdx, rsi
mov r8d, 8
call fcn.1802cbf20
cmp ebx, 0x516e3308
je 0x1802c41e6
jmp 0x1802c4225
jmp 0x1802c4227
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, dword [rdx - 0x7f360a16]
mov cl, 0xbc
jmp 0x1802c3d56
insb byte [rdi], dx
jge 0x1802c4291
out 0x21, al
invalid
stc
sub eax, 0x5849dbd
movabs dword [0xfc2fe96568a3c029], eax
invalid
in eax, dx
movsb byte [rdi], byte [rsi]
mov eax, 0x5f25056d
adc dword [rcx - 0x16d95ae0], ebp
je 0x1802c4276
jmp 0x1802c3ef0
invalid
or byte [rbx - 0x6ac98536], al
jo 0x1802c42a6
jmp 0x1802c3fd6
xor ecx, dword [rax + 0x59]
scasb al, byte [rdi]
wait
adc dword [rsi - 0x1270a912], ecx
jmp 0x1802c4055
out dx, al
push rsi
invalid
outsd dx, dword [rsi]
add esp, dword [rax + rdi*2 - 0x117cb337]
pop rsp
invalid
jmp 0x1802c40ab
invalid
invalid