Function at 0x180499460
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, r8
mov rdi, rdx
mov r15, rcx
mov rax, qword [r15 + 0x28]
mov qword [rdi + 0x18], rax
mov r12, rdi
add r12, 0x10
mov rax, qword [rdi + 0x10]
mov rax, qword [rax + 0x48]
mov r13, qword [rdi + rax]
mov rcx, qword [r15]
mov rax, qword [r15 + 0x20]
and rax, r13
lea rdx, [rax + rax*2]
lea rbx, [rcx + rdx*8]
mov r8b, 1
xor eax, eax
lock cmpxchg byte [rcx + rdx*8], r8b
sete cl
mov eax, dword [0x1807a94e0]
xor eax, dword [0x1807a94e4]
sub eax, 0x543f53a5
mov r8d, 0xdbbf8afb
xor edx, edx
div r8d
imul eax, eax, 0x416f0917
cmp eax, 0xcd087390
je 0x1804999f2
mov eax, dword [0x1807a94e8]
or eax, dword [0x1807a94ec]
and eax, 0xd3a5065d
imul eax, eax, 0xf841e9d4
imul eax, eax, 0x2e848b1e
cmp eax, 0xf3464fc6
jbe 0x1804999f2
test cl, 1
jne 0x180499578
jmp 0x180499510
mov eax, dword [0x1807a94f0]
sub eax, dword [0x1807a94f4]
sub eax, 0xdf407c04
mov ecx, 0xbf22b6c7
xor edx, edx
div ecx
mov ecx, 0xcdf76aa1
xor edx, edx
div ecx
cmp eax, 0x2432cde6
jae 0x180499a03
jmp 0x180499540
mov eax, dword [0x1807a94f8]
xor eax, dword [0x1807a94fc]
imul ebp, eax, 0x48b4d024
or ebp, 0xfb64e184
or ebp, 0x6eb22989
mov rcx, rbx
mov r8d, 0x3b9aca00
call fcn.1806b09e0
cmp ebp, 0x1e4ad2ad
jbe 0x180499540
jmp 0x180499576
jmp 0x180499578
mov eax, dword [0x1807a9500]
or eax, dword [0x1807a9504]
or eax, 0xf8dcb23
add eax, 0x11df92fc
imul eax, eax, 0xd7331b61
cmp eax, 0x3b0e67e0
jbe 0x180499a1e
mov eax, dword [0x1807a9508]
xor eax, dword [0x1807a950c]
sub eax, 0x5d3c3ee2
add eax, 0x721e148e
and eax, 0x5fe47d67
mov rcx, r15
add rcx, 0x10
cmp eax, 0xbeaa8f4f
je 0x180499a1e
jmp 0x1804995ce
mov r14, r15
add r14, 0x18
cmp byte [r15 + 0x30], 0
jne 0x180499852
mov r8, qword [r12]
mov rax, r8
add rax, 0x48
mov rax, qword [rax]
cmp qword [rdi + rax], r13
je 0x1804995f8
ud2
mov eax, dword [0x1807a9510]
add eax, dword [0x1807a9514]
xor eax, 0x4a80f860
sub eax, 0x6085928c
xor eax, 0xfd5494de
cmp eax, 0xfc39acf6
je 0x180499a2b
mov eax, dword [0x1807a9518]
xor eax, dword [0x1807a951c]
xor eax, 0x6a67b219
xor eax, 0xdf198442
and eax, 0x7d5f9ff6
mov r9, rbx
add r9, 8
mov r10, qword [rbx + 8]
cmp r10, 0
setne r11b
cmp eax, 0xa7cdc632
je 0x180499a2b
jmp 0x180499659
mov eax, dword [0x1807a9520]
xor edx, edx
div dword [0x1807a9524]
sub eax, 0x160832a7
xor eax, 0x3ac5e990
add eax, 0x17ece32d
cmp eax, 0x2c6dbeb7
jb 0x180499a38
mov eax, dword [0x1807a9528]
and eax, dword [0x1807a952c]
xor eax, 0xd65cb820
or eax, 0xcf00f212
imul edx, eax, 0x922b3b9d
cmp r10, rdi
sete bpl
mov al, r11b
and al, bpl
cmp edx, 0x5c5b9fa
jbe 0x180499a38
jmp 0x1804996b8
test al, 1
jne 0x1804996ed
jmp 0x1804996be
mov rax, rdi
add rax, qword [r8 + 0x38]
add rax, 8
mov qword [rax], r10
mov rdx, qword [r12]
mov rax, rdi
add rax, qword [rdx + 0x38]
mov qword [rax], 0
cmp r10, 0
je 0x1804997a0
jmp 0x180499791
mov eax, dword [0x1807a9530]
add eax, dword [0x1807a9534]
mov ecx, 0xf4b24d33
xor edx, edx
div ecx
imul eax, eax, 0x309a148a
sub eax, 0xe1656e2
cmp eax, 0x811be685
je 0x180499a45
jmp 0x18049971a
mov eax, dword [0x1807a9538]
xor eax, dword [0x1807a953c]
sub eax, 0xc0441996
mov ecx, 0xfc0fba08
xor edx, edx
div ecx
sub eax, 0x6ebb7edf
ud2
mov rax, qword [r10 + 0x10]
add rax, 0x38
mov rax, qword [rax]
mov qword [r10 + rax], rdi
mov qword [r9], rdi
mov r8, rbx
add r8, 0x10
mov r9, qword [r8]
mov eax, dword [0x1807a9550]
xor eax, dword [0x1807a9554]
add eax, 0xdceed0b1
or eax, 0xebcba3f8
imul eax, eax, 0x4e08f32e
cmp eax, 0xd45e7136
jae 0x180499a69
mov eax, dword [0x1807a9558]
xor eax, dword [0x1807a955c]
or eax, 0x4666a379
imul eax, eax, 0xc5b313c0
mov r10d, 0x9f53deaf
xor edx, edx
div r10d
cmp r9, 0
sete dl
cmp eax, 0xfd6dfa03
je 0x180499a69
test dl, 1
jne 0x18049980f
jmp 0x180499814
mov qword [r8], rdi
jmp 0x180499814
mov edx, 1
xor r8d, r8d
call fcn.18063ed90
mov rcx, r14
call fcn.18063d7a0
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rbx], cl
sete al
test al, 1
je 0x180499840
mov rcx, rsi
jmp 0x18049998c
mov rcx, rbx
xor edx, edx
call fcn.1806b1030
mov rcx, rsi
jmp 0x18049998c
mov eax, dword [0x1807a9560]
or eax, dword [0x1807a9564]
sub eax, 0x12a61b89
imul eax, eax, 0x46e5115f
and eax, 0xb9a76c2f
cmp eax, 0x9702f9b9
je 0x180499a76
mov eax, dword [0x1807a9568]
mov ecx, dword [0x1807a956c]
add eax, ecx
imul ecx, eax, 0x26209bbe
xor ecx, 0x28510002
or ecx, 0xd5a4dff9
xor edx, edx
mov al, 1
lock cmpxchg byte [rbx], dl
sete al
cmp ecx, 0x5af11b69
jb 0x180499a76
jmp 0x1804998b2
test al, 1
jne 0x1804998c4
jmp 0x1804998b8
mov rcx, rbx
xor edx, edx
call fcn.1806b1030
jmp 0x1804998c4
mov eax, dword [0x1807a9570]
xor eax, dword [0x1807a9574]
xor eax, 0xc5a7e74
xor eax, 0x84c79d08
add eax, 0xc5ee6031
cmp eax, 0xf456e3f4
ja 0x180499a8b
jmp 0x1804998ec
mov eax, dword [0x1807a9578]
and eax, dword [0x1807a957c]
sub eax, 0xd41aa02e
mov ecx, 0xcef5b623
xor edx, edx
div ecx
mov ebx, eax
add ebx, 0x247a6406
mov rcx, rdi
call fcn.18063bbf0
cmp ebx, 0x4a0d7763
jae 0x1804998ec
jmp 0x180499920
mov rcx, rsi
call fcn.18063b3a0
xor ecx, ecx
test al, 1
jne 0x180499930
jmp 0x18049998c
mov eax, dword [0x1807a9580]
or eax, dword [0x1807a9584]
add eax, 0x9dd9266
and eax, 0x17f9c91e
sub eax, 0x181d3a51
cmp eax, 0x5f2afdac
jbe 0x180499aa4
jmp 0x180499958
mov edi, dword [0x1807a9588]
or edi, dword [0x1807a958c]
xor edi, 0xcbb54a3b
and edi, 0xec8d29f
or edi, 0x54c5b162
mov rcx, rsi
call fcn.18063bbc0
cmp edi, 0xd61b8139
ja 0x180499958
jmp 0x180499988
xor ecx, ecx
jmp 0x18049998c
mov eax, dword [0x1807a9590]
and eax, dword [0x1807a9594]
and eax, 0xfe4436d7
sub eax, 0x82e5755a
xor eax, 0x36591ed5
cmp eax, 0xde10ce2
jb 0x180499abd
mov eax, dword [0x1807a9598]
xor eax, dword [0x1807a959c]
mov r8d, 0x8bcee4e6
xor edx, edx
div r8d
xor eax, 0xc061b5ec
or eax, 0xe939ce39
cmp eax, 0x1ef9a2bd
jb 0x180499abd
mov rax, rcx
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
invalid
imul ebx, dword [rcx + rcx*8 - 0x19], 0xffffffd3
invalid
invalid
pop rdi
push rdi
rcl byte [rdx + 0xcfdfd66], 0xe9
out 0xfb, al
invalid
xor ecx, esi
and eax, 0xe4854d07
jmp 0x180499681
mov al, cl
invalid
pop rsp
invalid
cmpsd dword [rsi], dword [rdi]
std
stosd dword [rdi], eax
or al, 0x22
invalid
or dword [rsp + rax - 0x4a], esp
stc
mov cl, 0xf
mov dword [rax], ecx
invalid
mov dl, byte [rdi - 0x66]
outsd dx, dword [rsi]
or bl, dh
scasd eax, dword [rdi]
mov bl, 0xb2
int1
pushfq
xor byte [rax - 0x77], cl
int1
call fcn.18063bbc0
jmp 0x180499956
add al, 0x5f
jo 0x180499ad7
add byte [rbx], dh
jmp 0x1804999b2