Function at 0x1803a9510
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov r15, r8
mov rdi, rdx
mov rsi, rcx
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r13, rsp
mov eax, dword [0x180790a48]
or eax, dword [0x180790a4c]
mov ecx, 0xbf244d99
xor edx, edx
div ecx
imul eax, eax, 0xb340ecbe
or eax, 0x2b0e6423
cmp eax, 0x3f229b1b
jb 0x1803a9cb2
jmp 0x1803a9571
mov eax, dword [0x180790a50]
mov ecx, dword [0x180790a54]
add eax, ecx
imul ecx, eax, 0x98e1c0db
add ecx, 0x23423aac
mov eax, 0x10
call fcn.180698e80
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov rdx, rsp
mov r12, rdi
add r12, 0x68
movzx eax, byte [rdi + 0x68]
cmp ecx, 0x22701a61
je 0x1803a9571
test eax, eax
je 0x1803a95d8
jmp 0x1803a95c4
sub eax, 1
je 0x1803a9c21
jmp 0x1803a95cf
mov qword [rbp - 0x10], r15
jmp 0x1803a9742
mov rax, qword [rdi]
mov qword [rdx], rax
mov rax, qword [rdi + 8]
mov qword [rdx + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [rdx + 0x18], rax
sub rsp, 0x20
mov rcx, rbx
call fcn.180659ca0
add rsp, 0x20
mov r8, qword [rbx]
mov r14, qword [rbx + 8]
cmp r8, 0xffffffffffffffff
sete al
test al, 1
jne 0x1803a96e1
jmp 0x1803a961e
mov qword [rbp - 0x10], r15
mov rbx, rdi
add rbx, 0x20
mov qword [rdi + 0x20], r8
mov qword [rdi + 0x28], r14
mov r15, rdi
add r15, 0x60
mov eax, dword [0x180790a58]
add eax, dword [0x180790a5c]
imul eax, eax, 0x4e615c90
sub eax, 0x59431690
and eax, 0x55a81c9f
cmp eax, 0x6dfe47ea
ja 0x1803a9cbf
jmp 0x1803a9661
mov eax, dword [0x180790a60]
and eax, dword [0x180790a64]
add eax, 0xa625cb3f
or eax, 0xbc64f3f2
and eax, 0x6bae02ff
mov byte [r15], 0
cmp eax, 0x535edc52
ja 0x1803a9661
jmp 0x1803a9689
mov eax, dword [0x180790a68]
and eax, dword [0x180790a6c]
imul eax, eax, 0x89829c4a
xor eax, 0x31458d9c
sub eax, 0xa61707b0
cmp eax, 0x2936f3b4
jb 0x1803a9cd4
jmp 0x1803a96b2
mov eax, dword [0x180790a70]
or eax, dword [0x180790a74]
mov ecx, 0xbb41c937
xor edx, edx
div ecx
sub eax, 0xe3489127
mov ecx, 0xe0336d55
xor edx, edx
div ecx
cmp eax, 0xe9b1cfff
jae 0x1803a96b2
jmp 0x1803a9828
mov eax, dword [0x180790a78]
add eax, dword [0x180790a7c]
add eax, 0xf4952019
sub eax, 0x60f5a00
and eax, 0x9060cbd9
cmp eax, 0x99a37e1b
je 0x1803a9ce5
mov eax, dword [0x180790a80]
imul eax, dword [0x180790a84]
add eax, 0xf0e353a3
imul eax, eax, 0xc6ce4fc9
xor eax, 0xadaa11e2
cmp r14, 0
setne cl
cmp eax, 0xc4b460ab
jae 0x1803a9ce5
jmp 0x1803a9738
mov ebx, 3
jmp 0x1803a9bfe
mov r15, rdi
add r15, 0x60
mov al, byte [r15]
mov rbx, rdi
add rbx, 0x20
mov ecx, dword [0x180790a88]
add ecx, dword [0x180790a8c]
and ecx, 0x4498c1bd
xor ecx, 0xc1137341
xor ecx, 0x7d17e0fe
cmp ecx, 0x190217ee
je 0x1803a9cf2
mov ecx, dword [0x180790a90]
imul ecx, dword [0x180790a94]
sub ecx, 0xfce1757a
imul ecx, ecx, 0xe469b5e0
sub ecx, 0xa8abcca2
cmp ecx, 0x45154597
jb 0x1803a9cf2
test al, al
je 0x1803a97ba
jmp 0x1803a97ae
sub al, 1
je 0x1803a9925
jmp 0x1803a97b8
jmp 0x1803a9819
mov eax, dword [0x180790a98]
and eax, dword [0x180790a9c]
mov ecx, 0x9e9499a9
xor edx, edx
div ecx
add eax, 0x6e92e9a
and eax, 0x821c1c1d
cmp eax, 0x703bc71e
ja 0x1803a9cff
jmp 0x1803a97e6
mov eax, dword [0x180790aa0]
or eax, dword [0x180790aa4]
add eax, 0xa1d47f06
sub eax, 0x3b73c5f9
add eax, 0x7a12e6c5
mov r8, qword [rbx]
cmp eax, 0x20909ec3
jb 0x1803a97e6
jmp 0x1803a980d
mov rax, rdi
add rax, 0x28
mov r14, qword [rax]
jmp 0x1803a9828
mov rax, rdi
add rax, 0x58
mov rdx, qword [rax]
jmp 0x1803a9902
lea rcx, [rbp - 0x78]
sub rsp, 0x20
mov rdx, r8
mov r8, r14
call fcn.18063a940
add rsp, 0x20
mov rcx, qword [rbp - 0x78]
mov r14, qword [rbp - 0x70]
cmp rcx, 3
je 0x1803a98fd
lea r8, [rbp - 0x78]
add r8, 0x10
mov eax, dword [0x180790aa8]
imul eax, dword [0x180790aac]
or eax, 0x33f8fb61
xor eax, 0xb32cfac3
mov r9d, 0xe98988e
xor edx, edx
div r9d
cmp eax, 0xf2a88d66
ja 0x1803a9d0c
jmp 0x1803a9888
mov eax, dword [0x180790ab0]
or eax, dword [0x180790ab4]
imul eax, eax, 0xfd9a2090
mov r9d, 0xa4d3da3b
xor edx, edx
div r9d
and eax, 0x5089a75b
mov rdx, qword [r8]
mov qword [rbp - 8], rdx
mov rdx, qword [r8 + 8]
mov qword [rbp], rdx
mov rdx, qword [r8 + 0x10]
mov qword [rbp + 8], rdx
mov rdx, rdi
add rdx, 0x30
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x38], r14
mov r9, qword [rbp - 8]
mov qword [rdi + 0x40], r9
mov r9, qword [rbp]
mov qword [rdi + 0x48], r9
mov r9, qword [rbp + 8]
mov qword [rdi + 0x50], r9
mov r9, rdi
add r9, 0x58
cmp eax, 0xb64d3e87
je 0x1803a9888
jmp 0x1803a98f8
mov qword [r9], rdx
jmp 0x1803a9902
jmp 0x1803a9b47
lea rcx, [rbp - 0x50]
sub rsp, 0x20
mov r8, qword [rbp - 0x10]
call fcn.18063af60
add rsp, 0x20
mov cl, byte [rbp - 0x47]
cmp cl, 3
je 0x1803a99e9
jmp 0x1803a997a
ud2
mov eax, dword [0x180790ac8]
xor edx, edx
div dword [0x180790acc]
and eax, 0x3cadc3b6
and eax, 0xa6086c2e
and eax, 0x20c2eb41
cmp eax, 0x62f778df
je 0x1803a9d5d
mov eax, dword [0x180790ad0]
or eax, dword [0x180790ad4]
imul eax, eax, 0x3300f953
mov r8d, 0x602f42a9
xor edx, edx
div r8d
sub eax, 0xcfb17dfe
mov r14, qword [rbp - 0x50]
cmp eax, 0x5aa7ad49
jae 0x1803a9d5d
jmp 0x1803a99d5
mov qword [rbp + 0x10], rbx
cmp cl, 2
sete al
test al, 1
jne 0x1803a9b2f
jmp 0x1803a9a42
mov byte [r15], 3
mov eax, dword [0x180790ad8]
or eax, dword [0x180790adc]
imul eax, eax, 0x7601508a
and eax, 0x4083b8ab
and eax, 0x2e6183d0
cmp eax, 0x93ea1736
ja 0x1803a9d6a
jmp 0x1803a9a16
mov eax, dword [0x180790ae0]
xor eax, dword [0x180790ae4]
mov ecx, 0x85ee401
xor edx, edx
div ecx
sub eax, 0xb809bfbb
imul eax, eax, 0xa8169dd4
cmp eax, 0x3f11752e
jbe 0x1803a9a16
jmp 0x1803a9c50
mov eax, dword [0x180790ae8]
xor edx, edx
div dword [0x180790aec]
xor eax, 0xd9750d9b
imul eax, eax, 0x2585a983
or eax, 0xebe0c3b3
cmp eax, 0x49ecc31e
jb 0x1803a9d7b
mov eax, dword [0x180790af0]
or eax, dword [0x180790af4]
and eax, 0x599e9e2e
mov ecx, 0xe000e7cb
xor edx, edx
div ecx
and eax, 0x984d2a85
mov rbx, rdi
add rbx, 0x30
cmp eax, 0x277925be
je 0x1803a9d7b
jmp 0x1803a9a9e
mov rcx, rdi
add rcx, 0x48
cmp qword [rcx], 0xffffffffffffffff
jne 0x1803a9aaf
ud2
sub rsp, 0x20
call fcn.180659de0
add rsp, 0x20
mov r14, rdx
cmp rax, 0
sete al
test al, 1
jne 0x1803a9acc
jmp 0x1803a9b2f
mov eax, dword [0x180790af8]
imul eax, dword [0x180790afc]
add eax, 0x2e5ffbc7
add eax, 0xe1463789
and eax, 0x905cd567
cmp eax, 0x18024c15
jb 0x1803a9d88
jmp 0x1803a9af5
mov ecx, dword [0x180790b00]
imul ecx, dword [0x180790b04]
sub ecx, 0x98e48548
and ecx, 0x2892acad
and ecx, 0x82fe7f83
cmp r14, 0
sete al
cmp ecx, 0x4c10ad90
je 0x1803a9af5
jmp 0x1803a9b25
test al, 1
jne 0x1803a9bb9
jmp 0x1803a9b2f
add rdi, 0x30
sub rsp, 0x20
mov rcx, rdi
call fcn.1803a8210
add rsp, 0x20
mov rbx, qword [rbp + 0x10]
mov eax, dword [0x180790b08]
imul eax, dword [0x180790b0c]
sub eax, 0x76dee3a7
add eax, 0xc82a4989
xor eax, 0xcd712f34
cmp eax, 0x74a8c3af
jb 0x1803a9d95
mov qword [rbp + 0x10], rbx
jmp 0x1803a9b74
mov eax, dword [0x180790b10]
xor eax, dword [0x180790b14]
or eax, 0xbacd2252
xor eax, 0x6af5681d
or eax, 0x84ba57d7
mov rcx, qword [rbp - 0x40]
mov qword [r13], rcx
mov rcx, qword [rbp - 0x38]
mov qword [r13 + 8], rcx
mov rcx, qword [rbp - 0x30]
mov qword [r13 + 0x10], rcx
mov byte [r15], 1
cmp eax, 0x5d2ad4e0
je 0x1803a9b74
mov ebx, 3
jmp 0x1803a9c25
mov rbx, qword [rbx]
mov r14, qword [rdi + 0x38]
mov rax, qword [rdi + 0x40]
mov qword [r13], rax
mov rax, qword [rdi + 0x48]
mov qword [r13 + 8], rax
mov rax, qword [rdi + 0x50]
mov qword [r13 + 0x10], rax
mov byte [r15], 1
cmp rbx, 4
sete al
test al, 1
jne 0x1803a9c50
jmp 0x1803a9c25
mov byte [r12], al
lea rsp, [rbp + 0x18]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rsi], rbx
mov qword [rsi + 8], r14
mov rax, qword [rbp - 0x28]
mov qword [rsi + 0x10], rax
mov rax, qword [rbp - 0x20]
mov qword [rsi + 0x18], rax
mov rax, qword [rbp - 0x18]
mov qword [rsi + 0x20], rax
mov al, 1
jmp 0x1803a9be9
ud2
mov rax, qword [r13]
mov qword [rbp - 0x28], rax
mov rax, qword [r13 + 8]
mov qword [rbp - 0x20], rax
mov rax, qword [r13 + 0x10]
mov qword [rbp - 0x18], rax
sub rsp, 0x20
mov rcx, qword [rbp + 0x10]
call fcn.1803a9200
add rsp, 0x20
jmp 0x1803a9bfe
mov eax, dword [0x180790b18]
xor eax, dword [0x180790b1c]
sub eax, 0x9a30d914
sub eax, 0xf157f757
or eax, 0x5c43d74d
cmp eax, 0xdc5407a0
jb 0x1803a9dbe
mov eax, dword [0x180790b20]
xor edx, edx
div dword [0x180790b24]
or eax, 0x257bf640
add eax, 0x4a3e32f6
mov ecx, 0x50c642c0
xor edx, edx
div ecx
cmp eax, 0x5b345d3b
je 0x1803a9dbe
jmp 0x1803a9ca4
mov qword [rsi], 4
mov al, 3
jmp 0x1803a9be9
mov cl, 0xf0
mov bl, 0xe5
cmc
sub ebp, ebp
std
jmp 0x1803a956f
imul edi, dword [rax - 0x66], 0x2e
pop rsi
wait
xchg ebx, eax
cmp al, 0xa4
and ah, ch
mov bh, 0x41
mov byte [rdi], 0
jmp 0x1803a965f
mov bl, 0x14
or al, byte [rdi + rsi*8]
test eax, 0x1c65836b
pushfq
jmp 0x1803a96b0
invalid
test al, 0xd0
push rdx
add eax, 0xe9a42ced
jle 0x1803a9cf7
in eax, dx
sub al, 0xa4
jmp 0x1803a977d
invalid
push rdi
adc al, 0x3c
invalid
mov ecx, 0xfad8e943
invalid
jnp 0x1803a9d4c
outsb dx, byte [rsi]
int3
sti
invalid
pop rdx
invalid
jb 0x1803a9d05
jmp 0x145a230d1
add al, 0xc7
sbb al, dl
invalid
mov ah, byte [rcx + rbp + 0x75]
scasb al, byte [rdi]
jnp 0x1803a9d56
invalid
and eax, 0xd29847b8
mov dh, 0xc7
or al, 0xe9
pop rsi
std
invalid
and ecx, dword [rbx - 0x317e7a7f]
xchg dword [r8 - 0x75], ecx
ror byte [r9 - 0x77], 0x45
add byte [rax - 0x75], cl
enter 0xffffffffffff8949, 0x45
or byte [rax - 0x75], cl
ror byte [r9 - 0x77], 1
adc byte [r9 - 0x3a], r8b
invalid
wait
xor dl, byte [rbp + 0xc35122]
mov bl, 0
push rbx
stosb byte [rdi], al
add ch, cl
cmpsd dword [rsi], dword [rdi]
invalid