Function at 0x180351160
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov eax, dword [0x180788080]
xor edx, edx
div dword [0x180788084]
xor eax, 0xf4a04e54
and eax, 0xfd5ddf6f
or eax, 0x4673d83a
cmp eax, 0x3c11a478
je 0x180351619
jmp 0x180351194
mov eax, dword [0x180788088]
sub eax, dword [0x18078808c]
mov ecx, 0x698ee5be
xor edx, edx
div ecx
or eax, 0xaef8ea8e
mov ecx, 0xeef4897e
xor edx, edx
div ecx
mov r8, qword [rsi]
movabs rcx, 0x8000000000000002
cmp r8, rcx
setl cl
cmp eax, 0x546ff4d7
jae 0x180351194
jmp 0x1803511d3
movabs rax, 0x8000000000000001
mov rdx, r8
add rdx, rax
xor eax, eax
test cl, 1
cmovne rax, rdx
test rax, rax
je 0x180351207
jmp 0x1803511f3
sub rax, 1
je 0x180351460
jmp 0x1803511ff
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov al, byte [rsi + 0x38]
movzx eax, al
test eax, eax
je 0x18035122b
jmp 0x180351213
mov ecx, eax
sub ecx, 3
je 0x180351372
jmp 0x180351220
sub eax, 4
je 0x1803513da
jmp 0x1803511ff
cmp r8, 0
je 0x1803512f3
mov eax, dword [0x180788090]
sub eax, dword [0x180788094]
and eax, 0x645ae641
or eax, 0x5d3d2e33
mov ecx, 0x2e2fc3aa
xor edx, edx
div ecx
cmp eax, 0x843214f
je 0x180351626
mov eax, dword [str._hr]
xor eax, dword [0x18078809c]
add eax, 0x3bb385fc
mov ecx, 0x31629c9c
xor edx, edx
div ecx
imul ecx, eax, 0xa255094f
mov rax, rsi
add rax, 8
cmp ecx, 0xa68e733b
je 0x180351626
jmp 0x180351294
mov rcx, qword [rax]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x1807880a0]
imul eax, dword [0x1807880a4]
and eax, 0xee6bb72b
and eax, 0x9ecdb118
or eax, 0x288e2910
cmp eax, 0x58f669d6
jb 0x180351637
jmp 0x1803512ce
mov eax, dword [0x1807880a8]
add eax, dword [0x1807880ac]
sub eax, 0xf538959f
imul eax, eax, 0x4374758c
and eax, 0x17ff719a
cmp eax, 0xd0f3a7a6
ja 0x1803512ce
jmp 0x1803512f3
mov rax, rsi
add rax, 0x18
mov r8, qword [rax]
cmp r8, 0
je 0x1803511ff
add rsi, 0x20
mov eax, dword [0x1807880b0]
sub eax, dword [0x1807880b4]
mov ecx, 0xec0b5d46
xor edx, edx
div ecx
xor eax, 0xcf3516c3
or eax, 0x8948ef8d
cmp eax, 0x2e6c8559
jb 0x180351648
jmp 0x180351337
mov eax, dword [0x1807880b8]
xor eax, dword [0x1807880bc]
xor eax, 0xd187287d
imul eax, eax, 0x81edf89d
or eax, 0x23d55ed3
mov rcx, qword [rsi]
cmp eax, 0xbb8ff28c
jbe 0x180351337
jmp 0x18035135f
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
jmp 0x1803511ff
mov rdi, rsi
add rdi, 0x40
mov eax, dword [0x1807880c0]
xor edx, edx
div dword [0x1807880c4]
and eax, 0xc5398e55
or eax, 0x6be4fb0b
mov ecx, 0x794700ae
xor edx, edx
div ecx
cmp eax, 0x6ffbcced
ja 0x180351655
jmp 0x1803513a7
mov ebx, dword [0x1807880c8]
imul ebx, dword [0x1807880cc]
or ebx, 0xb01926b5
and ebx, 0x2b8a378c
sub ebx, 0x58f85d27
mov rcx, rdi
call fcn.18034db60
cmp ebx, 0x39a4c298
jb 0x1803513a7
jmp 0x1803513d8
jmp 0x1803513f4
mov rcx, rsi
add rcx, 0x68
call fcn.180353390
mov rcx, rsi
add rcx, 0x40
call fcn.180352950
jmp 0x1803513f4
mov al, byte [rsi + 0x39]
cmp al, 0
sete al
mov ecx, dword [0x1807880d0]
sub ecx, dword [0x1807880d4]
add ecx, 0x6ffbfbbc
imul ecx, ecx, 0xdf32fee1
and ecx, 0xf84a7333
cmp ecx, 0x63d309ed
jb 0x18035166a
jmp 0x180351428
mov ecx, dword [0x1807880d8]
or ecx, dword [0x1807880dc]
sub ecx, 0x563952a3
or ecx, 0x1ed08a60
xor ecx, 0xddbf0d7e
cmp ecx, 0x1aa758d6
je 0x180351428
test al, 1
jne 0x1803511ff
jmp 0x180351458
mov r8, qword [rsi]
jmp 0x18035122b
mov rax, qword [rsi + 8]
cmp rax, 0
sete al
mov ecx, dword [0x1807880e0]
and ecx, dword [0x1807880e4]
add ecx, 0x63093b1
add ecx, 0xe31ff346
sub ecx, 0xfef99039
cmp ecx, 0xd8c8b4ea
ja 0x18035167b
jmp 0x180351497
mov ecx, dword [0x1807880e8]
or ecx, dword [str._Wx]
xor ecx, 0xf3b10007
sub ecx, 0xcea186ab
add ecx, 0x54f3ba28
cmp ecx, 0xd9234f91
jae 0x180351497
test al, 1
jne 0x1803511ff
jmp 0x1803514c7
mov rax, rsi
add rax, 0x10
mov rdi, qword [rax]
mov rsi, qword [rsi + 0x18]
cmp rdi, 0
sete al
test al, 1
jne 0x1803511ff
jmp 0x1803514e6
mov eax, dword [0x1807880f0]
xor eax, dword [0x1807880f4]
add eax, 0x5fb6ca82
and eax, 0x9d12521d
mov ecx, 0x4d44284e
xor edx, edx
div ecx
cmp eax, 0x411fef25
je 0x18035168c
jmp 0x180351512
mov eax, dword [0x1807880f8]
and eax, dword [0x1807880fc]
mov ecx, 0x7b00452a
xor edx, edx
div ecx
mov ecx, 0xf8f519bb
xor edx, edx
div ecx
sub eax, 0xd1f05f69
cmp eax, 0x85d0718d
ja 0x180351512
jmp 0x18035153e
mov rax, qword [rsi]
cmp rax, 0
sete cl
test cl, 1
jne 0x180351556
jmp 0x18035154f
mov rcx, rdi
call rax
jmp 0x180351556
mov rdx, qword [rsi + 8]
add rsi, 0x10
mov eax, dword [0x180788100]
and eax, dword [0x180788104]
imul eax, eax, 0x48914702
or eax, 0x701cb1d2
imul eax, eax, 0xcdbd8100
cmp eax, 0xf93db46d
jae 0x18035169d
jmp 0x180351588
mov eax, dword [0x180788108]
add eax, dword [0x18078810c]
xor eax, 0x3b5843b5
and eax, 0x2a836716
add eax, 0xa4c4579a
mov r8, qword [rsi]
cmp eax, 0x475d40d3
jbe 0x180351588
jmp 0x1803515af
cmp rdx, 0
je 0x1803511ff
mov rcx, rdi
call fcn.1804cafa0
mov eax, dword [0x180788110]
imul eax, dword [0x180788114]
sub eax, 0x8d104b32
mov ecx, 0x108fd8a0
xor edx, edx
div ecx
xor eax, 0xc158c2cd
cmp eax, 0x7fb4544
jb 0x1803516aa
jmp 0x1803515ee
mov eax, dword [0x180788118]
or eax, dword [0x18078811c]
mov ecx, 0x78f8e3e6
xor edx, edx
div ecx
xor eax, 0x5ad66468
or eax, 0x25afb13c
cmp eax, 0x2538158b
jb 0x1803515ee
jmp 0x1803511ff
insd dword [rdi], dx
add dword [rdi + rbp + 0x5f3f8cde], esp
jmp 0x180351192
fimul word [rdi + rdi - 0x49316a1]
invalid
xor al, 0x24
xchg esp, eax
movabs dword [0x7e1f0dff97dd72bd], eax
jmp 0x18035125f
nop
js 0x180351644
je 0x1803516b9
in al, dx
sub dword [rbx - 0x20], edi
xchg esp, eax
or al, 0xe9
test ah, bh
invalid
cmpsd dword [rsi], dword [rdi]
mov dword [0x1e039b2af], ebp
movsb byte [rdi], byte [rsi]
jmp 0x180351335
and eax, 0x4f867791
jp 0x180351685
or dword [rax - 0x77], 0xfffffff9
call fcn.18034db60
jmp 0x1803513a5
sub al, 0xe4
ficom word [rdi]
pop rsi
cmpsd dword [rsi], dword [rdi]
sbb eax, 0xda06bf0
xor ch, cl
stosd dword [rdi], eax
std
invalid
insb byte [rdi], dx
and al, 0x15
iretd
adc eax, 0xfe09e9b1
invalid
rcr byte [rbx], cl
loope 0x18035161d
fcmovne st(0), st(5)
invalid
ror dword [rsi], cl
cli
invalid
je 0x18035163d
imul dword [rbx]
push rax
xchg dword [rdx + rdi*8 - 0xca17], esi
dec esp
int3
int3