Function at 0x180387020
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov r8, qword [rsi]
cmp r8, 0
sete al
test al, 1
jne 0x1803870f9
jmp 0x18038703f
mov eax, dword [0x18078d5d0]
xor edx, edx
div dword [0x18078d5d4]
and eax, 0xed61c56d
or eax, 0x91cea1a5
or eax, 0xe13bb2fc
cmp eax, 0xe5634896
jbe 0x180387864
jmp 0x180387069
mov eax, dword [0x18078d5d8]
xor eax, dword [0x18078d5dc]
mov ecx, 0xdaf343b4
xor edx, edx
div ecx
and eax, 0xec30ddb5
xor eax, 0x26a90227
mov rcx, rsi
add rcx, 8
cmp eax, 0x9f84aa3d
je 0x180387069
jmp 0x180387098
mov rcx, qword [rcx]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x18078d5e0]
imul eax, dword [0x18078d5e4]
and eax, 0x530453f8
add eax, 0x3883d458
imul eax, eax, 0x43eaba89
cmp eax, 0xdef57eb4
jae 0x180387875
mov eax, dword [0x18078d5e8]
and eax, dword [0x18078d5ec]
add eax, 0x2b38a4e
sub eax, 0x7a9190
sub eax, 0xd4d6d9a
cmp eax, 0xa9d0f3e2
ja 0x180387875
jmp 0x1803870f9
mov rcx, rsi
add rcx, 0x18
mov eax, dword [0x18078d5f0]
xor edx, edx
div dword [0x18078d5f4]
add eax, 0x39b2bf90
imul eax, eax, 0x308add4
sub eax, 0xec4709d
cmp eax, 0xcc098c00
jae 0x180387882
jmp 0x18038712b
mov eax, dword [0x18078d5f8]
add eax, dword [0x18078d5fc]
imul eax, eax, 0x13c7c282
or eax, 0x40f8c15b
and eax, 0xb81436b1
mov rdi, qword [rcx]
cmp eax, 0x53a9f3bd
je 0x18038712b
jmp 0x180387153
cmp rdi, 0
je 0x180387272
mov eax, dword [0x18078d600]
xor edx, edx
div dword [0x18078d604]
imul eax, eax, 0xd0964ddd
or eax, 0xcbf6f365
mov ecx, 0x7ba1bcfb
xor edx, edx
div ecx
cmp eax, 0x48c8b7ac
je 0x18038788f
jmp 0x18038718c
mov eax, dword [0x18078d608]
xor eax, dword [0x18078d60c]
sub eax, 0x1e39397a
imul eax, eax, 0xc5c7ca79
imul eax, eax, 0xcc17a9a9
mov rbx, qword [rsi + 0x20]
cmp eax, 0xe5d23492
jae 0x18038718c
jmp 0x1803871b6
mov eax, dword [0x18078d610]
xor eax, dword [0x18078d614]
imul eax, eax, 0x60263d6e
mov ecx, 0x403e7833
xor edx, edx
div ecx
or eax, 0x7657baae
cmp eax, 0xf3b62338
je 0x1803878a0
mov ebp, dword [0x18078d618]
xor ebp, dword [0x18078d61c]
add ebp, 0xc8ced253
and ebp, 0x4466218b
add ebp, 0xce93f49a
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
cmp ebp, 0xaf057c06
jbe 0x1803878a0
jmp 0x18038721e
mov eax, dword [0x18078d620]
xor edx, edx
div dword [str.HJ]
xor eax, 0x4b5a3cad
and eax, 0x7ea1c48b
and eax, 0x52403d8b
cmp eax, 0x5bbcc08c
jae 0x1803878be
jmp 0x180387248
mov eax, dword [0x18078d628]
xor edx, edx
div dword [0x18078d62c]
mov ecx, 0x7366825
xor edx, edx
div ecx
sub eax, 0x85c27634
xor eax, 0xfbbc42fc
cmp eax, 0xb8da98d1
je 0x180387248
jmp 0x180387272
mov rax, rsi
add rax, 0x30
mov rdi, qword [rax]
mov eax, dword [0x18078d630]
xor eax, dword [0x18078d634]
mov ecx, 0x8670e89e
xor edx, edx
div ecx
or eax, 0x7cfb538b
and eax, 0x29cf2d7b
cmp eax, 0x2332cf2f
jbe 0x1803878cb
jmp 0x1803872a8
mov eax, dword [0x18078d638]
add eax, dword [0x18078d63c]
mov ecx, 0xf40edf99
xor edx, edx
div ecx
add eax, 0xf606b18c
imul ecx, eax, 0x8aa1f75c
cmp rdi, 0
sete al
cmp ecx, 0x98b7545b
je 0x1803872a8
test al, 1
jne 0x18038734e
jmp 0x1803872dd
mov rax, rsi
add rax, 0x38
mov rbx, qword [rax]
mov eax, dword [0x18078d640]
sub eax, dword [0x18078d644]
add eax, 0xeaf57d73
add eax, 0xd74c65ba
add eax, 0xa521508b
cmp eax, 0xd489ed21
je 0x1803878d8
mov eax, dword [0x18078d648]
or eax, dword [0x18078d64c]
add eax, 0xa7684eb3
mov ecx, 0x1c33a1a2
xor edx, edx
div ecx
mov ebp, eax
or ebp, 0x4eda4749
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
cmp ebp, 0xc8f5110a
jae 0x1803878d8
jmp 0x18038734e
mov eax, dword [0x18078d650]
xor edx, edx
div dword [0x18078d654]
imul eax, eax, 0xc1cb3c92
imul eax, eax, 0x6a0d8908
sub eax, 0x8d957c5b
cmp eax, 0xac97f855
jae 0x1803878f6
mov eax, dword [0x18078d658]
or eax, dword [0x18078d65c]
imul eax, eax, 0xb0d09ca7
xor eax, 0x7276135d
sub eax, 0x9d2aca10
mov rcx, rsi
add rcx, 0x48
cmp eax, 0x8006b665
je 0x1803878f6
jmp 0x1803873a8
mov eax, dword [0x18078d660]
sub eax, dword [0x18078d664]
xor eax, 0x34c47172
or eax, 0xc80ae676
sub eax, 0x925b6406
cmp eax, 0x52748fa5
jbe 0x180387907
mov eax, dword [0x18078d668]
add eax, dword [0x18078d66c]
mov r8d, 0xffbd6ea9
xor edx, edx
div r8d
mov r8d, 0x4565a46
xor edx, edx
div r8d
mov r8d, 0xd75af6c8
xor edx, edx
div r8d
mov rdx, qword [rcx]
cmp eax, 0xec7b0ea8
jae 0x180387907
jmp 0x18038740b
cmp rdx, 0
je 0x180387475
mov rax, rsi
add rax, 0x50
mov rcx, qword [rax]
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x18078d670]
sub eax, dword [0x18078d674]
or eax, 0xf94d1a5c
imul eax, eax, 0xa108795f
sub eax, 0x2c9b8c4
cmp eax, 0xbb7a985
je 0x180387914
mov eax, dword [0x18078d678]
and eax, dword [0x18078d67c]
and eax, 0x354353b8
or eax, 0xed49fec8
sub eax, 0xa7f476bd
cmp eax, 0xa09dfbc9
ja 0x180387914
jmp 0x180387475
mov eax, dword [0x18078d680]
xor eax, dword [0x18078d684]
mov ecx, 0x9432ed4e
xor edx, edx
div ecx
or eax, 0x1f9b10c2
or eax, 0xce8c5fe8
cmp eax, 0xa8a87116
jbe 0x180387925
jmp 0x1803874a1
mov eax, dword [0x18078d688]
and eax, dword [0x18078d68c]
mov ecx, 0x8aa792ce
xor edx, edx
div ecx
mov ecx, 0x65ea60b2
xor edx, edx
div ecx
add eax, 0xe798ad59
mov rcx, rsi
add rcx, 0x60
cmp eax, 0x8fcae973
je 0x1803874a1
jmp 0x1803874d4
mov rdi, qword [rcx]
cmp rdi, 0
sete al
test al, 1
jne 0x180387550
jmp 0x1803874e4
mov rbx, rsi
add rbx, 0x68
mov eax, dword [0x18078d690]
xor eax, dword [0x18078d694]
and eax, 0xf73be793
or eax, 0xe1f10e57
or eax, 0x6ba2e936
cmp eax, 0xadb2d375
jbe 0x180387932
mov eax, dword [0x18078d698]
and eax, dword [0x18078d69c]
imul ebp, eax, 0x59c51271
and ebp, 0x16567b
and ebp, 0x824e606b
mov rcx, qword [rbx]
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
cmp ebp, 0xa58e5711
jae 0x180387932
jmp 0x18038754e
jmp 0x180387550
mov eax, dword [0x18078d6a0]
imul eax, dword [0x18078d6a4]
imul eax, eax, 0x53920f14
mov ecx, 0x95bafc2e
xor edx, edx
div ecx
imul eax, eax, 0xa84f5b17
cmp eax, 0x9f8085fa
jae 0x180387954
jmp 0x18038757f
mov eax, dword [0x18078d6a8]
or eax, dword [0x18078d6ac]
or eax, 0x990e88ef
and eax, 0x9489d68d
imul eax, eax, 0x17aea16d
mov r8, qword [rsi + 0x78]
cmp eax, 0x1145eeaf
jbe 0x18038757f
jmp 0x1803875a8
cmp r8, 0
sete al
test al, 1
jne 0x180387628
jmp 0x1803875b5
mov eax, dword [0x18078d6b0]
sub eax, dword [0x18078d6b4]
sub eax, 0xbca955d7
add eax, 0xc965dc7a
mov ecx, 0xe7b8fa05
xor edx, edx
div ecx
cmp eax, 0x6ba8e3b8
ja 0x180387965
jmp 0x1803875e1
mov eax, dword [0x18078d6b8]
imul eax, dword [0x18078d6bc]
imul eax, eax, 0xc58b9a5c
add eax, 0xeebc84d2
mov ecx, 0xe4071b1a
xor edx, edx
div ecx
mov rcx, rsi
add rcx, 0x80
cmp eax, 0x15d2f689
jae 0x1803875e1
jmp 0x180387615
mov rcx, qword [rcx]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
jmp 0x180387628
mov r8, qword [rsi + 0x90]
cmp r8, 0
sete al
mov ecx, dword [0x18078d6c0]
xor ecx, dword [0x18078d6c4]
xor ecx, 0x3c6b12b6
add ecx, 0xfd5de296
xor ecx, 0x3826038e
cmp ecx, 0x85b8448e
je 0x180387972
mov ecx, dword [0x18078d6c8]
and ecx, dword [0x18078d6cc]
imul ecx, ecx, 0xa04e84a8
imul ecx, ecx, 0x26909c4c
xor ecx, 0x3187fd7b
cmp ecx, 0xeeb38008
je 0x180387972
test al, 1
jne 0x180387702
jmp 0x180387690
mov r9, rsi
add r9, 0x98
mov eax, dword [0x18078d6d0]
or eax, dword [0x18078d6d4]
imul eax, eax, 0x7e2ec70b
mov ecx, 0xd0f3e7e8
xor edx, edx
div ecx
sub eax, 0xf7ea2d11
cmp eax, 0xe7818baf
je 0x18038797f
mov eax, dword [0x18078d6d8]
xor eax, dword [0x18078d6dc]
add eax, 0x4d0ddbdd
add eax, 0x6eb84a27
mov ecx, 0x3cafe269
xor edx, edx
div ecx
mov rcx, qword [r9]
cmp eax, 0xa47064b0
jae 0x18038797f
jmp 0x1803876f4
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov rax, rsi
add rax, 0xa8
mov rdx, qword [rax]
cmp rdx, 0
je 0x18038772d
mov rax, rsi
add rax, 0xb0
mov rcx, qword [rax]
mov r8d, 1
call fcn.1804cafa0
jmp 0x18038772d
mov eax, dword [0x18078d6e0]
add eax, dword [0x18078d6e4]
imul eax, eax, 0x847be917
mov ecx, 0x5359cc46
xor edx, edx
div ecx
sub eax, 0xe0688bd8
cmp eax, 0x47b20df5
ja 0x180387990
jmp 0x18038775a
mov eax, dword [0x18078d6e8]
add eax, dword [0x18078d6ec]
imul eax, eax, 0x23dab387
imul eax, eax, 0x995e3b2d
imul ecx, eax, 0x8d2bc2bd
mov rax, rsi
add rax, 0xc0
cmp ecx, 0x47a8d230
je 0x18038775a
jmp 0x18038778b
mov r8, qword [rax]
cmp r8, 0
sete cl
mov eax, dword [0x18078d6f0]
and eax, dword [0x18078d6f4]
or eax, 0xd3a9f13d
imul eax, eax, 0x7517daf1
sub eax, 0x5ddc7e03
cmp eax, 0x645454c6
jbe 0x1803879a1
jmp 0x1803877be
mov eax, dword [0x18078d6f8]
add eax, dword [0x18078d6fc]
mov r9d, 0x74eb8e03
xor edx, edx
div r9d
or eax, 0xd464d568
mov r9d, 0xb4c3cb5e
xor edx, edx
div r9d
cmp eax, 0xa92821ea
jae 0x1803877be
test cl, 1
jne 0x18038785b
jmp 0x1803877f3
add rsi, 0xc8
mov rcx, qword [rsi]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x18078d700]
add eax, dword [0x18078d704]
xor eax, 0x28d0ec2
add eax, 0xe23b190c
imul eax, eax, 0xaad7dbb5
cmp eax, 0xf0404ca8
jae 0x1803879b2
mov eax, dword [0x18078d708]
xor eax, dword [0x18078d70c]
and eax, 0xc369ca34
and eax, 0x7693197
imul eax, eax, 0x34baf153
cmp eax, 0xd0cae92a
je 0x1803879b2
jmp 0x18038785b
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
ret
cwde
push rdi
stosb byte [rdi], al
mul bh
js 0x1803878df
movabs eax, dword [0xfff7f2e963c11246]
dec dword [rbx]
int1
or esi, ecx
push 0x45
cmp ebp, ecx
clc
invalid
and bl, bh
jge 0x1803878fc
leave
mov word [rbx - 0x7651688], gs
invalid
movsxd r14, eax
invalid
invalid
mov bh, 0x66
xchg ch, bh
ror dword [rbp - 0x2676b7b5], cl
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
jmp 0x1803871e1
loopne 0x1803878d9
sub eax, esp
scasb al, byte [rdi]
mov word [rdx - 3], cs
jmp 0x180387246
xor dword [rbp + 0x238830c1], esi
jbe 0x18038789e
jmp 0x1803872a6
xchg dword [rax], esp
sub al, 0x42
mov r11b, 0x4e
and byte [rbp + 0x2c], ah
mov r11b, 0x4e
mov rcx, rbx
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
jmp 0x18038730d
jbe 0x180387959
loop 0x1803878fa
call qword [rax - 0x2f]
xchg r14d, r9d
mov edi, 0xfa71e92b
invalid
push rax
rol dword [rbp - 0x79], 1
invalid
stosd dword [rdi], eax
sub byte [rsi - 0x5c], cl
leave
sahf
imul esi, esi, 0xffffffe9
mov edx, 0x19fffffa
sub cl, byte [rsi + rdi*8]
sbb dword [rdx], ebp
or al, 0xfe
invalid
movabs dword [0xe9c9785b0ccdc1ea], eax
insd dword [rdi], dx
sti
invalid
out 0x5e, eax
out dx, al
ror esi, cl
xchg edi, eax
cmp dword [rdi - 0x6032f49], edi
mov rcx, qword [rbx]
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
jmp 0x180387511
sub eax, 0x175b3eac
popfq
sbb dword [rax], 0xe9555e14
sbb ah, bh
invalid
or eax, 0x49621a09
jmp qword [rsi - 0x17]
xchg edi, eax
add bh, byte [rcx]
call 0x1537706ba
jmp 0x180387660
pop rbp
mov bh, 0xec
lodsb al, byte [rsi]
pop rbx
invalid
movabs al, byte [0xfec98b82d7059de4]
jmp 0x13822779d
adc al, byte [rdi - 0x4f]
invalid
ret 0x8adc