Function at 0x180385640
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov eax, dword [0x18078d2b0]
xor edx, edx
div dword [0x18078d2b4]
add eax, 0x9aeae96b
add eax, 0x5f74599d
imul eax, eax, 0xd6e86308
cmp eax, 0x7678529e
jae 0x180385e3d
jmp 0x180385679
mov eax, dword [0x18078d2b8]
xor eax, dword [0x18078d2bc]
imul eax, eax, 0x3fbae002
and eax, 0xe7c0cbc7
or eax, 0x1d03aebf
mov r8, qword [rsi + 0x48]
cmp eax, 0xf6f591bf
je 0x180385679
jmp 0x1803856a2
cmp r8, 0
sete al
test al, 1
jne 0x180385719
jmp 0x1803856af
mov r9, rsi
add r9, 0x50
mov eax, dword [0x18078d2c0]
imul eax, dword [0x18078d2c4]
sub eax, 0x44245c7
mov ecx, 0xd38500b3
xor edx, edx
div ecx
and eax, 0x79031b96
cmp eax, 0xd9bc1d04
jae 0x180385e4a
jmp 0x1803856e3
mov eax, dword [0x18078d2c8]
sub eax, dword [0x18078d2cc]
imul eax, eax, 0x5b39ba6e
sub eax, 0x84cd849
and eax, 0x4dedb920
mov rcx, qword [r9]
cmp eax, 0x3b81dac2
jb 0x1803856e3
jmp 0x18038570b
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x18078d2d0]
sub eax, dword [str.3_u2]
xor eax, 0x7c4be0dc
add eax, 0xe57cffca
add eax, 0xa6e964b0
cmp eax, 0xed8e68c3
ja 0x180385e5b
jmp 0x180385741
mov eax, dword [0x18078d2d8]
xor edx, edx
div dword [0x18078d2dc]
sub eax, 0x489bd0c7
imul eax, eax, 0x9c2dd7f1
and eax, 0x9da57a2
mov rbx, qword [rsi + 0x60]
cmp eax, 0x29fbde5
je 0x180385741
jmp 0x18038576c
mov eax, dword [0x18078d2e0]
add eax, dword [0x18078d2e4]
add eax, 0x3be0ee83
sub eax, 0x3abf5fb
mov ecx, 0xb6d9d46e
xor edx, edx
div ecx
cmp eax, 0x34f610d5
ja 0x180385e6c
jmp 0x180385798
mov eax, dword [0x18078d2e8]
sub eax, dword [0x18078d2ec]
or eax, 0xca4bb396
add eax, 0x45038028
xor eax, 0x1f056f5c
movabs rcx, 0x8000000000000000
cmp rbx, rcx
sete cl
cmp eax, 0x73b775a6
ja 0x180385798
jmp 0x1803857cc
mov eax, dword [0x18078d2f0]
xor edx, edx
div dword [0x18078d2f4]
imul eax, eax, 0xb9a00153
add eax, 0x5f7028cb
and eax, 0x5c9cbc39
cmp eax, 0x5e6f3095
je 0x180385e7d
mov eax, dword [0x18078d2f8]
xor edx, edx
div dword [0x18078d2fc]
imul eax, eax, 0xb8d4ba80
xor eax, 0xc1015675
or eax, 0x5238a43e
cmp eax, 0x6c0dc5ae
jbe 0x180385e7d
test cl, 1
jne 0x1803859b4
jmp 0x180385829
mov rdi, qword [rsi + 0x68]
mov r14, qword [rsi + 0x70]
cmp r14, 0
je 0x180385938
xor ecx, ecx
jmp 0x18038583f
mov eax, dword [0x18078d300]
sub eax, dword [0x18078d304]
imul eax, eax, 0xd1614047
or eax, 0x94d2bdcc
and eax, 0xefbfc844
cmp eax, 0x11a697ce
je 0x180385e8e
mov eax, dword [0x18078d308]
sub eax, dword [0x18078d30c]
mov r8d, 0x5e9a2022
xor edx, edx
div r8d
or eax, 0xd874d96c
imul edx, eax, 0x24e032b5
imul rax, rcx, 0x18
mov r9, rdi
add r9, rax
mov r15, rcx
add r15, 1
mov r8, qword [r9]
cmp r8, 0
sete al
cmp edx, 0xe3b9a6e2
ja 0x180385e8e
test al, 1
jne 0x180385924
jmp 0x1803858b5
mov eax, dword [0x18078d310]
imul eax, dword [0x18078d314]
sub eax, 0xe052ef89
imul eax, eax, 0xd76f00aa
mov ecx, 0x14362877
xor edx, edx
div ecx
cmp eax, 0x66de3080
je 0x180385e9f
mov eax, dword [0x18078d318]
xor eax, dword [0x18078d31c]
imul eax, eax, 0xe1c85f8b
add eax, 0x10e97482
imul ecx, eax, 0xbdf74df
mov rax, r9
add rax, 8
cmp ecx, 0xd0d24f97
jae 0x180385e9f
jmp 0x180385913
mov rcx, qword [rax]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
cmp r15, r14
sete al
test al, 1
mov rcx, r15
jne 0x180385936
jmp 0x18038583f
jmp 0x180385938
cmp rbx, 0
sete cl
mov eax, dword [0x18078d320]
xor eax, dword [0x18078d324]
mov r8d, 0xb4c1d388
xor edx, edx
div r8d
add eax, 0xae227837
sub eax, 0xd53805d5
cmp eax, 0x487fe1dc
je 0x180385eac
mov eax, dword [0x18078d328]
xor edx, edx
div dword [0x18078d32c]
sub eax, 0x4235d447
mov r8d, 0xf310e144
xor edx, edx
div r8d
or eax, 0xef7b01b0
cmp eax, 0x374d58ad
jb 0x180385eac
test cl, 1
jne 0x1803859b4
jmp 0x1803859a0
imul rdx, rbx, 0x18
mov rcx, rdi
mov r8d, 8
call fcn.1804cafa0
jmp 0x1803859b4
mov eax, dword [0x18078d330]
add eax, dword [0x18078d334]
and eax, 0xac476308
or eax, 0xcfb79bb3
xor eax, 0x7c4e2abf
cmp eax, 0x7bdfa277
jb 0x180385ebd
mov eax, dword [0x18078d338]
or eax, dword [0x18078d33c]
imul eax, eax, 0xa7874f54
xor eax, 0x3d3e1b94
and eax, 0xc506d07c
mov rcx, rsi
add rcx, 0x78
cmp eax, 0x494b46e9
jae 0x180385ebd
jmp 0x180385a0a
call fcn.1803879c0
mov rcx, rsi
add rcx, 0xa0
mov eax, dword [0x18078d340]
sub eax, dword [0x18078d344]
xor eax, 0xd0fa2eb8
or eax, 0xd37b9a75
xor eax, 0x1f61a32e
cmp eax, 0xf6ab9975
ja 0x180385ece
jmp 0x180385a41
mov edx, dword [0x18078d348]
sub edx, dword [0x18078d34c]
and edx, 0xecd7643f
xor edx, 0x376d8160
sub edx, 0x1f1192b
mov rax, qword [rcx]
lock dec qword [rax]
sete al
cmp edx, 0x82f20a42
je 0x180385a41
test al, 1
jne 0x180385a77
jmp 0x180385ad4
mov eax, dword [0x18078d350]
add eax, dword [0x18078d354]
mov r8d, 0x870c7481
xor edx, edx
div r8d
mov r8d, 0xe21935b7
xor edx, edx
div r8d
imul eax, eax, 0xd7ffaf87
cmp eax, 0x7c183db3
jae 0x180385ee5
jmp 0x180385aac
mov eax, dword [0x18078d358]
mov edx, dword [0x18078d35c]
or eax, edx
or eax, 0x67fffef3
and eax, 0xfffffeff
cmp eax, 0x1242f78a
je 0x180385aac
jmp 0x180385acd
call fcn.1804b7f00
jmp 0x180385ad4
mov rdi, rsi
add rdi, 0xa8
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
jne 0x180385af1
jmp 0x180385b9c
mov eax, dword [0x18078d360]
add eax, dword [0x18078d364]
add eax, 0x9ce579ba
or eax, 0x633d66b7
add eax, 0xea020f69
cmp eax, 0x431ca175
jb 0x180385ef2
jmp 0x180385b19
mov eax, dword [0x18078d368]
xor eax, dword [0x18078d36c]
xor eax, 0x39cc6ad5
or eax, 0x5f7b79b4
mov ecx, 0x136b10bb
xor edx, edx
div ecx
mov ebx, eax
mov rcx, rdi
call fcn.1804b7f00
cmp ebx, 0xec596414
je 0x180385b19
jmp 0x180385b4c
mov eax, dword [0x18078d370]
add eax, dword [0x18078d374]
and eax, 0xa4462e68
xor eax, 0xb5a95760
imul eax, eax, 0x853eab65
cmp eax, 0xa341b680
jb 0x180385f0b
mov eax, dword [0x18078d378]
sub eax, dword [0x18078d37c]
and eax, 0x6c4ec894
or eax, 0xacc9b658
imul eax, eax, 0x97c304a6
cmp eax, 0xa8f781c4
jbe 0x180385f0b
jmp 0x180385b9c
mov rax, rsi
add rax, 0xb0
mov r8, qword [rax]
mov eax, dword [0x18078d380]
or eax, dword [0x18078d384]
add eax, 0x98f5f211
sub eax, 0xc52a032
imul eax, eax, 0xb3ab1199
cmp eax, 0x3d08aca9
je 0x180385f1c
jmp 0x180385bd1
mov eax, dword [0x18078d388]
xor eax, dword [0x18078d38c]
xor eax, 0x34ffb37b
add eax, 0xc3015aae
mov ecx, 0x8bbc3e8a
xor edx, edx
div ecx
movabs rcx, 0x8000000000000001
mov rdx, r8
add rdx, rcx
movabs r9, 0x8000000000000002
xor ecx, ecx
cmp r8, r9
cmovl rcx, rdx
cmp eax, 0x6c9aad72
je 0x180385bd1
test rcx, rcx
je 0x180385c30
jmp 0x180385c21
sub rcx, 1
je 0x180385d6b
jmp 0x180385de3
mov eax, dword [0x18078d390]
or eax, dword [0x18078d394]
xor eax, 0x7bf55f31
add eax, 0xce0540ba
imul eax, eax, 0x19b865fd
cmp eax, 0x39848d95
je 0x180385f2d
mov eax, dword [0x18078d398]
imul eax, dword [0x18078d39c]
and eax, 0x1c019ea
sub eax, 0x89b10fb8
imul eax, eax, 0xa2db6507
cmp eax, 0xe77e005b
ja 0x180385f2d
jmp 0x180385c81
mov eax, dword [0x18078d3a0]
add eax, dword [0x18078d3a4]
and eax, 0x680abbdc
mov ecx, 0xe908cf5e
xor edx, edx
div ecx
and eax, 0xfaae32b6
cmp eax, 0x45186240
jae 0x180385f3a
jmp 0x180385cad
mov eax, dword [0x18078d3a8]
add eax, dword [0x18078d3ac]
add eax, 0xe1a6f7f2
xor eax, 0x30bbc79b
mov ecx, 0x9b7e04ae
xor edx, edx
div ecx
cmp r8, 0
sete cl
cmp eax, 0xf171e4f6
je 0x180385cad
jmp 0x180385cdc
mov eax, 0xd0
mov edx, 0x1000
test cl, 1
jne 0x180385dd4
jmp 0x180385cf1
mov eax, dword [0x18078d3b0]
or eax, dword [0x18078d3b4]
add eax, 0x44f6e369
add eax, 0x95cb7329
mov ecx, 0xfbf4f3e
xor edx, edx
div ecx
cmp eax, 0xd4bd81
ja 0x180385f47
jmp 0x180385d1d
mov ecx, dword [0x18078d3b8]
or ecx, dword [0x18078d3bc]
sub ecx, 0x9d27554b
sub ecx, 0xeded2b8
add ecx, 0x75ad5e65
mov rax, rsi
add rax, 0xb8
cmp ecx, 0x81ff7e32
jb 0x180385d1d
jmp 0x180385d4e
mov rcx, qword [rax]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov eax, 0xd0
mov edx, 0x1000
jmp 0x180385dd4
mov eax, dword [0x18078d3c0]
sub eax, dword [0x18078d3c4]
xor eax, 0x5f2028da
add eax, 0x22e7ef40
sub eax, 0x595edbf2
cmp eax, 0xedaf871e
ja 0x180385f58
mov ecx, dword [0x18078d3c8]
add ecx, dword [0x18078d3cc]
and ecx, 0x74635f2f
add ecx, 0x95e756a9
sub ecx, 0x91abe370
mov rax, rsi
add rax, 0xb8
cmp ecx, 0x9f08340f
je 0x180385f58
jmp 0x180385dc6
mov rdx, qword [rax]
mov eax, 0xc0
cmp rdx, 0
je 0x180385de3
mov rcx, qword [rsi + rax]
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x18078d3d0]
and eax, dword [0x18078d3d4]
and eax, 0xfebd87bb
add eax, 0x7058d030
sub eax, 0x2f05b7f2
cmp eax, 0x7e2b6480
jae 0x180385f65
jmp 0x180385e0b
mov eax, dword [0x18078d3d8]
and eax, dword [0x18078d3dc]
and eax, 0xd8724cd6
sub eax, 0x26096cbd
mov ecx, 0x4b6b2ce1
xor edx, edx
div ecx
cmp eax, 0xa3e40a7e
je 0x180385e0b
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov word [rsi + rcx*4 + 0x3e70eba2], cs
jmp 0x180385677
or byte [rdx + 0x79], ch
int1
loop 0x180385e6f
adc eax, 0xd79c8b52
cmp ch, cl
xchg al, bh
invalid
cmp ebx, dword [rdi]
and byte [rax - 0xc9a3b29], dh
jnp 0x180385eb6
invalid
invalid
xor byte [rdx + rax*2], bl
test eax, 0x91ddc0be
jmp 0x180385796
invalid
jg 0x180385ed6
jmp 0x180385eca
mov esi, ecx
pushfq
invalid
push rsp
mov bh, 0xb0
scasd eax, dword [rdi]
lodsb al, byte [rsi]
adc ebp, edx
pop r12
invalid
xchg esp, eax
movabs dword [0xbea38014633eb93a], eax
and r9d, ebp
or al, 0xfb
invalid
lodsq rax, qword [rsi]
fsub dword [rdx - 0x43f2914b]
mov rax, qword [rcx]
lock dec qword [rax]
sete al
jmp 0x180385a3f
mov ah, 0xf1
xor word [rbx], dx
insb byte [rdi], dx
mov ah, 0xe9
mov eax, 0xe0fffffb
invalid
loopne 0x180385f54
jrcxz 0x180385f68
or esp, dword [rax + 0xf]
pushfq
outsb dx, byte [rsi]
and eax, 0x8948049c
stc
call fcn.1804b7f00
jmp 0x180385b17
adc eax, 0x200b73e4
push rbp
invalid
invalid
mov ah, 0x8e
mov word [rdx - 0x1ac7c7e5], ds
jmp 0x180385c57
add byte [rdx + 0x70], bl
jp 0x180385f2d
cmpsb byte [rsi], byte [rdi]
in eax, 0x4a
jmp 0x180385cab
push rbx
call 0x1398b22f3
invalid
ret
push rsi
and al, 0x2f
stosq qword [rdi], rax
imul edi, dword [rbp - 0x1d3163b], 0x6c41ffff
insb byte [rdi], dx
invalid
pop rdi
mov dword [rsp + rbx], edx
invalid