Function at 0x180359050
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov rsi, r8
mov rdi, rdx
mov qword [rbp - 0x10], rcx
mov eax, dword [0x180788fa0]
add eax, dword [0x180788fa4]
imul eax, eax, 0x90e30882
xor eax, 0xc398fdd4
add eax, 0x3cb4cce5
cmp eax, 0x37bc7c0d
jbe 0x180359b17
mov eax, dword [0x180788fa8]
mov ecx, dword [0x180788fac]
xor edx, edx
div ecx
imul ecx, eax, 0xaaca2632
add ecx, 0x401d36a
xor ecx, 0x51351048
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r10, rsp
mov eax, 0x10
call fcn.180698e80
sub rsp, rax
mov r13, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r8, rsp
mov eax, 0x30
call fcn.180698e80
sub rsp, rax
mov r12, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov rdx, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r9, rsp
mov eax, 0x10
call fcn.180698e80
sub rsp, rax
mov r15, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov rbx, rsp
mov r14, rdi
add r14, 0x68
cmp ecx, 0xd130bd4f
ja 0x180359b17
jmp 0x18035914d
mov eax, dword [0x180788fb0]
or eax, dword [0x180788fb4]
and eax, 0x7f596547
imul eax, eax, 0x780c6190
and eax, 0x6203da9b
cmp eax, 0x374201f0
jb 0x180359b28
mov ecx, dword [0x180788fb8]
add ecx, dword [0x180788fbc]
and ecx, 0x380a2f11
add ecx, 0x86b91241
xor ecx, 0xeb4a07ae
movzx eax, byte [r14]
cmp ecx, 0x5d46d6bb
jbe 0x180359b28
jmp 0x1803591a4
test eax, eax
mov qword [rbp - 8], rdx
je 0x1803591be
jmp 0x1803591ae
sub eax, 1
je 0x180359ad6
jmp 0x1803591b9
jmp 0x1803593ab
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x18], r10
mov qword [rbp], r9
mov eax, dword [0x180788fc0]
xor eax, dword [0x180788fc4]
add eax, 0x95c92a90
xor eax, 0x449ab289
or eax, 0xa0623a51
cmp eax, 0xe44c3661
jb 0x180359b39
jmp 0x1803591f6
mov eax, dword [0x180788fc8]
xor edx, edx
div dword [0x180788fcc]
imul r13d, eax, 0x1b1020d4
add r13d, 0xd7f749bc
add r13d, 0xcc78bde4
mov rax, qword [rdi]
mov qword [rbx], rax
mov rax, qword [rdi + 8]
mov qword [rbx + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [rbx + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [rbx + 0x18], rax
sub rsp, 0x20
mov rcx, r15
mov rdx, rbx
call fcn.180659ca0
add rsp, 0x20
cmp r13d, 0x147508c1
jb 0x1803591f6
jmp 0x180359255
mov eax, dword [0x180788fd0]
sub eax, dword [0x180788fd4]
mov ecx, 0xc51ed14b
xor edx, edx
div ecx
sub eax, 0xeddb69f4
mov ecx, 0x7b7ce98a
xor edx, edx
div ecx
cmp eax, 0x512c30c
je 0x180359b7b
mov ecx, dword [0x180788fd8]
sub ecx, dword [0x180788fdc]
or ecx, 0x37f5f10c
and ecx, 0xd1e9a1ae
add ecx, 0x1dd6257
mov rbx, qword [r15]
mov r13, qword [r15 + 8]
cmp rbx, 0xffffffffffffffff
sete al
cmp ecx, 0x39aa0d0c
je 0x180359b7b
mov r8, qword [rbp - 8]
jmp 0x1803592c1
mov ecx, dword [0x180788fe0]
xor ecx, dword [0x180788fe4]
add ecx, 0x20bbca9f
imul ecx, ecx, 0x2a72f9d2
xor ecx, 0x8036c91e
cmp ecx, 0xbf64611a
ja 0x180359b8c
jmp 0x1803592ed
mov ecx, dword [0x180788fe8]
imul ecx, dword [0x180788fec]
and ecx, 0x2c5622f3
or ecx, 0x64354139
add ecx, 0x4c2cf37f
cmp ecx, 0x6968ddeb
je 0x1803592ed
test al, 1
jne 0x180359396
jmp 0x18035931a
mov eax, dword [0x180788ff0]
imul eax, dword [0x180788ff4]
or eax, 0xf83ef053
mov ecx, 0x15e9e913
xor edx, edx
div ecx
and eax, 0x92943931
cmp eax, 0xb1fc9151
jae 0x180359b9d
jmp 0x180359347
mov eax, dword [0x180788ff8]
imul eax, dword [0x180788ffc]
mov ecx, 0x225817b
xor edx, edx
div ecx
or eax, 0x3a1b13de
and eax, 0xb6e8f084
mov r15, rdi
add r15, 0x20
cmp eax, 0x395292f5
ja 0x180359347
jmp 0x180359377
mov qword [rbp - 0x38], rsi
mov qword [r15], rbx
mov qword [rdi + 0x28], r13
mov rax, rdi
add rax, 0x60
mov qword [rbp - 0x20], rax
mov byte [rdi + 0x60], 0
jmp 0x180359507
cmp r13, 0
setne al
mov rdi, qword [rbp - 0x10]
mov esi, 3
jmp 0x180359a64
mov eax, dword [0x180789000]
imul eax, dword [0x180789004]
add eax, 0xea253b76
add eax, 0xaa1e5dd7
mov ecx, 0xd863052c
xor edx, edx
div ecx
cmp eax, 0x4cc8fbb7
je 0x180359baa
jmp 0x1803593d8
mov eax, dword [0x180789008]
and eax, dword [0x18078900c]
imul eax, eax, 0x1989b319
mov ecx, 0x83ca4edf
xor edx, edx
div ecx
mov ecx, 0x49924df
xor edx, edx
div ecx
mov rbx, rdi
add rbx, 0x60
mov cl, byte [rdi + 0x60]
mov r15, rdi
add r15, 0x20
cmp eax, 0x3f3be8bd
jae 0x1803593d8
jmp 0x180359416
test cl, cl
je 0x180359490
jmp 0x18035941c
sub cl, 1
je 0x1803596cf
jmp 0x180359427
mov rax, rdi
add rax, 0x58
mov r8, qword [rax]
mov qword [rbp - 0x18], r10
mov qword [rbp], r9
mov eax, dword [0x180789010]
xor eax, dword [0x180789014]
mov ecx, 0x29eae84f
xor edx, edx
div ecx
and eax, 0xf4cb89bb
xor eax, 0x7ec49954
cmp eax, 0xf824a711
ja 0x180359bbb
mov eax, dword [0x180789018]
or eax, dword [0x18078901c]
imul eax, eax, 0xc8950756
or eax, 0x2bbc6f33
imul eax, eax, 0xed2969c4
cmp eax, 0xac45ffcb
jbe 0x180359bbb
jmp 0x1803596af
mov qword [rbp - 0x20], rbx
mov eax, dword [0x180789020]
xor eax, dword [0x180789024]
and eax, 0x125c7389
and eax, 0x95c643e9
sub eax, 0xc9787014
cmp eax, 0x767fb10d
je 0x180359bc8
mov eax, dword [0x180789028]
xor edx, edx
div dword [0x18078902c]
add eax, 0xb056ee68
sub eax, 0x82e634cb
xor eax, 0x25b006e4
mov rbx, qword [r15]
mov rcx, rdi
add rcx, 0x28
cmp eax, 0x65d5ebe6
jae 0x180359bc8
mov qword [rbp - 0x30], r13
jmp 0x1803594f2
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x18], r10
mov qword [rbp], r9
mov r13, qword [rcx]
jmp 0x180359507
mov eax, dword [0x180789030]
xor edx, edx
div dword [0x180789034]
add eax, 0xb0847543
sub eax, 0x7defb3d4
xor eax, 0xe0808e93
cmp eax, 0xd9627dc
jb 0x180359bd5
mov esi, dword [0x180789038]
imul esi, dword [0x18078903c]
xor esi, 0x606d33ec
and esi, 0x10c0cbda
and esi, 0xbfeffbc8
sub rsp, 0x20
mov rcx, r12
mov rdx, rbx
mov r8, r13
call fcn.18063a940
add rsp, 0x20
mov rcx, qword [r12]
cmp rcx, 3
sete al
mov r11, qword [r12 + 8]
cmp esi, 0x868821f
ja 0x180359bd5
test al, 1
jne 0x180359693
jmp 0x18035958a
mov eax, dword [0x180789040]
and eax, dword [0x180789044]
mov r8d, 0x2c651d26
xor edx, edx
div r8d
mov r8d, 0x3d8a148d
xor edx, edx
div r8d
and eax, 0x3a891c18
cmp eax, 0xcb1a4f7
mov r10, qword [rbp - 0x28]
jae 0x180359bfc
mov eax, dword [0x180789048]
imul eax, dword [0x18078904c]
add eax, 0xcbd43152
xor eax, 0xf68c910c
add eax, 0x30c2b2f7
mov rdx, qword [r12 + 0x10]
mov qword [r10], rdx
mov rdx, qword [r12 + 0x18]
mov qword [r10 + 8], rdx
mov rdx, qword [r12 + 0x20]
mov qword [r10 + 0x10], rdx
mov r8, rdi
add r8, 0x30
cmp eax, 0xfe8d590b
jae 0x180359bfc
mov rsi, qword [rbp - 0x38]
mov r13, qword [rbp - 0x30]
mov rbx, qword [rbp - 0x20]
jmp 0x180359616
mov eax, dword [0x180789050]
imul eax, dword [0x180789054]
or eax, 0xd8dbe3b6
or eax, 0xade4e0d
and eax, 0x1d314d6
cmp eax, 0x553acccc
jae 0x180359c27
jmp 0x18035963f
mov eax, dword [0x180789058]
add eax, dword [0x18078905c]
add eax, 0xb81b4580
mov r9d, 0x9227f177
xor edx, edx
div r9d
mov r9d, 0x49f840ac
xor edx, edx
div r9d
mov qword [r8], rcx
cmp eax, 0x38fe9477
je 0x18035963f
jmp 0x180359672
mov qword [rdi + 0x38], r11
mov rax, qword [r10]
mov qword [rdi + 0x40], rax
mov rax, qword [r10 + 8]
mov qword [rdi + 0x48], rax
mov rax, qword [r10 + 0x10]
mov qword [rdi + 0x50], rax
mov qword [rdi + 0x58], r8
jmp 0x1803596af
mov r13, r11
mov rdi, qword [rbp - 0x10]
mov r8, qword [rbp - 8]
mov r9, qword [rbp]
mov rcx, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x20]
jmp 0x18035999c
sub rsp, 0x20
mov rcx, r13
mov rdx, r8
mov r8, rsi
call fcn.18063af60
add rsp, 0x20
mov al, byte [r13 + 9]
cmp al, 3
je 0x180359731
jmp 0x180359723
mov eax, dword [0x180789060]
xor eax, dword [0x180789064]
sub eax, 0x6127a796
mov ecx, 0xe019da4c
xor edx, edx
div ecx
and eax, 0xe95e1a0f
cmp eax, 0xb8bfa41d
jae 0x180359c37
jmp 0x1803596fb
mov eax, dword [0x180789068]
xor eax, dword [0x18078906c]
xor eax, 0x7cf81d98
sub eax, 0xebc1a500
add eax, 0x999abb4a
ud2
mov r13, qword [r13]
cmp al, 2
je 0x1803598d0
jmp 0x18035978e
mov eax, dword [0x180789070]
or eax, dword [0x180789074]
mov ecx, 0x5603f7fa
xor edx, edx
div ecx
sub eax, 0x1f2e9c9a
add eax, 0x92bea91b
cmp eax, 0x34a991b7
mov rdi, qword [rbp - 0x10]
jbe 0x180359c4a
jmp 0x180359761
mov eax, dword [0x180789078]
and eax, dword [0x18078907c]
imul eax, eax, 0xe5580a5a
xor eax, 0xb8ad7b60
add eax, 0x6c3dc1a
mov byte [rbx], 3
cmp eax, 0xe353d382
jae 0x180359761
jmp 0x180359789
jmp 0x180359b09
mov eax, dword [0x180789080]
and eax, dword [0x180789084]
and eax, 0x112b56c5
imul eax, eax, 0xb18180b0
sub eax, 0x5b905809
cmp eax, 0x74c744f1
jbe 0x180359c5a
mov eax, dword [0x180789088]
add eax, dword [0x18078908c]
or eax, 0x6abf2a57
add eax, 0x81a44898
mov ecx, 0x62d22108
xor edx, edx
div ecx
mov rsi, rdi
add rsi, 0x30
cmp eax, 0xea16d390
ja 0x180359c5a
jmp 0x1803597e8
mov rcx, rdi
add rcx, 0x48
cmp qword [rcx], 0xffffffffffffffff
jne 0x18035984b
mov eax, dword [0x180789090]
add eax, dword [0x180789094]
and eax, 0x5d575b16
mov ecx, 0xd8458d2
xor edx, edx
div ecx
sub eax, 0x8f5e7389
cmp eax, 0xf2b7d8fb
ja 0x180359c6b
mov eax, dword [0x180789098]
or eax, dword [0x18078909c]
or eax, 0x9f89c543
add eax, 0x12a9e1a3
xor eax, 0xa7eaab0c
ud2
sub rsp, 0x20
call fcn.180659de0
add rsp, 0x20
mov rcx, rax
mov r13, rdx
mov eax, dword [0x1807890a0]
xor eax, dword [0x1807890a4]
mov r8d, 0x7eb4f3f1
xor edx, edx
div r8d
xor eax, 0xd0b865b0
sub eax, 0xdd1baf53
cmp eax, 0xe4f55f78
jb 0x180359c7e
ud2
or ecx, dword [rdi]
or ecx, dword [rcx - 0x75]
add dword [rcx - 0x77], ecx
add byte [rcx - 0x75], cl
or byte [r9 - 0x77], cl
or byte [rcx - 0x75], cl
adc byte [r9 - 0x77], cl
adc byte [rax - 0x7d], cl
in al, dx
and byte [rcx + rcx*4 - 7], cl
rcr dword [rbx], cl
invalid
push rsi
test al, 0x26
sbb dword [rdx], esi
and dword [rsi + 0x33779e29], edi
invalid
out dx, eax
loop 0x180359ad7
or byte [rdi - 0x47], ah
lodsd eax, dword [rsi]
sbb eax, 0x48bc8aad
mov eax, dword [rdi]
mov qword [rbx], rax
mov rax, qword [rdi + 8]
mov qword [rbx + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [rbx + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [rbx + 0x18], rax
sub rsp, 0x20
mov rcx, r15
mov rdx, rbx
call fcn.180659ca0
add rsp, 0x20
jmp 0x1803591f4
jno 0x180359ba5
xor dh, 0x37
fistp qword [rcx - 0x5f]
push rdi
ror byte [rcx - 0x9081619], 0xff
jmp [rcx - 0x7d]
imul eax, dword [rbx + 0x29ec2e37], 0x1ef648d0
or esi, edx
jmp 0x1803592eb
pushfq
invalid
jmp 0x180359345
sbb al, 0x41
adc byte [rax - 0x559a916f], al
invalid
invalid
xchg edi, eax
push 0xffffffffb98c0269
mov dl, 0xe9
in eax, 0xf8
invalid
scasb al, byte [rdi]
invalid
mov dword [rdi + 0x1f], edx
test eax, 0xb2e2d56e
jmp 0x1ca2616d5
sbb byte [rcx - 0x77], cl
or byte [rcx - 0x75], cl
and al, 0x20
mov qword [r10 + 0x10], rax
jmp 0x1803595c0
pushfq
pop rcx
pop rsp
jp 0x180359c14
ror byte [rbp + 0x49], 0x89
or cl, ch
invalid
mov ecx, dword [rax + 0x586b767b]
nop
in al, 0xea
iretd
pop rbx
int1
and byte [rax + 0x51], bl
and ch, byte [rax - 0x16fcfc3a]
add eax, 0xa4fffffb
movsb byte [rdi], byte [rsi]
movq qword [rdx + rbx*8 - 0x1d8435cb], mm0
sti
xor dword [rax - 0x17], ebp
sti
invalid