Function at 0x18049d990
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rbx, r8
mov rsi, rdx
mov r14, rcx
mov rax, qword [r14]
mov ecx, dword [0x1807a9c28]
add ecx, dword [0x1807a9c2c]
imul ecx, ecx, 0x79379f3e
and ecx, 0x28fa7ab2
add ecx, 0x762499bc
cmp ecx, 0x668ba10b
jbe 0x18049df27
mov ecx, dword [0x1807a9c30]
sub ecx, dword [0x1807a9c34]
xor ecx, 0x52740517
xor ecx, 0x36fd170d
and ecx, 0xe46f4bf4
cmp ecx, 0x4070623e
je 0x18049df27
test rax, rax
je 0x18049da72
jmp 0x18049da04
mov rcx, rax
sub rcx, 1
je 0x18049dcbb
jmp 0x18049da13
sub rax, 2
je 0x18049dddd
jmp 0x18049da1f
mov eax, dword [0x1807a9c38]
sub eax, dword [0x1807a9c3c]
mov ecx, 0xb7562120
xor edx, edx
div ecx
sub eax, 0xff694f58
add eax, 0xd8d1f737
cmp eax, 0x21ec74fd
jb 0x18049df34
mov eax, dword [0x1807a9c40]
imul eax, dword [0x1807a9c44]
xor eax, 0x4d1f6133
add eax, 0x970b1c83
and eax, 0x33fb91ab
cmp eax, 0x6a175750
jae 0x18049df34
ud2
add r14, 8
mov r12, qword [r14]
mov eax, 1
lock xadd qword [r12], rax
cmp rax, 0
setl cl
mov eax, dword [0x1807a9c48]
xor eax, dword [0x1807a9c4c]
mov r8d, 0x90344d3a
xor edx, edx
div r8d
mov r8d, 0x8af34e5c
xor edx, edx
div r8d
or eax, 0xdea27bb8
cmp eax, 0x234ea08c
jbe 0x18049df41
mov eax, dword [0x1807a9c50]
add eax, dword [0x1807a9c54]
sub eax, 0x6f54b9f0
or eax, 0x43dafabb
add eax, 0x64f9aec9
cmp eax, 0xa3c766d9
jb 0x18049df41
test cl, 1
jne 0x18049dc53
jmp 0x18049daee
mov al, byte [0x1807afe04]
mov ecx, 0x400
mov edx, 0x80
call fcn.1804caf90
mov rdi, rax
cmp rdi, 0
sete al
mov ecx, dword [0x1807a9c58]
add ecx, dword [0x1807a9c5c]
xor ecx, 0x22a2f08
and ecx, 0xa2ffe25e
add ecx, 0x2a53634c
cmp ecx, 0x50aa93ba
je 0x18049df52
mov ecx, dword [0x1807a9c60]
imul ecx, dword [0x1807a9c64]
sub ecx, 0x6a78bb1d
or ecx, 0x2f84e2d4
add ecx, 0x76a474e7
cmp ecx, 0x84e69839
jbe 0x18049df52
test al, 1
jne 0x18049db68
jmp 0x18049dbd2
mov eax, dword [0x1807a9c68]
xor edx, edx
div dword [0x1807a9c6c]
and eax, 0x97fb7513
xor eax, 0xb816ec38
add eax, 0x4e7bf3e9
cmp eax, 0x6254ac26
ja 0x18049df63
mov eax, dword [0x1807a9c70]
imul eax, dword [0x1807a9c74]
imul eax, eax, 0xde5be905
and eax, 0xc9bb10f8
mov ecx, 0x5105c777
xor edx, edx
div ecx
mov esi, eax
mov ecx, 0x80
mov edx, 0x400
call fcn.18063bc30
cmp esi, 0x429bef59
jae 0x18049df63
jmp 0x18049dbd0
ud2
mov r15, r12
add r15, 0x1b8
mov qword [rdi], 0xcc
mov qword [rdi + 8], 0
lea rax, [0x1806c41c0]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0
mov qword [rdi + 0x20], r12
mov qword [rdi + 0x28], rbx
mov rcx, rdi
add rcx, 0x30
mov rdx, rsi
mov r8d, 0x390
call fcn.1806a7400
mov rcx, rdi
add rcx, 0x3c0
xor edx, edx
mov r8d, 0x18
call fcn.1806a7aa0
mov rcx, r15
mov rdx, rdi
mov r8, rdi
call fcn.180499460
mov rsi, rax
cmp rsi, 0
sete al
test al, 1
je 0x18049dc57
jmp 0x18049df16
ud2
mov eax, dword [0x1807a9c78]
or eax, dword [0x1807a9c7c]
xor eax, 0xf895cc0e
imul eax, eax, 0x90fc2ebc
mov ecx, 0xc7aaf2dd
xor edx, edx
div ecx
cmp eax, 0x2eff1a95
jae 0x18049df83
jmp 0x18049dc84
mov eax, dword [0x1807a9c80]
imul eax, dword [0x1807a9c84]
add eax, 0xe7429538
xor eax, 0xa2a309a2
imul ebx, eax, 0x2612bce5
mov rcx, r14
mov rdx, rsi
call fcn.180643620
cmp ebx, 0xfaafadc6
ja 0x18049dc84
jmp 0x18049dcb6
jmp 0x18049df16
mov r12, qword [r14 + 8]
mov eax, 1
lock xadd qword [r12], rax
cmp rax, 0
jl 0x18049dcff
mov al, byte [0x1807afe04]
mov ecx, 0x400
mov edx, 0x80
call fcn.1804caf90
mov rdi, rax
cmp rdi, 0
jne 0x18049dd52
mov ecx, 0x80
mov edx, 0x400
call fcn.18063bc30
ud2
mov eax, dword [0x1807a9c88]
imul eax, dword [0x1807a9c8c]
or eax, 0xfd52e49b
and eax, 0xa33bd6e9
and eax, 0x5c74c8e3
cmp eax, 0xd21a2316
ja 0x18049df9b
jmp 0x18049dd28
mov eax, dword [0x1807a9c90]
xor edx, edx
div dword [0x1807a9c94]
or eax, 0xc0bbbb88
and eax, 0x632b4146
or eax, 0xf51b8ead
ud2
mov r15, r12
add r15, 0x80
mov r14, r12
add r14, 0x10
mov qword [rdi], 0xcc
mov qword [rdi + 8], 0
lea rax, [0x1806c42b0]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0
mov qword [rdi + 0x20], r12
mov rax, rdi
add rax, 0x28
mov qword [rax], rbx
mov rcx, rdi
add rcx, 0x30
mov rdx, rsi
mov r8d, 0x390
call fcn.1806a7400
mov rcx, rdi
add rcx, 0x3c0
xor edx, edx
mov r8d, 0x18
call fcn.1806a7aa0
mov rcx, r15
mov rdx, rdi
mov r8, rdi
call fcn.180499460
mov rcx, r14
mov rdx, rax
call fcn.180641500
jmp 0x18049df16
add r14, 8
mov r12, qword [r14]
mov r14, r12
add r14, 0x10
mov eax, 1
lock xadd qword [r12], rax
cmp rax, 0
jl 0x18049df02
mov al, byte [0x1807afe04]
mov ecx, 0x400
mov edx, 0x80
call fcn.1804caf90
mov rdi, rax
cmp rdi, 0
sete al
test al, 1
jne 0x18049de25
jmp 0x18049de36
mov ecx, 0x80
mov edx, 0x400
call fcn.18063bc30
ud2
mov eax, dword [0x1807a9c98]
sub eax, dword [0x1807a9c9c]
imul eax, eax, 0x8e9adfea
sub eax, 0x982cedd1
and eax, 0xb74e7a00
cmp eax, 0x6a73b766
jb 0x18049dfaa
jmp 0x18049de5f
mov eax, dword [0x1807a9ca0]
sub eax, dword [0x1807a9ca4]
xor eax, 0x61fc5d0c
imul ecx, eax, 0xb205096f
sub ecx, 0xd94eb346
mov r15, r12
add r15, 0xd0
mov qword [rdi], 0xcc
mov qword [rdi + 8], 0
lea rax, [0x1806c4170]
mov qword [rdi + 0x10], rax
mov rax, rdi
add rax, 0x18
cmp ecx, 0xd2038389
ja 0x18049de5f
jmp 0x18049deb1
mov qword [rax], 0
mov qword [rdi + 0x20], r12
mov qword [rdi + 0x28], rbx
mov rcx, rdi
add rcx, 0x30
mov rdx, rsi
mov r8d, 0x390
call fcn.1806a7400
mov rcx, rdi
add rcx, 0x3c0
xor edx, edx
mov r8d, 0x18
call fcn.1806a7aa0
mov rcx, r15
mov rdx, rdi
mov r8, rdi
call fcn.180499460
cmp rax, 0
jne 0x18049df06
jmp 0x18049df16
ud2
mov rcx, r14
mov rdx, rax
xor r8d, r8d
call fcn.180655f40
jmp 0x18049df16
mov rax, rdi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
out dx, al
sbb eax, 0xd697bf7
mov bl, 0xe9
lahf
cli
invalid
sub ecx, dword [rax]
add edx, esi
ret
adc ch, ch
adc byte [rdx - 0x60a37ed0], dh
out 0xae, al
outsd dx, dword [rsi]
jmp 0x18049dabd
ret 0xfd82
push 0xffffffffffffff87
cmp al, 0x54
mov edx, 0x322600c2
mov ebp, 0x80b9ec
add byte [rax], al
mov edx, 0x400
call fcn.18063bc30
jmp 0x18049db90
sub dword [rdi], ebp
jle 0x18049dfd0
pop rax
invalid
and al, 0x16
cmp eax, ebp
fnstsw word [rcx + 0xb0f9ec9]
jmp 0x18049dd26
cmp eax, 0x18293b36
cld
mov edx, 0x7c74867
int3
dec esp
int3