Function at 0x180001820
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
mov rdi, r8
mov rsi, rcx
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r15, rsp
mov eax, 0x10
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x48], rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x58], rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x40], rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x38], rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x50], rsp
mov r13, qword [rdx]
mov rax, r13
add rax, 8
mov r12, qword [rax]
mov r14, qword [r13 + 0x10]
mov qword [rbp + 0x28], r14
lea rdx, [rbp + 0x28]
sub rsp, 0x20
mov rcx, r15
mov r8, rdi
call fcn.1802c9c40
add rsp, 0x20
mov rcx, qword [r15]
cmp rcx, 8
jne 0x180001a78
mov qword [rbp + 0x30], rbx
mov rbx, rdi
add rbx, 0x10
mov r15, qword [rdi + 0x10]
mov rax, qword [rdi]
sub rax, r15
cmp rax, r14
mov qword [rbp + 0x60], rsi
jb 0x18000190f
jmp 0x18000198c
sub rsp, 0x30
mov rcx, rdi
mov rdx, r15
mov r8, r14
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
add rsp, 0x30
mov eax, dword [0x180506090]
xor eax, dword [0x180506094]
and eax, 0x79a58980
and eax, 0xa5d1114e
xor eax, 0xc3035644
cmp eax, 0x187ec71e
jb 0x1800021e2
mov eax, dword [0x180506098]
xor eax, dword [0x18050609c]
mov ecx, 0x5605b19e
xor edx, edx
div ecx
imul eax, eax, 0x3f3f62e2
or eax, 0x21785690
mov r15, qword [rbx]
cmp eax, 0x5ac017fe
jbe 0x1800021e2
jmp 0x18000198a
jmp 0x18000198c
mov rsi, rdi
add rsi, 8
mov rcx, r15
add rcx, qword [rdi + 8]
sub rsp, 0x20
mov rdx, r12
mov r8, r14
call fcn.180468b10
add rsp, 0x20
add r15, r14
mov qword [rbx], r15
mov r12, qword [r13 + 0x20]
mov r14, qword [r13 + 0x28]
mov qword [rbp + 0x20], r14
lea rcx, [rbp - 0x38]
lea rdx, [rbp + 0x20]
sub rsp, 0x20
mov r8, rdi
call fcn.1802c9c40
add rsp, 0x20
mov rcx, qword [rbp - 0x38]
cmp rcx, 8
jne 0x180001b7f
mov r15, qword [rbx]
mov rcx, qword [rdi]
sub rcx, r15
mov eax, dword [0x1805060a0]
or eax, dword [0x1805060a4]
or eax, 0x6ddfcd
and eax, 0x859fc713
and eax, 0x1d29a841
cmp eax, 0xafec4e0e
je 0x1800021f3
jmp 0x180001a16
mov eax, dword [0x1805060a8]
and eax, dword [0x1805060ac]
imul eax, eax, 0x2067f5fb
or eax, 0x555b9446
mov r8d, 0x1bb27c2e
xor edx, edx
div r8d
cmp rcx, r14
setb dl
cmp eax, 0x8fa78a01
jae 0x180001a16
jmp 0x180001a47
test dl, 1
jne 0x180001a4e
jmp 0x180001a9e
sub rsp, 0x30
mov rcx, rdi
mov rdx, r15
mov r8, r14
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
add rsp, 0x30
mov r15, qword [rbx]
jmp 0x180001a9e
add r15, 8
mov rax, rsi
add rax, 8
mov rdx, qword [r15]
mov qword [rax], rdx
mov rdx, qword [r15 + 8]
mov qword [rax + 8], rdx
mov rdx, qword [r15 + 0x10]
mov qword [rax + 0x10], rdx
jmp 0x1800021cb
mov rcx, r15
add rcx, qword [rsi]
sub rsp, 0x20
mov rdx, r12
mov r8, r14
call fcn.180468b10
add rsp, 0x20
add r15, r14
mov qword [rbx], r15
mov r12, qword [r13 + 0x38]
mov r14, qword [r13 + 0x40]
mov qword [rbp + 0x18], r14
lea rcx, [rbp - 0x18]
lea rdx, [rbp + 0x18]
sub rsp, 0x20
mov r8, rdi
call fcn.1802c9c40
add rsp, 0x20
mov rcx, qword [rbp - 0x18]
cmp rcx, 8
jne 0x180001c01
mov r15, qword [rbx]
mov rax, qword [rdi]
sub rax, r15
cmp rax, r14
setb al
test al, 1
jne 0x180001b07
jmp 0x180001ba7
sub rsp, 0x30
mov rcx, rdi
mov rdx, r15
mov r8, r14
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
add rsp, 0x30
mov eax, dword [0x1805060b0]
and eax, dword [0x1805060b4]
xor eax, 0x70db7e07
xor eax, 0xb02083de
or eax, 0x5cffec59
cmp eax, 0x34730ce4
jb 0x180002204
jmp 0x180001b54
mov eax, dword [0x1805060b8]
xor edx, edx
div dword [0x1805060bc]
or eax, 0xa3eb8773
xor eax, 0xbc80041a
xor eax, 0x4c59fb9c
mov r15, qword [rbx]
cmp eax, 0xf4a6f0ce
jae 0x180001b54
jmp 0x180001b7d
jmp 0x180001ba7
lea rax, [rbp - 0x38]
add rax, 8
mov rdx, qword [rax]
mov rsi, qword [rbp + 0x60]
mov qword [rsi + 8], rdx
mov rdx, qword [rax + 8]
mov qword [rsi + 0x10], rdx
mov rax, qword [rax + 0x10]
mov qword [rsi + 0x18], rax
jmp 0x1800021cb
mov rcx, r15
add rcx, qword [rsi]
sub rsp, 0x20
mov rdx, r12
mov r8, r14
call fcn.180468b10
add rsp, 0x20
add r15, r14
mov qword [rbx], r15
mov r14b, byte [r13 + 0xd8]
cmp qword [rdi], r15
je 0x180001bd4
jmp 0x180001c22
sub rsp, 0x30
mov rcx, rdi
mov rdx, r15
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
add rsp, 0x30
mov r15, qword [rbx]
jmp 0x180001c22
mov rax, qword [rbp - 0x10]
mov rsi, qword [rbp + 0x60]
mov qword [rsi + 8], rax
mov rax, qword [rbp - 8]
mov qword [rsi + 0x10], rax
mov rax, qword [rbp]
mov qword [rsi + 0x18], rax
jmp 0x1800021cb
mov rax, qword [rsi]
mov byte [rax + r15], r14b
add r15, 1
mov qword [rbx], r15
mov r12, qword [r13 + 0x50]
mov r14, qword [r13 + 0x58]
mov qword [rbp + 0x10], r14
lea rcx, [rbp - 0x58]
lea rdx, [rbp + 0x10]
sub rsp, 0x20
mov r8, rdi
call fcn.1802c9c40
add rsp, 0x20
mov rcx, qword [rbp - 0x58]
cmp rcx, 8
jne 0x180001d7a
mov r15, qword [rbx]
mov rax, qword [rdi]
sub rax, r15
cmp rax, r14
jb 0x180001c72
jmp 0x180001cef
sub rsp, 0x30
mov rcx, rdi
mov rdx, r15
mov r8, r14
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
add rsp, 0x30
mov eax, dword [0x1805060c0]
or eax, dword [0x1805060c4]
add eax, 0xe600893b
and eax, 0xb67b17bd
imul eax, eax, 0x5f578c17
cmp eax, 0xd69cdb5a
jae 0x180002211
jmp 0x180001cc0
mov eax, dword [0x1805060c8]
xor edx, edx
div dword [0x1805060cc]
mov ecx, 0x8f1e26be
xor edx, edx
div ecx
add eax, 0xd0f50e21
sub eax, 0x9c2fa9fc
mov r15, qword [rbx]
cmp eax, 0xab311d36
ja 0x180001cc0
jmp 0x180001ced
jmp 0x180001cef
mov rcx, r15
add rcx, qword [rsi]
sub rsp, 0x20
mov rdx, r12
mov r8, r14
call fcn.180468b10
add rsp, 0x20
add r15, r14
mov qword [rbx], r15
mov r15, qword [r13 + 0x68]
mov r14, qword [r13 + 0x70]
mov qword [rbp + 8], r14
lea rcx, [rbp - 0x78]
lea rdx, [rbp + 8]
sub rsp, 0x20
mov r8, rdi
call fcn.1802c9c40
add rsp, 0x20
mov rcx, qword [rbp - 0x78]
cmp rcx, 8
jne 0x180001dfe
mov r12, qword [rbx]
mov rax, qword [rdi]
sub rax, r12
cmp rax, r14
jb 0x180001d50
jmp 0x180001da8
sub rsp, 0x30
mov rcx, rdi
mov rdx, r12
mov r8, r14
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.180268a00
add rsp, 0x30
mov r12, qword [rbx]
jmp 0x180001da8
lea rax, [rbp - 0x58]
add rax, 8
mov rsi, qword [rbp + 0x60]
mov rdx, rsi
add rdx, 8
mov r8, qword [rax]
mov qword [rdx], r8
mov r8, qword [rax + 8]
mov qword [rdx + 8], r8
mov rax, qword [rax + 0x10]
mov qword [rdx + 0x10], rax
jmp 0x1800021cb
mov rcx, r12
add rcx, qword [rsi]
sub rsp, 0x20
mov rdx, r15
mov r8, r14
call fcn.180468b10
add rsp, 0x20
add r12, r14
mov qword [rbx], r12
mov rdx, qword [r13 + 0x80]
mov r8, qword [r13 + 0x88]
sub rsp, 0x20
mov rbx, qword [rbp + 0x50]
mov rcx, rbx
mov r9, rdi
call fcn.1802ca220
add rsp, 0x20
mov rcx, qword [rbx]
cmp rcx, 8
je 0x180001e80
jmp 0x180001ebc
mov eax, dword [0x1805060d0]
xor edx, edx
div dword [0x1805060d4]
xor eax, 0x755723a3
sub eax, 0xdb2497cc
xor eax, 0x5d2f0589
cmp eax, 0x91620d39
jb 0x180002222
mov rsi, qword [rbp + 0x60]
jmp 0x180001e2c
mov eax, dword [0x1805060d8]
add eax, dword [0x1805060dc]
add eax, 0xd4c7f8c0
mov r8d, 0xfdc26eff
xor edx, edx
div r8d
mov r8d, 0xaba7d43a
xor edx, edx
div r8d
lea rdx, [rbp - 0x78]
add rdx, 8
cmp eax, 0x4e74f1a2
ja 0x180001e2c
jmp 0x180001e64
mov rax, qword [rdx]
mov qword [rsi + 8], rax
mov rax, qword [rdx + 8]
mov qword [rsi + 0x10], rax
mov rax, qword [rdx + 0x10]
mov qword [rsi + 0x18], rax
jmp 0x1800021cb
mov al, byte [r13 + 0xd9]
mov rdx, qword [rbp + 0x48]
mov byte [rdx], al
sub rsp, 0x20
mov r14, qword [rbp + 0x38]
mov rcx, r14
mov r8, rdi
call fcn.1802c9800
add rsp, 0x20
mov rcx, qword [r14]
cmp rcx, 8
sete al
mov rsi, qword [rbp + 0x60]
mov rbx, qword [rbp + 0x30]
test al, 1
jne 0x180001ee0
jmp 0x180001f17
add rbx, 8
mov rax, qword [rbx]
mov rsi, qword [rbp + 0x60]
mov qword [rsi + 8], rax
mov rax, qword [rbx + 8]
mov qword [rsi + 0x10], rax
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x18], rax
jmp 0x1800021cb
mov rdx, qword [r13 + 0x98]
mov r8, qword [r13 + 0xa0]
mov r14, qword [rbp + 0x40]
sub rsp, 0x20
mov rcx, r14
mov r9, rdi
call fcn.1802ca220
add rsp, 0x20
mov rcx, qword [r14]
cmp rcx, 8
je 0x180001f97
jmp 0x180001fd4
add r14, 8
mov r8, rsi
add r8, 8
mov eax, dword [0x1805060e0]
xor edx, edx
div dword [0x1805060e4]
xor eax, 0x35571af1
and eax, 0x65e8f343
mov r9d, 0xea2e995e
xor edx, edx
div r9d
cmp eax, 0x9377513d
je 0x180002233
jmp 0x180001f52
mov eax, dword [0x1805060e8]
xor eax, dword [0x1805060ec]
and eax, 0x7d77f9f5
and eax, 0x1ac52f08
mov r9d, 0xc6a48cce
xor edx, edx
div r9d
mov rdx, qword [r14]
mov qword [r8], rdx
mov rdx, qword [r14 + 8]
mov qword [r8 + 8], rdx
mov rdx, qword [r14 + 0x10]
mov qword [r8 + 0x10], rdx
cmp eax, 0x13d8b889
je 0x180001f52
jmp 0x180001f92
jmp 0x1800021cb
mov rax, r13
add rax, 0xb0
mov rdx, qword [rax]
mov r8, qword [r13 + 0xb8]
sub rsp, 0x20
mov r14, qword [rbp + 0x58]
mov rcx, r14
mov r9, rdi
call fcn.1802ca220
add rsp, 0x20
mov rcx, qword [r14]
cmp rcx, 8
sete al
test al, 1
jne 0x180001ff4
jmp 0x1800020d1
add r14, 8
mov rax, qword [r14]
mov qword [rsi + 8], rax
mov rax, qword [r14 + 8]
mov qword [rsi + 0x10], rax
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x18], rax
jmp 0x1800021cb
mov eax, dword [0x1805060f0]
and eax, dword [0x1805060f4]
and eax, 0x782d2a78
or eax, 0x42b96d40
and eax, 0xd2653c74
cmp eax, 0xb1733ece
jae 0x18000225a
jmp 0x18000201c
mov eax, dword [0x1805060f8]
xor eax, dword [0x1805060fc]
mov ecx, 0x7d8efa51
xor edx, edx
div ecx
or eax, 0x7b8000ee
sub eax, 0xbb257980
cmp eax, 0x35f9dd20
jb 0x18000201c
jmp 0x180002044
mov eax, dword [0x180506100]
add eax, dword [0x180506104]
or eax, 0xa0a820af
imul eax, eax, 0xe909befc
imul eax, eax, 0x9369502c
cmp eax, 0x5909728a
jbe 0x180002267
jmp 0x18000206e
mov eax, dword [0x180506108]
xor eax, dword [0x18050610c]
mov ecx, 0xdc81f6dc
xor edx, edx
div ecx
mov ecx, 0xbab40310
xor edx, edx
div ecx
mov ecx, 0x32fdbcc3
xor edx, edx
div ecx
cmp eax, 0xe18faeb4
je 0x18000206e
jmp 0x18000209e
mov rdx, qword [r13 + 0xc8]
mov r8, qword [r13 + 0xd0]
sub rsp, 0x20
mov rcx, rbx
mov r9, rdi
call fcn.1802ca220
add rsp, 0x20
mov rcx, qword [rbx]
cmp rcx, 8
je 0x180002154
jmp 0x18000215b
add qword [rbp + 0x58], 8
mov eax, dword [0x180506110]
and eax, dword [0x180506114]
imul eax, eax, 0xe4b3bc78
mov r8d, 0xfbc0ba68
xor edx, edx
div r8d
mov r8d, 0xc2229b6a
xor edx, edx
div r8d
cmp eax, 0x6439f862
ja 0x180002278
jmp 0x18000210b
mov eax, dword [0x180506118]
xor edx, edx
div dword [0x18050611c]
add eax, 0xec412053
add eax, 0x44205e1b
or eax, 0x132c7aa3
mov rdx, rsi
add rdx, 8
cmp eax, 0xaa28349a
je 0x18000210b
jmp 0x180002138
mov r8, qword [rbp + 0x58]
mov rax, qword [r8]
mov qword [rdx], rax
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
jmp 0x1800021cb
mov ecx, 8
jmp 0x1800021cb
add rbx, 8
mov rax, qword [rbx]
mov qword [rsi + 8], rax
mov rax, qword [rbx + 8]
mov qword [rsi + 0x10], rax
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x18], rax
mov eax, dword [0x180506120]
add eax, dword [0x180506124]
xor eax, 0xb8629dd9
or eax, 0x644b875e
mov r8d, 0x36464a04
xor edx, edx
div r8d
cmp eax, 0xace1e876
jae 0x180002289
mov eax, dword [0x180506128]
sub eax, dword [0x18050612c]
or eax, 0x607d7332
sub eax, 0xfaf3638e
imul eax, eax, 0x3634e1bc
cmp eax, 0x141943dd
jb 0x180002289
jmp 0x1800021cb
mov qword [rsi], rcx
mov rax, rsi
lea rsp, [rbp + 0x68]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov edx, dword [rcx - 0x64e1130a]
invalid
pop rbx
adc al, 0x82
and edx, edi
invalid
movabs al, byte [0xe9d89267012f4645]
stc
invalid
fsubrp st(7)
invalid
jno 0x18000226a
jnp 0x180002274
invalid
movabs byte [0xc1e7bdd15d6b32bb], al
invalid
out 0x5f, eax
sub dword [rsi - 0x80], ebx
mov ebx, 0xb3e9a810
std
invalid
invalid
in al, dx
mov esp, 0x4ffa8e7b
sal dh, cl
jmp 0x18000206c
hlt
rcr bl, cl
cwde
rcr ecx, cl
add eax, 0x217f8e08
invalid
pop rbp
xor ah, byte [rcx - 0x55]
invalid