Function at 0x1803f5260
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov rax, rsi
add rax, 0xb8
mov al, byte [rax]
mov ecx, dword [0x1807979a0]
add ecx, dword [0x1807979a4]
xor ecx, 0x71d8ef96
or ecx, 0x52a37176
imul ecx, ecx, 0xb7950a23
cmp ecx, 0x4e4f9d0c
je 0x1803f588c
mov edx, dword [0x1807979a8]
add edx, dword [0x1807979ac]
or edx, 0xce9f1cdb
sub edx, 0x23d68586
xor edx, 0xb1021f39
movzx ecx, al
cmp edx, 0xaa4865ce
jae 0x1803f588c
test ecx, ecx
je 0x1803f5335
jmp 0x1803f52d3
sub ecx, 3
je 0x1803f547f
jmp 0x1803f52de
mov eax, dword [0x1807979b0]
or eax, dword [0x1807979b4]
imul eax, eax, 0x7cf51db1
or eax, 0xec140141
or eax, 0x47f5cafa
cmp eax, 0x73fb07d1
je 0x1803f589d
jmp 0x1803f5307
mov eax, dword [0x1807979b8]
xor edx, edx
div dword [0x1807979bc]
sub eax, 0x6413e9b2
xor eax, 0xa9afb002
imul eax, eax, 0x54a7c371
cmp eax, 0x2a050f01
je 0x1803f5307
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov rdi, qword [rsi]
cmp rdi, 0
sete al
test al, 1
jne 0x1803f53fc
jmp 0x1803f5349
mov rbx, qword [rsi + 8]
mov eax, dword [0x1807979c0]
add eax, dword [0x1807979c4]
xor eax, 0x6dcf9aee
imul eax, eax, 0xd384e047
sub eax, 0x2c311f5e
cmp eax, 0x213e86c
jb 0x1803f58ae
jmp 0x1803f5376
mov eax, dword [0x1807979c8]
imul eax, dword [0x1807979cc]
sub eax, 0x7bb32ed1
or eax, 0x41f2a99c
imul ebp, eax, 0x6e063c97
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
cmp ebp, 0xd97e3fe2
je 0x1803f5376
jmp 0x1803f53ae
mov eax, dword [0x1807979d0]
or eax, dword [0x1807979d4]
xor eax, 0xf8460d9
or eax, 0x1409ee5d
and eax, 0x88c43566
cmp eax, 0x56100628
jb 0x1803f58cc
jmp 0x1803f53d6
mov eax, dword [0x1807979d8]
imul eax, dword [0x1807979dc]
imul eax, eax, 0x55cb8fdd
add eax, 0xbf93b0f3
or eax, 0x2b38ecee
cmp eax, 0x956b2a0a
je 0x1803f53d6
jmp 0x1803f53fc
mov rax, rsi
add rax, 0x18
mov rdx, qword [rax]
cmp rdx, 0
je 0x1803f52de
add rsi, 0x20
mov rcx, qword [rsi]
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x1807979e0]
xor edx, edx
div dword [0x1807979e4]
and eax, 0xb370565f
mov ecx, 0x3ff373fe
xor edx, edx
div ecx
imul eax, eax, 0x3794141a
cmp eax, 0xcf1ed6ad
jae 0x1803f58dd
mov eax, dword [0x1807979e8]
and eax, dword [0x1807979ec]
mov ecx, 0x6417ee7b
xor edx, edx
div ecx
sub eax, 0xcfe2e22d
imul eax, eax, 0xc4375f90
cmp eax, 0xa5fbe2c
jb 0x1803f58dd
jmp 0x1803f52de
mov eax, dword [0x1807979f0]
and eax, dword [0x1807979f4]
mov ecx, 0xbb332932
xor edx, edx
div ecx
mov ecx, 0x18c52ec4
xor edx, edx
div ecx
sub eax, 0xf1be7d5b
cmp eax, 0xa4fa6781
jae 0x1803f58ee
mov eax, dword [0x1807979f8]
sub eax, dword [0x1807979fc]
imul eax, eax, 0x34d0c3e3
add eax, 0x3b48587a
or eax, 0xf02a541a
mov rcx, rsi
add rcx, 0xb0
cmp eax, 0xe7eab847
jb 0x1803f58ee
jmp 0x1803f54e0
mov eax, dword [0x180797a00]
xor edx, edx
div dword [0x180797a04]
add eax, 0xb250727e
or eax, 0xcd950958
sub eax, 0xce610929
cmp eax, 0xf50279c9
je 0x1803f58ff
mov edx, dword [0x180797a08]
imul edx, dword [0x180797a0c]
sub edx, 0x3dc36607
or edx, 0x1dc623d2
or edx, 0xbbdf04a
mov al, byte [rcx]
cmp edx, 0x34a22b52
jbe 0x1803f58ff
jmp 0x1803f5537
mov ecx, dword [0x180797a10]
or ecx, dword [0x180797a14]
xor ecx, 0x92377315
or ecx, 0xfb0f0918
add ecx, 0x9c5cabec
cmp ecx, 0xce7377d7
je 0x1803f590c
jmp 0x1803f5563
mov edx, dword [0x180797a18]
and edx, dword [0x180797a1c]
and edx, 0x9cf82097
and edx, 0xe6a7d00c
sub edx, 0x817e1843
cmp al, 0
sete cl
cmp edx, 0x3c4dbed6
je 0x1803f5563
test cl, 1
jne 0x1803f5598
jmp 0x1803f5628
mov rax, rsi
add rax, 0x90
mov rdi, qword [rax]
cmp rdi, 0
sete al
test al, 1
jne 0x1803f5628
jmp 0x1803f55b1
mov rax, rsi
add rax, 0x98
mov rbx, qword [rax]
mov eax, dword [0x180797a20]
and eax, dword [0x180797a24]
or eax, 0xd4b5433a
xor eax, 0xf402113b
mov ecx, 0xbc3017ae
xor edx, edx
div ecx
cmp eax, 0x573f891e
ja 0x1803f591d
mov eax, dword [0x180797a28]
or eax, dword [0x180797a2c]
and eax, 0xab7245f5
mov ecx, 0x982876f2
xor edx, edx
div ecx
mov ebp, eax
xor ebp, 0xb2d4df3c
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
cmp ebp, 0x996d367c
jb 0x1803f591d
jmp 0x1803f5628
mov eax, dword [0x180797a30]
or eax, dword [0x180797a34]
or eax, 0xe68e0eaa
xor eax, 0xe8d3dbe5
or eax, 0x8d6e2ba6
cmp eax, 0xc8064c12
ja 0x1803f593f
jmp 0x1803f5650
mov eax, dword [0x180797a38]
or eax, dword [0x180797a3c]
mov ecx, 0x8bbf925f
xor edx, edx
div ecx
imul eax, eax, 0x5d8db7ea
imul eax, eax, 0xbb18235b
mov rdi, rsi
add rdi, 0xbb
cmp eax, 0x5b9b88f2
je 0x1803f5650
jmp 0x1803f5684
mov eax, dword [0x180797a40]
and eax, dword [0x180797a44]
imul eax, eax, 0xca2057e9
sub eax, 0x8f3a5b61
or eax, 0xcfea694d
cmp eax, 0xf8f4d515
ja 0x1803f5950
jmp 0x1803f56ad
mov eax, dword [0x180797a48]
xor eax, dword [0x180797a4c]
imul ecx, eax, 0x11c6401c
sub ecx, 0x9988de64
add ecx, 0x1dfc8577
mov al, byte [rdi]
cmp ecx, 0x412dcbdc
ja 0x1803f56ad
jmp 0x1803f56d7
cmp al, 0
jne 0x1803f573e
mov eax, dword [0x180797a50]
or eax, dword [0x180797a54]
imul eax, eax, 0x4f2df7e1
imul eax, eax, 0x6a19e1b2
or eax, 0xb8bb3056
cmp eax, 0xd4bdad34
jae 0x1803f595d
jmp 0x1803f5705
mov eax, dword [0x180797a58]
xor eax, dword [0x180797a5c]
xor eax, 0x2e7842af
xor eax, 0xa313b663
or eax, 0x25ffe273
mov rbx, rsi
add rbx, 0xba
cmp eax, 0x4410d777
jbe 0x1803f5705
jmp 0x1803f5733
mov al, byte [rbx]
cmp al, 0
je 0x1803f57b2
jmp 0x1803f5816
mov rax, rsi
add rax, 0x40
mov rdx, qword [rax]
cmp rdx, 0
je 0x1803f56db
mov rcx, qword [rsi + 0x48]
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x180797a60]
imul eax, dword [0x180797a64]
sub eax, 0x8e76a11f
and eax, 0xba3e5b30
add eax, 0x5380ac41
cmp eax, 0x79543860
je 0x1803f596a
jmp 0x1803f5786
mov eax, dword [0x180797a68]
and eax, dword [0x180797a6c]
imul eax, eax, 0x9f4519a4
xor eax, 0xf5e12a4
mov ecx, 0xfafab54d
xor edx, edx
div ecx
cmp eax, 0x8e396183
jae 0x1803f5786
jmp 0x1803f56db
mov eax, dword [0x180797a70]
xor eax, dword [0x180797a74]
imul eax, eax, 0x2e2603df
mov ecx, 0x74d15095
xor edx, edx
div ecx
xor eax, 0x213af735
cmp eax, 0x1c2cad33
je 0x1803f5977
jmp 0x1803f57df
mov eax, dword [0x180797a78]
xor eax, dword [0x180797a7c]
mov ecx, 0x15ba2d48
xor edx, edx
div ecx
add eax, 0xd285954
mov ecx, 0xead7ec1
xor edx, edx
div ecx
mov byte [rbx], 0
cmp eax, 0xf8246faa
je 0x1803f57df
jmp 0x1803f580e
mov byte [rdi], 0
jmp 0x1803f52de
mov rax, rsi
add rax, 0x58
mov rdx, qword [rax]
cmp rdx, 0
je 0x1803f57b2
mov rcx, qword [rsi + 0x60]
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x180797a80]
sub eax, dword [0x180797a84]
sub eax, 0x5a616922
mov ecx, 0x6aec422d
xor edx, edx
div ecx
mov ecx, 0x842ac76b
xor edx, edx
div ecx
imul eax, edi, 0x2a
test byte [rcx], dh
sal bh, cl
int1
cmp eax, 0x1e62ba4a
jae 0x1803f598b
jmp 0x1803f5865
mov eax, dword [0x180797a88]
or eax, dword [0x180797a8c]
add eax, 0x3a221b
or eax, 0xf15a1081
add eax, 0xc228adc4
sub eax, 0xb3c542f
cmp eax, 0xc3790ac1
je 0x1803f5865
jmp 0x1803f57b2
stc
pop rsp
pop rbp
jle 0x1803f586c
jle 0x1803f5850
mov dword [rax - 0x5fc1630], ebx
invalid
mov esp, dword [rsi]
ret
sahf
xor ebx, dword [rcx + rbp*8]
add al, 0xa5
add ecx, dword [rbx]
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
jmp 0x1803f5374
ret
out dx, eax
call [rax - 0x6d]
out dx, al
mov ss, word [rdx + 0x6b]
enter 0xffffffffffffc449, 0x57
jmp 0x1803f544f
xchg esp, eax
test esi, r15d
test eax, 0xa2d0cf4c
ficom word [rcx + rbp*8 - 0x52]
sti
invalid
sub dl, ch
adc al, 0xcd
invalid
invalid
jb 0x1803f5911
ret
sbb al, 0x1e
fsub st(1), st(0)
in eax, 0x54
xchg edi, eax
jae 0x1803f5965
adc dword [rbp - 0x2676b70b], edi
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
jmp 0x1803f55e7
retf
jmp 0x1851a38da
jge 0x1803f590f
hlt
jmp 0x1803f5703
mov bh, 0x92
int 0xa
enter 0xfffffffffffff4af, 0xffffffffffffff93
jmp 0x1803f5784
invalid
fisttp dword [rdi + 0x4f]
rcl byte [0x1f60539b7], 0x6a
mov r12b, 0xe9
invalid