Function at 0x1804a1b40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rdi, rdx
mov rsi, rcx
mov eax, dword [0x1807aa2d0]
add eax, dword [0x1807aa2d4]
or eax, 0x59033f0
or eax, 0x2748a053
sub eax, 0x3f77971a
cmp eax, 0xace7256e
je 0x1804a22ed
mov eax, dword [0x1807aa2d8]
sub eax, dword [0x1807aa2dc]
imul eax, eax, 0x5b8a373b
or eax, 0x104014fe
or eax, 0xf80f9a8a
mov rcx, qword [rdi]
mov r12, rdi
add r12, 8
mov r8, qword [rdi + 8]
cmp eax, 0xc2c41d88
jb 0x1804a22ed
jmp 0x1804a1bb3
mov eax, dword [0x1807aa2e0]
sub eax, dword [0x1807aa2e4]
or eax, 0x54aa081c
sub eax, 0x70d4ba8c
and eax, 0xcce23cfd
cmp eax, 0x1beeda97
jb 0x1804a22fe
jmp 0x1804a1bdb
mov edx, dword [0x1807aa2e8]
or edx, dword [0x1807aa2ec]
xor edx, 0xe5b42e2b
and edx, 0x6bba7e41
sub edx, 0x8b84d51
cmp r8, 9
setb al
cmp edx, 0x5a523d9
je 0x1804a1bdb
test al, 1
jne 0x1804a1c11
jmp 0x1804a1cc8
mov eax, dword [0x1807aa2f0]
xor edx, edx
div dword [0x1807aa2f4]
and eax, 0x99d1d80a
mov ecx, 0xf769fb5c
xor edx, edx
div ecx
add eax, 0x3e0946fa
cmp eax, 0x9973f98e
je 0x1804a230f
jmp 0x1804a1c3f
mov ebx, dword [0x1807aa2f8]
sub ebx, dword [0x1807aa2fc]
xor ebx, 0x11c44375
and ebx, 0xc9525d94
and ebx, 0xff78ff14
lea rcx, [rsp + 0x48]
mov rdx, rdi
call fcn.1803ef100
cmp ebx, 0xc0adda95
ja 0x1804a1c3f
jmp 0x1804a1c74
mov eax, dword [0x1807aa300]
add eax, dword [0x1807aa304]
or eax, 0xad9ab61a
mov ecx, 0x168fc16f
xor edx, edx
div ecx
imul eax, eax, 0xf06c0a77
or ch, byte [rax + rsi*8 + 0x3d]
scasd eax, dword [rdi]
fbld tbyte [rax - 0x757cf04b]
invalid
add byte [rax], al
jmp 0x1804a1ca1
mov eax, dword [0x1807aa308]
or eax, dword [0x1807aa30c]
sub eax, 0xe19f8039
xor eax, 0x2880a157
sub eax, 0xb0aba034
cmp eax, 0x1f6ae34f
jae 0x1804a1ca1
jmp 0x1804a1f67
mov r9, rcx
add r9, 1
mov r10b, byte [rcx]
adc dword [rbx + 0x30863805], ecx
add byte [rbx], ch
add eax, 0x308636
or eax, 0xd0c0c833
or eax, 0x96b9964a
imul eax, eax, 0x5f43afb9
sar byte [rcx + 0x3d5f43af], 0xbb
in al, dx
ret
clc
je 0x1804a2336
invalid
mov eax, dword [0x1807aa318]
add eax, dword [0x1807aa31c]
add eax, 0x54b1586
add eax, 0xdeb4d0be
mov r11d, 0x40fef870
xor edx, edx
div r11d
cmp r10b, 0xfb
cli
sti
setb dl
cmp eax, 0x2e01a6c4
ja 0x1804a2336
test dl, 1
jne 0x1804a1d51
jmp 0x1804a1d33
add r10b, 5
movzx eax, r10b
movzx eax, dl
sub r10b, 3
ja 0x1804a1d5f
lea rdx, [0x1806c9e70]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
invalid
movzx ebx, r10b
mov eax, 1
jmp 0x1804a1df2
add byte [rax], al
invalid
lea rcx, [rsp + 0x48]
mov edx, 2
mov r8d, 0xc
call fcn.1803ef760
jmp 0x1804a1f67
lea rcx, [rsp + 0x48]
mov edx, 2
mov r8d, 4
call fcn.1803ef760
mov eax, dword [0x1807aa320]
xor eax, dword [0x1807aa324]
imul eax, eax, 0x75576fbc
or eax, 0xf96aefc9
and eax, 0x46ac9f58
cmp eax, 0x97a9b8e3
jae 0x1804a2343
mov eax, dword [0x1807aa328]
and eax, dword [0x1807aa32c]
add eax, 0xd95f8535
xor eax, 0xbc4fefae
and eax, 0x378b57f
cmp eax, 0x2c191b52
je 0x1804a2343
jmp 0x1804a1f67
mov ax, word [r9]
rol ax, 8
movzx ebx, ax
mov eax, 3
jmp 0x1804a1df2
add rcx, rax
sub r8, rax
mov qword [rdi], rcx
mov qword [r12], r8
jmp 0x1804a20ca
mov eax, dword [0x1807aa330]
add eax, dword [0x1807aa334]
add eax, 0xf6f95e64
and eax, 0xcce847c8
add eax, 0x7bcb57d9
cmp eax, 0x710c529a
push rdx
or al, 0x71
jbe 0x1804a2350
mov edx, dword [0x1807aa338]
or edx, dword [0x1807aa33c]
xor edx, 0x8676210c
and edx, 0x1f1e47d3
or edx, 0x273c177c
mov eax, dword [r9]
bswap eax
cmp edx, 0x2bde8af3
jb 0x1804a2350
jmp 0x1804a1e5b
mov edx, dword [0x1807aa340]
or edx, dword [0x1807aa344]
xor edx, 0x26293cdc
imul edx, edx, 0x40e4c37
sub edx, 0x677c6dc8
cmp edx, 0x72e3f887
jb 0x1804a235d
mov edx, dword [0x1807aa348]
and edx, dword [0x1807aa34c]
imul edx, edx, 0x901b1b69
add edx, 0xc95613fe
xor edx, 0xde6a64fd
mov ebx, eax
cmp edx, 0xb8615d70
ja 0x1804a235d
jmp 0x1804a1eb3
mov eax, dword [0x1807aa350]
xor eax, dword [0x1807aa354]
imul eax, eax, 0x13898473
add eax, 0x5c52e0df
sub eax, 0xbd510a08
cmp eax, 0xce0586a0
jae 0x1804a236e
jmp 0x1804a1edc
mov eax, dword [0x1807aa358]
add eax, dword [0x1807aa35c]
imul eax, eax, 0xe1ed8302
and eax, 0xb1407678
add eax, 0x92d93d8d
cmp eax, 0xb7df7f04
je 0x1804a1edc
mov eax, 5
jmp 0x1804a1df2
mov eax, dword [0x1807aa360]
xor eax, dword [0x1807aa364]
or eax, 0x72168db6
add eax, 0x8e6728b6
or eax, 0xcb497288
cmp eax, 0xa6a8fe42
jb 0x1804a237f
mov eax, dword [0x1807aa368]
sub eax, dword [0x1807aa36c]
xor eax, 0xa46e7fda
xor eax, 0x842cdb61
and eax, 0x6b21ad90
mov rbx, qword [r9]
cmp eax, 0x1d6b367
jbe 0x1804a237f
jmp 0x1804a1f5a
bswap rbx
mov eax, 9
jmp 0x1804a1df2
mov eax, dword [0x1807aa370]
add eax, dword [0x1807aa374]
sub eax, 0xed566f1f
or eax, 0x81a5da18
sub eax, 0x60200b32
cmp eax, 0xb023beb7
je 0x1804a238c
mov eax, dword [0x1807aa378]
imul eax, dword [0x1807aa37c]
and eax, 0xc3997b5c
imul eax, eax, 0xfc692209
mov ecx, 0xc6047091
xor edx, edx
div ecx
mov cl, byte [rsp + 0x48]
cmp eax, 0x3ef9f74d
jae 0x1804a238c
jmp 0x1804a1fbf
cmp cl, 0x11
sete al
test al, 1
jne 0x1804a1fcb
jmp 0x1804a1fdc
lea rax, [rsp + 0x48]
add rax, 8
mov rbx, qword [rax]
jmp 0x1804a20ca
mov eax, dword [rsp + 0x49]
mov dword [rsi + 1], eax
mov ax, word [rsp + 0x4d]
mov word [rsi + 5], ax
mov al, byte [rsp + 0x4f]
mov byte [rsi + 7], al
mov eax, dword [0x1807aa380]
add eax, dword [0x1807aa384]
and eax, 0x623537f8
add eax, 0x1e889322
or eax, 0xc9876134
cmp eax, 0xc5f57210
je 0x1804a2399
jmp 0x1804a201b
mov eax, dword [0x1807aa388]
and eax, dword [0x1807aa38c]
or eax, 0x7cad2e8b
mov r8d, 0xd37ff226
xor edx, edx
div r8d
add eax, 0xf7f4f6ef
mov r8, qword [rsp + 0x50]
cmp eax, 0x267c1a85
je 0x1804a201b
jmp 0x1804a204a
mov eax, dword [0x1807aa390]
xor eax, dword [0x1807aa394]
or eax, 0x74070fd1
and eax, 0xd415cec9
mov r9d, 0xcdebef0c
xor edx, edx
div r9d
cmp eax, 0xc05e6535
je 0x1804a23a6
jmp 0x1804a2078
mov eax, dword [0x1807aa398]
and eax, dword [0x1807aa39c]
imul eax, eax, 0x1a8df4c1
imul eax, eax, 0x2db34b61
or eax, 0xc0e4bb91
mov rdx, qword [rsp + 0x58]
mov qword [rsi + 0x10], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsi + 0x18], rdx
mov byte [rsi], cl
mov qword [rsi + 8], r8
cmp eax, 0x22c8a1ad
jbe 0x1804a2078
jmp 0x1804a20b6
mov rax, rsi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x30], 0
lea r14, [rsp + 0x30]
add r14, 8
mov eax, 1
mov qword [rsp + 0x38], rax
lea r13, [rsp + 0x30]
add r13, 0x10
mov qword [rsp + 0x40], 0
cmp rbx, 0
jne 0x1804a2110
mov rbx, qword [r12]
xor r15d, r15d
mov r14d, 1
jmp 0x1804a2222
mov eax, dword [0x1807aa3a0]
xor edx, edx
div dword [0x1807aa3a4]
sub eax, 0x2733d757
or eax, 0xc4426334
sub eax, 0xf6b86e68
cmp eax, 0x2f7b1022
je 0x1804a23cb
mov eax, dword [0x1807aa3a8]
add eax, dword [0x1807aa3ac]
sub eax, 0x7264b2a3
imul ebp, eax, 0x9f4ac787
sub ebp, 0x90555174
lea rcx, [rsp + 0x30]
xor edx, edx
mov r8, rbx
mov r9d, 1
mov qword [rsp + 0x20], 1
call fcn.18045c010
cmp ebp, 0xa21f27b0
jbe 0x1804a23cb
jmp 0x1804a2181
mov r15, qword [r13]
mov r14, qword [r14]
mov eax, dword [0x1807aa3b0]
or eax, dword [0x1807aa3b4]
mov ecx, 0x6e95505b
xor edx, edx
div ecx
mov ecx, 0x81b25d8c
xor edx, edx
div ecx
mov ecx, 0x3d1a7723
xor edx, edx
div ecx
cmp eax, 0x13326437
je 0x1804a23fa
mov edx, dword [str.wM]
or edx, dword [0x1807aa3bc]
or edx, 0x5f205529
sub edx, 0xf963c9a0
xor edx, 0x33bd6092
mov rcx, r14
add rcx, r15
cmp rbx, 1
sete al
cmp edx, 0x993a7fa6
je 0x1804a23fa
test al, 1
je 0x1804a21f7
jmp 0x1804a220e
add rbx, 0xffffffffffffffff
xor edx, edx
mov r8, rbx
call fcn.1806a7aa0
add r15, rbx
mov rcx, r14
add rcx, r15
mov byte [rcx], 0
add r15, 1
mov qword [r13], r15
mov rbx, qword [r12]
cmp rbx, r15
jb 0x1804a2262
mov rdx, qword [rdi]
mov r13, rdx
add r13, r15
sub rbx, r15
mov rcx, r14
mov r8, r15
call fcn.1806a7400
mov qword [rdi], r13
mov qword [r12], rbx
mov rax, qword [rsp + 0x30]
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0x38]
mov qword [rsi + 0x10], rax
mov rax, qword [rsp + 0x40]
mov qword [rsi + 0x18], rax
mov al, 0x11
jmp 0x1804a22e6
sub r15, rbx
mov qword [rsi + 8], r15
mov r8, qword [rsp + 0x30]
cmp r8, 0
sete cl
mov eax, dword [0x1807aa3c0]
xor edx, edx
div dword [0x1807aa3c4]
imul eax, eax, 0xb2dde3de
sub eax, 0x41188fcc
mov r9d, 0xb378cc77
xor edx, edx
div r9d
cmp eax, 0x9268d47c
je 0x1804a240b
jmp 0x1804a22a6
mov eax, dword [0x1807aa3c8]
sub eax, dword [0x1807aa3cc]
or eax, 0xdd6ae8d
or eax, 0x548cc5f5
xor eax, 0x75ea42a4
cmp eax, 0xe36eb522
jae 0x1804a22a6
xor eax, eax
test cl, 1
jne 0x1804a22e6
jmp 0x1804a22d1
mov rcx, r14
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
xor eax, eax
jmp 0x1804a22e6
mov byte [rsi], al
jmp 0x1804a20b6
adc eax, 0xe882a493
test dword [0x1f200d761], ebp
sub eax, 0x71b6b468
jmp 0x1804a1b7c
jle 0x1804a22f4
invalid
lock sub dword [rdi + 0x431cc93a], ebx
lodsb al, byte [rsi]
push rdi
popfq
popfq
jmp 0x1804a1bd9
cdq
ror bh, 0xf1
mov cl, byte [r8]
invalid
invalid
js 0x1804a22fa
jns 0x1804a235e
ret
xor eax, dword [rdi + riz*8]
push rdi
push 0x40
ja 0x1804a2328
mov dh, 0xf9
invalid
cmp dh, ch
adc dword [rcx], eax
cmpsb byte [rsi], byte [rdi]
push rsp
ficom word [rdx - 0x17]
cli
invalid
mov al, 0x7a
adc ecx, 0x374f7492
jmp 0x1804a1e2a
in eax, dx
in eax, 0xea
movsb byte [rdi], byte [rsi]
test al, 0xa0
invalid
movsd dword [rdi], dword [rsi]
or dword [rax - 0x6016aba4], 0xffffffe4
pushfq
and eax, 0x5be9651b
sti
invalid
cli
push rax
add byte [rsi], dh
jo 0x1804a2308
jmp 0x1804a1f2f
or byte [rbx - 0x74084a1a], ah
sbb eax, 0xfbf4e922
invalid
invalid
invalid
pop rax
xchg edi, eax
mov bl, 0x51
jl 0x1804a23f7
mov edx, 0xf07ab96a
iretd
std
invalid
cmp al, 0x30
invalid
jnp 0x1804a248b
scasd eax, dword [rdi]
mov eax, 0xc114efee
jmp 0x1804a22a4
jg 0x1804a24bd
add byte [rbx], cl
add eax, 0x307f40
sbb edi, dword [rdi + 0x30]
add byte [0x1933055e7], dh