Function at 0x180358600
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov rsi, rdx
mov eax, dword [0x180788e90]
add eax, dword [0x180788e94]
imul eax, eax, 0x64206fd9
or eax, 0x193ef63
and eax, 0x638bf650
cmp eax, 0xb12e946
jbe 0x180358f25
jmp 0x180358641
mov edx, dword [0x180788e98]
mov eax, dword [0x180788e9c]
imul edx, eax
xor edx, 0x682150
and edx, 0x8379b3f9
add edx, 0xdab67a9a
mov eax, 0x30
call fcn.180698e80
sub rsp, rax
mov r15, rsp
mov eax, 0x30
call fcn.180698e80
sub rsp, rax
mov r14, rsp
mov r12, rsi
add r12, 0x108
cmp edx, 0x684518c6
jb 0x180358641
jmp 0x180358696
mov eax, dword [str.v__ro]
xor eax, dword [0x180788ea4]
or eax, 0xbefa1bf0
imul eax, eax, 0xb5578efe
xor eax, 0x22cd6993
cmp eax, 0xd42a8b24
ja 0x180358f32
mov eax, dword [0x180788ea8]
sub eax, dword [0x180788eac]
add eax, 0x2b1e9f15
sub eax, 0x97d1ed3b
xor eax, 0xa6d13b3e
movzx r10d, byte [r12]
cmp eax, 0x47dfd302
jb 0x180358f32
jmp 0x1803586ea
mov eax, dword [0x180788eb0]
xor edx, edx
div dword [0x180788eb4]
mov r9d, 0x1ad20220
xor edx, edx
div r9d
mov r9d, 0x9d8bfa92
xor edx, edx
div r9d
and eax, 0x43e762f0
cmp eax, 0x5afab886
jae 0x180358f43
jmp 0x180358720
mov eax, dword [0x180788eb8]
or eax, dword [0x180788ebc]
mov r9d, 0x98f5c164
xor edx, edx
div r9d
sub eax, 0x6c1975
and eax, 0x999c943a
cmp eax, 0x67af57be
jb 0x180358720
test r10d, r10d
je 0x180358760
jmp 0x18035874f
sub r10d, 1
je 0x180358d98
jmp 0x18035875b
jmp 0x18035881b
mov rbx, rcx
mov rdi, r8
mov r13, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rbp - 0x28], rax
sub rsp, 0x20
mov rcx, r15
mov edx, 0x2000
call fcn.18063d7b0
mov rcx, r14
mov edx, 0x2000
call fcn.18063d7b0
add rsp, 0x20
mov rax, rsi
add rax, 0x90
mov qword [rbp - 0x18], rdi
mov qword [rbp - 8], r12
mov qword [rbp - 0x10], rbx
mov qword [rax], r13
mov rax, rsi
add rax, 0x98
mov rbx, qword [rbp - 0x28]
mov qword [rax], rbx
mov rcx, rsi
add rcx, 0xa0
sub rsp, 0x20
mov rdx, r15
mov r8d, 0x30
call fcn.1806a7400
add rsp, 0x20
mov rcx, rsi
add rcx, 0xd0
sub rsp, 0x20
mov rdx, r14
mov r8d, 0x30
call fcn.1806a7400
add rsp, 0x20
mov rax, rsi
add rax, 0x100
mov qword [rbp], rax
mov byte [rsi + 0x100], 0
mov rdi, rsi
add rdi, 0x10
jmp 0x1803589e1
mov eax, dword [0x180788ec0]
imul eax, dword [0x180788ec4]
xor eax, 0xea14a380
mov r9d, 0x45ffe52b
xor edx, edx
div r9d
or eax, 0x15dbc195
cmp eax, 0x658960bb
je 0x180358f50
mov r9d, dword [0x180788ec8]
imul r9d, dword [0x180788ecc]
and r9d, 0x8cbeaf20
add r9d, 0xb348591d
sub r9d, 0x7213c52c
mov rdx, rsi
add rdx, 0x100
mov al, byte [rsi + 0x100]
cmp r9d, 0x1666d74a
jb 0x180358f50
mov r9, rcx
mov qword [rbp - 0x18], r8
jmp 0x180358892
mov rdi, rsi
add rdi, 0x10
test al, al
je 0x180358917
jmp 0x18035889f
mov cl, al
sub cl, 1
je 0x180358b48
jmp 0x1803588ac
sub al, 3
jne 0x18035898d
jmp 0x1803588b6
mov eax, dword [0x180788ed0]
or eax, dword [0x180788ed4]
or eax, 0xdf6a8d0
or eax, 0x209a6a84
and eax, 0xe46592cb
cmp eax, 0xd5aecb32
je 0x180358f61
jmp 0x1803588de
mov eax, dword [0x180788ed8]
xor eax, dword [0x180788edc]
imul eax, eax, 0x4641fde5
or eax, 0x27a61b03
add eax, 0xe43dd0fe
mov r15, qword [rdi]
cmp eax, 0x9505489
je 0x1803588de
mov qword [rbp], rdx
mov qword [rbp - 8], r12
mov qword [rbp - 0x10], r9
jmp 0x180358912
jmp 0x180358a41
mov rax, rsi
add rax, 0x90
mov ecx, dword [0x180788ee0]
imul ecx, dword [0x180788ee4]
or ecx, 0x856d7de9
and ecx, 0xd45b6b02
or ecx, 0x2176c655
cmp ecx, 0xb8364bc6
je 0x180358f6e
mov qword [rbp], rdx
mov qword [rbp - 8], r12
jmp 0x180358955
mov ecx, dword [0x180788ee8]
or ecx, dword [0x180788eec]
sub ecx, 0xe036cb77
sub ecx, 0xa0db5fb9
add ecx, 0x57b78fbf
mov r13, qword [rax]
cmp ecx, 0xf6498ec8
ja 0x180358955
mov qword [rbp - 0x10], r9
jmp 0x180358984
mov rbx, qword [rsi + 0x98]
jmp 0x1803589e1
mov eax, dword [0x180788ef0]
xor edx, edx
div dword [0x180788ef4]
add eax, 0xcb6c4405
add eax, 0x8db7caef
or eax, 0x20ea697e
cmp eax, 0x3802a5a3
jb 0x180358f7b
mov eax, dword [0x180788ef8]
add eax, dword [0x180788efc]
mov ecx, 0x303ccc82
xor edx, edx
div ecx
xor eax, 0x1b4d4eab
and eax, 0x9a5cd37
cmp eax, 0x2e75b4e5
jae 0x180358f7b
ud2
mov rdx, rsi
add rdx, 0xa0
mov r14, rsi
add r14, 0xd0
mov r15, rsi
add r15, 0x30
sub rsp, 0x20
mov rcx, r15
mov r8d, 0x30
call fcn.1806a7400
add rsp, 0x20
mov r12, rsi
add r12, 0x60
sub rsp, 0x20
mov rcx, r12
mov rdx, r14
mov r8d, 0x30
call fcn.1806a7400
add rsp, 0x20
mov qword [rdi], r15
mov qword [rsi + 0x18], r13
mov qword [rsi + 0x20], rbx
mov qword [rsi + 0x28], r12
mov qword [rbp - 0x20], rsi
mov eax, dword [str.XB7]
imul eax, dword [0x180788f04]
mov ecx, 0xcf647832
xor edx, edx
div ecx
or eax, 0x734a2c18
and eax, 0xf2d01e29
cmp eax, 0xef577037
je 0x180358f88
mov rsi, qword [rbp - 0x18]
jmp 0x180358a76
mov eax, dword [0x180788f08]
and eax, dword [0x180788f0c]
sub eax, 0x78bdafef
mov ecx, 0x7272da2b
xor edx, edx
div ecx
imul ebx, eax, 0x65b8f8a5
mov r12, qword [rdi + 8]
mov r13, qword [rdi + 0x10]
sub rsp, 0x20
mov rcx, rsi
mov rdx, r15
mov r8, r12
mov r9, r13
call fcn.180487570
add rsp, 0x20
mov r10, rdx
cmp rax, 2
sete r14b
cmp ebx, 0x7f3b3a5d
je 0x180358a76
mov r15d, 1
test rax, 0xfffffffffffffffd
je 0x180358ae6
mov rdi, qword [rbp - 0x10]
mov rbx, qword [rbp]
mov rsi, qword [rbp - 0x20]
jmp 0x180358b4c
mov rbx, r10
add rdi, 0x18
mov rdx, qword [rdi]
sub rsp, 0x20
mov rcx, rsi
mov r8, r13
mov r9, r12
call fcn.180487b70
add rsp, 0x20
mov r12, rdx
mov rdi, qword [rbp - 0x10]
mov r15d, 1
test rax, 0xfffffffffffffffd
mov rsi, qword [rbp - 0x20]
je 0x180358b28
mov r10, r12
mov rbx, qword [rbp]
jmp 0x180358b4c
cmp rax, 2
sete al
or r14b, al
mov r10, rbx
xor r15d, r15d
test r14b, 1
mov rbx, qword [rbp]
jne 0x180358ebd
jmp 0x180358b4c
ud2
mov eax, dword [0x180788f10]
and eax, dword [0x180788f14]
or eax, 0xaa783631
mov ecx, 0xa169198d
xor edx, edx
div ecx
mov ecx, 0x168f4cf8
xor edx, edx
div ecx
cmp eax, 0x30a8309d
ja 0x180358fb1
jmp 0x180358b7c
mov edx, dword [0x180788f18]
imul edx, dword [0x180788f1c]
add edx, 0xa318d58f
or edx, 0x3a644273
or edx, 0xd42b761d
mov rcx, rsi
add rcx, 0x60
cmp byte [rsi + 0x89], 2
setb al
cmp edx, 0x7adad418
jb 0x180358b7c
test al, 1
jne 0x180358bbd
jmp 0x180358c99
mov eax, dword [0x180788f20]
xor eax, dword [0x180788f24]
or eax, 0x6b69ed43
xor eax, 0x63c95501
xor eax, 0xa48ff43d
cmp eax, 0xedf63998
ja 0x180358fbe
jmp 0x180358be5
mov eax, dword [0x180788f28]
or eax, dword [0x180788f2c]
imul eax, eax, 0xa381ba34
and eax, 0xb6cac81f
imul eax, eax, 0x17c7d3ec
mov r8, rsi
add r8, 0x68
cmp eax, 0xa5477f72
jb 0x180358be5
jmp 0x180358c12
mov eax, dword [0x180788f30]
and eax, dword [0x180788f34]
xor eax, 0xca3e8ef5
add eax, 0xc0fdeaad
or eax, 0x9358477b
cmp eax, 0x5888d64d
jbe 0x180358fcf
mov eax, dword [0x180788f38]
imul eax, dword [0x180788f3c]
mov r9d, 0x1385a560
xor edx, edx
div r9d
add eax, 0x1f3248ef
imul r9d, eax, 0x753a3fef
mov rdx, qword [r8]
cmp rdx, 0
sete al
cmp r9d, 0x67c2338e
je 0x180358fcf
jmp 0x180358c75
test al, 1
jne 0x180358c99
jmp 0x180358c7b
mov r14, r10
mov rcx, qword [rcx]
sub rsp, 0x20
mov r8d, 1
call fcn.1804cafa0
add rsp, 0x20
mov r10, r14
jmp 0x180358c99
mov eax, dword [0x180788f40]
sub eax, dword [0x180788f44]
xor eax, 0x4a7ba6d7
add eax, 0x179f621d
add eax, 0x63c196f7
cmp eax, 0x275b9851
jbe 0x180358fe0
mov eax, dword [0x180788f48]
add eax, dword [0x180788f4c]
imul eax, eax, 0x434953db
sub eax, 0x5aac3683
add eax, 0x491e0712
mov rcx, rsi
add rcx, 0x30
cmp eax, 0xc33d2dc8
je 0x180358fe0
jmp 0x180358cef
cmp byte [rsi + 0x59], 2
setb al
test al, 1
jne 0x180358cff
jmp 0x180358dfd
add rsi, 0x38
mov r8, qword [rsi]
mov eax, dword [0x180788f50]
and eax, dword [0x180788f54]
sub eax, 0x88d60d99
mov r9d, 0x816beb68
xor edx, edx
div r9d
mov r9d, 0xf755888
xor edx, edx
div r9d
cmp eax, 0x6db7d80e
jae 0x180358fed
mov eax, dword [0x180788f58]
sub eax, dword [0x180788f5c]
xor eax, 0x59efa6df
mov r9d, 0x83df379c
xor edx, edx
div r9d
imul edx, eax, 0x1075b806
cmp r8, 0
sete al
cmp edx, 0xa318f507
ja 0x180358fed
test al, 1
jne 0x180358dfd
jmp 0x180358d77
mov rsi, r10
mov rcx, qword [rcx]
sub rsp, 0x20
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
add rsp, 0x20
mov r10, rsi
jmp 0x180358dfd
mov eax, dword [0x180788f60]
xor eax, dword [0x180788f64]
or eax, 0xeae7114f
add eax, 0x609a1667
xor eax, 0xa8e49fcf
cmp eax, 0xb88c8cee
jbe 0x180358ffa
jmp 0x180358dc0
mov eax, dword [0x180788f68]
imul eax, dword [0x180788f6c]
imul eax, eax, 0x65afec96
or eax, 0xb8c9cb09
and eax, 0x9e958a22
ud2
mov byte [rcx], al
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [str.vHo]
or eax, dword [0x180788f74]
sub eax, 0xe68b7bb3
and eax, 0x77df1863
or eax, 0x3414d302
cmp eax, 0x5498de9
jb 0x180359009
jmp 0x180358e25
mov ecx, dword [0x180788f78]
or ecx, dword [0x180788f7c]
xor ecx, 0xba3b4d32
and ecx, 0xe48c35c8
and ecx, 0x7d61ae9b
mov byte [rbx], 1
mov rax, rdi
add rax, 8
cmp ecx, 0xa7788a1c
ja 0x180358e25
jmp 0x180358e57
mov qword [rax], r10
mov qword [rdi + 0x10], r12
mov qword [rdi], r15
mov eax, dword [0x180788f80]
sub eax, dword [0x180788f84]
mov ecx, 0x6f603f4d
xor edx, edx
div ecx
or eax, 0xda913a46
add eax, 0xa94146f5
cmp eax, 0xa324b665
mov rcx, qword [rbp - 8]
je 0x18035901d
mov eax, dword [0x180788f88]
add eax, dword [0x180788f8c]
imul eax, eax, 0x400f76c5
sub eax, 0x285c961f
sub eax, 0xc7a4bf06
cmp eax, 0xe1eda15d
jae 0x18035901d
mov al, 1
jmp 0x180358dea
mov eax, dword [0x180788f90]
sub eax, dword [0x180788f94]
add eax, 0x4b3eca21
mov ecx, 0xee968e7b
xor edx, edx
div ecx
imul eax, eax, 0xa20c26c8
cmp eax, 0x6281dd3e
jae 0x18035902e
mov eax, dword [0x180788f98]
and eax, dword [0x180788f9c]
or eax, 0xf0fcbdac
and eax, 0xb2cc06ad
add eax, 0x9126b69
mov byte [rbx], 3
cmp eax, 0xab1891cf
je 0x18035902e
mov rcx, qword [rbp - 8]
clc
jmp 0x180358f17
mov qword [rdi], 2
mov al, 3
jmp 0x180358dea
test byte [rsi], al
pop rbp
invalid
mov esi, 0xfff70de9
inc dword [rbx]
cmpsb byte [rsi], byte [rdi]
sbb al, 0x50
and eax, 0x84da7d7b
adc dword [rdi - 0x52], 0xfff77ae9
add esp, dword [rsi + 0x7b25501c]
jge 0x180358f14
test byte [rcx + 0x7ae9ae57], al
idiv edi
push rcx
int1
xchg ecx, eax
push 0xfffffffff41a7c3f
jmp 0x18035871e
scasb al, byte [rdi]
pop rbp
test eax, 0xfb584713
mov cl, 0xf4
lss eax, [0x1802e7749]
call qword [rbx]
jrcxz 0x180358f68
adc esp, ebx
add al, 0xef
out dx, eax
rcr dword [rdi], 0xcd
movabs byte [0x2980a6fffff96ee9], al
jmp 0x180358f2c
cmpsb byte [rsi], byte [rdi]
sub byte [rcx], 0xeb
mov ecx, 0xe984142b
sar cl, 1
invalid
sti
int1
ret
sub byte [rbx - 0x6c50dc6e], 0x72
mov r8, qword [rdi + 8]
mov r9, qword [rdi + 0x10]
sub rsp, 0x20
mov rcx, qword [rbp - 0x18]
mov rdx, r15
call fcn.180487570
add rsp, 0x20
jmp 0x180358a70
mov cl, 0x72
add al, 0x7c
invalid
jl 0x180358fbc
pop rcx
adc eax, 0xfffbbce9
call qword [rbx]
movsb byte [rdi], byte [rsi]
ret
invalid
adc esp, dword [rbx + rax*8 + 0x308b5313]
push rsp
out dx, eax
popfq
xchg dword [rcx - 0x3eb17], ebp
jmp [rbx + rdi*2]
sub al, 0x7b
jmp 0x180358fb4
leave
invalid
popfq
sub al, 0x36
mov esi, 0xe9176e85
std
invalid
jb 0x18035901e
sbb ch, byte [rdi - 0x7a595421]
ud2
shl byte [rdx + 0x2c], 0x2c
invalid
mov gs, word gs:[rax + rdx*8 - 0x70]
mov gs, word [rax + rdx*8 - 0x70]
and ch, cl
pushfq
out dx, eax
adc bh, dh
mov dh, 0xe9
invalid
invalid