Function at 0x1803ed540
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov rdi, r8
mov rsi, rcx
mov ebp, dword [rdx]
cmp ebp, 0xfb
setb al
test al, 1
jne 0x1803ed590
jmp 0x1803ed565
cmp ebp, 0x10000
setb cl
mov r14, rdi
add r14, 0x10
mov rbx, qword [rdi + 0x10]
mov rax, qword [rdi]
cmp rax, rbx
sete dl
test cl, 1
jne 0x1803ed910
jmp 0x1803ed785
mov eax, dword [0x180796c58]
xor edx, edx
div dword [0x180796c5c]
xor eax, 0xdc17c58f
and eax, 0xc5746ca3
and eax, 0x1a6e91b5
cmp eax, 0x514e69e7
je 0x1803eda61
mov eax, dword [0x180796c60]
xor eax, dword [0x180796c64]
and eax, 0x10908bf1
imul eax, eax, 0x829beb68
or eax, 0x85a3ab03
cmp eax, 0x1af140f5
je 0x1803eda61
jmp 0x1803ed5e1
mov eax, dword [0x180796c68]
and eax, dword [0x180796c6c]
and eax, 0xfd2dc060
imul eax, eax, 0x572f02f7
xor eax, 0xdeb82e3d
cmp eax, 0x19d42a8e
je 0x1803eda72
mov eax, dword [0x180796c70]
xor eax, dword [0x180796c74]
xor eax, 0x756fdb16
xor eax, 0xf524bb54
and eax, 0xeb4f67b2
mov r14, rdi
add r14, 0x10
mov rbx, qword [rdi + 0x10]
cmp eax, 0xc37fd925
jb 0x1803eda72
jmp 0x1803ed63b
cmp qword [rdi], rbx
je 0x1803ed645
jmp 0x1803ed71a
mov eax, dword [0x180796c78]
add eax, dword [0x180796c7c]
mov ecx, 0xbca7b987
xor edx, edx
div ecx
imul eax, eax, 0x1fb79c7e
xor eax, 0x5d41a03f
cmp eax, 0xf54df84a
je 0x1803eda7f
mov eax, dword [0x180796c80]
or eax, dword [0x180796c84]
imul r15d, eax, 0xbbb4cf87
sub r15d, 0xc9184dbb
sub r15d, 0x57fbbada
mov rcx, rdi
mov rdx, rbx
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.18045c010
cmp r15d, 0x4a19c978
je 0x1803eda7f
jmp 0x1803ed6c0
mov rbx, qword [r14]
mov eax, dword [0x180796c88]
xor eax, dword [0x180796c8c]
xor eax, 0xcc401b94
add eax, 0xd73e2f28
sub eax, 0xdc53962a
cmp eax, 0xcdf6293d
jbe 0x1803edaac
mov eax, dword [0x180796c90]
imul eax, dword [0x180796c94]
mov ecx, 0xbb1588ce
xor edx, edx
div ecx
mov ecx, 0xc8e0ae6
xor edx, edx
div ecx
sub eax, 0x90d8834c
cmp eax, 0xf0878c8a
je 0x1803edaac
jmp 0x1803ed71a
mov eax, dword [0x180796c98]
or eax, dword [0x180796c9c]
xor eax, 0xab37b085
add eax, 0xd1b76de1
and eax, 0x1d2dbb9a
cmp eax, 0x24d0ec5f
je 0x1803edabd
mov eax, dword [0x180796ca0]
and eax, dword [0x180796ca4]
mov ecx, 0x672726ca
xor edx, edx
div ecx
add eax, 0x65bc7c6b
mov ecx, 0xfff41375
xor edx, edx
div ecx
mov rcx, qword [rdi + 8]
mov byte [rcx + rbx], bpl
mov rcx, rbx
add rcx, 1
mov qword [r14], rcx
cmp eax, 0xdfe2d828
je 0x1803edabd
jmp 0x1803ed9f1
test dl, 1
jne 0x1803ed78c
jmp 0x1803ed7b2
mov rcx, rdi
mov rdx, rbx
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.18045c010
mov rbx, qword [r14]
mov rax, qword [rdi]
mov r15, rdi
add r15, 8
mov rcx, qword [rdi + 8]
mov byte [rcx + rbx], 0xfc
add rbx, 1
mov qword [r14], rbx
bswap ebp
sub rax, rbx
cmp rax, 4
jb 0x1803ed7d8
jmp 0x1803ed8b1
mov eax, dword [0x180796ca8]
xor eax, dword [0x180796cac]
or eax, 0x6691b8fe
sub eax, 0x8eb256fc
mov ecx, 0xe6ab5bc5
xor edx, edx
div ecx
cmp eax, 0xbad0647e
jae 0x1803edadc
mov r12d, dword [0x180796cb0]
imul r12d, dword [0x180796cb4]
xor r12d, 0x1ca7caa9
xor r12d, 0x96302d57
or r12d, 0x29f573e3
mov rcx, rdi
mov rdx, rbx
mov r8d, 4
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.18045c010
cmp r12d, 0x65748d2a
jb 0x1803edadc
jmp 0x1803ed855
mov eax, dword [0x180796cb8]
imul eax, dword [0x180796cbc]
mov ecx, 0x9405ff74
xor edx, edx
div ecx
or eax, 0xab85f93
imul eax, eax, 0xa99ccea9
cmp eax, 0x8958fa30
jb 0x1803edb0d
jmp 0x1803ed883
mov eax, dword [0x180796cc0]
xor eax, dword [0x180796cc4]
xor eax, 0xe902b732
mov ecx, 0xc128360d
xor edx, edx
div ecx
and eax, 0xbf7784fe
mov rbx, qword [r14]
cmp eax, 0x9c71ee5c
je 0x1803ed883
jmp 0x1803ed8ae
mov rcx, qword [r15]
mov eax, dword [0x180796cc8]
xor eax, dword [0x180796ccc]
and eax, 0x261d64c7
or eax, 0xab166724
and eax, 0x42565d05
cmp eax, 0x95627910
ja 0x1803edb1a
mov eax, dword [0x180796cd0]
xor eax, dword [0x180796cd4]
xor eax, 0x174aabc0
add eax, 0xdb8c822a
imul eax, eax, 0xaee2c9b0
mov dword [rcx + rbx], ebp
mov rdx, rbx
add rdx, 4
mov qword [r14], rdx
cmp eax, 0x5743b9d0
je 0x1803edb1a
jmp 0x1803ed9f1
test dl, 1
jne 0x1803ed917
jmp 0x1803ed93d
mov rcx, rdi
mov rdx, rbx
mov r8d, 1
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.18045c010
mov rbx, qword [r14]
mov rax, qword [rdi]
mov r15, rdi
add r15, 8
mov rcx, qword [rdi + 8]
mov byte [rcx + rbx], 0xfb
add rbx, 1
mov qword [r14], rbx
rol bp, 8
sub rax, rbx
cmp rax, 2
jb 0x1803ed965
jmp 0x1803ed9e6
mov rcx, rdi
mov rdx, rbx
mov r8d, 2
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.18045c010
mov eax, dword [0x180796cd8]
xor edx, edx
div dword [0x180796cdc]
sub eax, 0x93d5414
sub eax, 0xb40c4502
and eax, 0xa09c3d8a
cmp eax, 0xc8cc79d4
ja 0x1803edb38
jmp 0x1803ed9af
mov eax, dword [0x180796ce0]
xor edx, edx
div dword [0x180796ce4]
imul eax, eax, 0x57c2fa8
mov ecx, 0xe6c799a6
xor edx, edx
div ecx
mov ecx, 0x8e54906b
xor edx, edx
div ecx
mov rbx, qword [r14]
mov rcx, qword [r15]
cmp eax, 0xb6e713d0
jae 0x1803ed9af
jmp 0x1803ed9e4
jmp 0x1803ed9e6
mov word [rcx + rbx], bp
add rbx, 2
mov qword [r14], rbx
mov qword [rsi], 8
mov eax, dword [0x180796ce8]
imul eax, dword [0x180796cec]
add eax, 0xdf1c74e9
xor eax, 0xe5cb11d9
or eax, 0xecb719dd
cmp eax, 0x7fd04ae0
jb 0x1803edb45
jmp 0x1803eda21
mov eax, dword [0x180796cf0]
add eax, dword [0x180796cf4]
mov ecx, 0x838e0a3a
xor edx, edx
div ecx
mov ecx, 0x980cbfe5
xor edx, edx
div ecx
mov ecx, 0x7bd098f0
xor edx, edx
div ecx
cmp eax, 0xac195300
ja 0x1803eda21
mov rax, rsi
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
or eax, 0xd82861dc
jns 0x1803eda9b
sub byte [rsi + 0x69], al
invalid
sbb dword [rsi], ecx
mov ch, 0xbe
cmp byte [rsi + rdi*4], ah
invalid
invalid
and al, 0x20
add dword [rax], eax
add byte [rax], al
call fcn.18045c010
jmp 0x1803ed670
invalid
cli
pushfq
and al, 0x93
adc al, 0x25
xor eax, 0x8478b48
mov byte [rax + rbx], bpl
mov rax, rbx
add rax, 1
mov qword [r14], rax
jmp 0x1803ed740
pop rbp
xchg ebx, eax
movabs al, byte [0xe94123ec5f8a2946]
std
invalid
cmc
out 0x1d, al
fidivr dword [rsi + 0x3d]
invalid
adc dword [rdx + 0x4027a240], 0xffffffd7
out 0xe9, eax
push 0x51fffffe
push rcx
sub ebx, dword [rax]
scasb al, byte [rdi]
out dx, eax
invalid