Function at 0x180233a40
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rax, rsi
add rax, 0x10
movzx eax, byte [rax]
mov ecx, eax
sub ecx, 3
je 0x180233a70
jmp 0x180233a5d
sub eax, 4
je 0x180233aff
jmp case.0x180233bde.0
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rax, rsi
add rax, 0x18
mov ax, word [rax]
cmp ax, 3
jne case.0x180233bde.0
add rsi, 0x20
mov rsi, qword [rsi]
mov rcx, rsi
call fcn.180405e10
test al, 1
jne 0x180233a95
jmp case.0x180233bde.0
mov eax, dword [0x18051df98]
imul eax, dword [0x18051df9c]
mov ecx, 0xb293e7d4
xor edx, edx
div ecx
or eax, 0x271e1731
and eax, 0xa67c1ccd
cmp eax, 0xa7ec6be7
je 0x180233d35
jmp 0x180233ac2
mov eax, dword [0x18051dfa0]
and eax, dword [0x18051dfa4]
imul eax, eax, 0x46920b34
mov ecx, 0xef14a43b
xor edx, edx
div ecx
mov ecx, 0x32b5f658
xor edx, edx
div ecx
mov edi, eax
mov rcx, rsi
call fcn.180407050
cmp edi, 0xdff294fc
je 0x180233ac2
jmp 0x180233afa
jmp case.0x180233bde.0
mov al, byte [rsi + 0xb0]
cmp al, 3
sete al
test al, 1
jne 0x180233b10
jmp 0x180233b1e
mov rcx, rsi
add rcx, 0x68
call fcn.180235e70
jmp 0x180233b1e
mov rax, rsi
add rax, 0x20
cmp dword [rax], 0
sete al
test al, 1
jne 0x180233bab
jmp 0x180233b31
mov rdx, qword [rsi + 0x38]
cmp rdx, 0
sete al
mov ecx, dword [0x18051dfa8]
imul ecx, dword [0x18051dfac]
imul ecx, ecx, 0x6518c20a
xor ecx, 0xdafa7bde
xor ecx, 0xc83e2bf
cmp ecx, 0x7a6d4f1b
jbe 0x180233d4a
jmp 0x180233b69
mov ecx, dword [0x18051dfb0]
imul ecx, dword [0x18051dfb4]
imul ecx, ecx, 0xffc60725
or ecx, 0xa224b539
sub ecx, 0x20794126
cmp ecx, 0x79f93eea
jb 0x180233b69
test al, 1
jne 0x180233bab
jmp 0x180233b96
mov rcx, qword [rsi + 0x28]
shl rdx, 5
mov r8d, 4
call fcn.1802cbf20
jmp 0x180233bab
mov rcx, qword [rsi + 0x18]
cmp rcx, 0
sete al
test al, 1
jne case.0x180233bde.0
jmp 0x180233bc0
mov rax, rcx
and rax, 3
mov rdx, rax
sub rdx, 3
ja 0x180233be0
lea rdx, [0x180486430]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov eax, dword [0x18051dfb8]
imul eax, dword [0x18051dfbc]
and eax, 0x96b946a9
xor eax, 0xa7e4eaa3
imul eax, eax, 0xbff4c295
cmp eax, 0x6a37e368
je 0x180233d5b
jmp 0x180233c0a
mov eax, dword [0x18051dfc0]
add eax, dword [0x18051dfc4]
xor eax, 0x79ace66d
sub eax, 0x8ce7331d
add eax, 0xc3a56c8e
cmp eax, 0x1d469e63
jbe 0x180233c0a
ud2
jmp case.0x180233bde.0
mov rsi, rcx
add rsi, 0xffffffffffffffff
mov rdi, qword [rcx - 1]
mov eax, dword [0x18051dfc8]
imul eax, dword [0x18051dfcc]
xor eax, 0x4e5c0734
mov r8d, 0x3d1904a6
xor edx, edx
div r8d
and eax, 0x11fcf2fc
cmp eax, 0xef521671
ja 0x180233d6c
jmp 0x180233c6d
mov eax, dword [0x18051dfd0]
xor eax, dword [0x18051dfd4]
imul edx, eax, 0xd6fbb17f
sub edx, 0x3879ade
or edx, 0xe8ca8162
mov rax, rcx
add rax, 7
cmp edx, 0x2b513af4
jbe 0x180233c6d
jmp 0x180233c9c
mov rbx, qword [rax]
mov rax, qword [rbx]
cmp rax, 0
je 0x180233caf
mov rcx, rdi
call rax
jmp 0x180233caf
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
cmp rdx, 0
sete al
test al, 1
jne 0x180233cce
jmp 0x180233cc4
mov rcx, rdi
call fcn.1802cbf20
jmp 0x180233cce
mov eax, dword [0x18051dfd8]
add eax, dword [0x18051dfdc]
sub eax, 0x9baea4e8
imul eax, eax, 0x92bfe254
add eax, 0x5de6907b
cmp eax, 0xfcabdd3c
jae 0x180233d7d
mov eax, dword [0x18051dfe0]
xor eax, dword [0x18051dfe4]
imul edi, eax, 0x4c4fb8d6
sub edi, 0x7ad7d889
xor edi, 0x25820f95
mov rcx, rsi
mov edx, 0x18
mov r8d, 8
call fcn.1802cbf20
cmp edi, 0x12f1a81d
jbe 0x180233d7d
jmp 0x180233d30
jmp case.0x180233bde.0
in eax, dx
pop rcx
cmc
ror byte [r8 - 0x77], 0xf1
call fcn.180407050
jmp 0x180233ac0
invalid
leave
cwde
add dh, byte [rdx - 0x52]
or esi, dword [rbx]
xor dword [0x1694e177a], esi
pushfq
invalid
popfq
invalid
xor byte [rax - 0x5c7d6804], ch
pop rsi
mov rcx, rsi
mov edx, 0x18
mov r8d, 8
call fcn.1802cbf20
jmp 0x180233cf5
add esi, dword [rdx + rsi - 0x15]
add byte [rbx - 0x7bf0fb18], al
mov dh, 0
add byte [rax], al
loopne 0x180234002
shr ecx, 0x20
cmp ecx, 0x29
setb al
jmp 0x180233e23
add eax, 0x52b837f
stosb byte [rdi], al
sbb byte [rdx], bl
int1
sub eax, 0x7e4bcb87
mov rsi, rcx
add rsi, 0xffffffffffffffff
cmp eax, 0x87f6e125
jae 0x1802341c6
jmp 0x180234024
mov rdi, qword [rsi]
add rcx, 7
mov r14, qword [rcx]
mov rax, qword [r14]
cmp rax, 0
je 0x18023403e
mov rcx, rdi
call rax
jmp 0x18023403e
mov eax, dword [0x18051e028]
xor eax, dword [0x18051e02c]
mov ecx, 0x2a46f6fa
xor edx, edx
div ecx
mov ecx, 0x884879cb
xor edx, edx
div ecx
mov ecx, 0xee5867c6
xor edx, edx
div ecx
cmp eax, 0x24b5059e
jae 0x1802341d3
mov eax, dword [0x18051e030]
sub eax, dword [0x18051e034]
add eax, 0xe7763a30
add eax, 0xaf6a5550
imul eax, eax, 0x71f30bcb
cmp rdi, 0
setne cl
cmp eax, 0x631f2016
je 0x1802341d3
jmp 0x1802340a0
mov rbx, qword [r14 + 8]
add r14, 0x10
mov r14, qword [r14]
cmp rbx, 0
je 0x180234173
mov eax, dword [0x18051e038]
xor eax, dword [0x18051e03c]
mov ecx, 0xc59e0b4d
xor edx, edx
div ecx
mov ecx, 0x89d1cab6
xor edx, edx
div ecx
or eax, 0xea23469d
cmp eax, 0x1c1735ff
jbe 0x1802341e0
mov eax, dword [0x18051e040]
imul eax, dword [0x18051e044]
sub eax, 0xf3143268
imul ebp, eax, 0xe9a40f7c
sub ebp, 0xcc985076
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.1802cbf20
cmp ebp, 0xa74c8230
jb 0x1802341e0
jmp 0x18023411d
mov eax, dword [0x18051e048]
or eax, dword [0x18051e04c]
mov ecx, 0xf8936faf
xor edx, edx
div ecx
xor eax, 0xb5c4fc3d
add eax, 0xb09ee402
cmp eax, 0xeb0e8141
ja 0x1802341fb
mov eax, dword [0x18051e050]
add eax, dword [0x18051e054]
mov ecx, 0x369955bd
xor edx, edx
div ecx
sub eax, 0xa72f873b
add eax, 0x3920e42
cmp eax, 0x31195477
jb 0x1802341fb
jmp 0x180234173
mov rcx, rsi
mov edx, 0x18
mov r8d, 8
call fcn.1802cbf20
jmp 0x180233e23
in al, 0xbe
sub al, 0x20
sar byte [rax + 0x21e9b144], 1
invalid
rcr byte [rcx], 1
pop rbx
retf
xor ebp, dword [rsi - 0x16f16cb]
invalid
add dword [rax], esi
mov edi, 0x12e49038
invalid
sahf
pop rbp
je 0x1802341d8
push rsp
cld
invalid
sub eax, 0xeb000001
add byte [rdi], cl
mov dh, 8
invalid
or byte [rcx + 0x5e983c8], cl
mov eax, ecx
sub ecx, 5
ja case.0x180234295.1
lea rcx, [0x180486450]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rcx, rsi
add rcx, 0x28
call fcn.180235a10
mov rcx, rsi
call fcn.1802357b0
jmp case.0x180234295.1
mov al, byte [rsi + 0x2a9]
cmp al, 0
sete al
test al, 1
jne 0x180234327
test eax, 0x3c000002
add byte [rdi], cl
xchg esp, eax
shr byte [rax - 0x149c8aff], 0x72
jmp 0x180234338
mov al, byte [rsi + 0x2a9]
cmp al, 0
sete al
test al, 1
jne 0x180234327
jmp 0x180234338
mov al, byte [rsi + 0xae8]
movzx eax, al
test eax, eax
je 0x1802342f0
jmp 0x1802342e6
sub eax, 3
je 0x180234316
jmp 0x180234399
mov rdi, rsi
add rdi, 0x280
mov rcx, rsi
add rcx, 0x2a8
call fcn.180235a10
mov rcx, rdi
call fcn.1802357b0
jmp 0x180234399
mov rcx, rsi
add rcx, 0x3d0
call fcn.1802348d0
jmp 0x180234399
mov rcx, rsi
add rcx, 0x280
call fcn.1802357b0
jmp 0x180234338
mov rdi, rsi
add rdi, 0x198
mov eax, dword [0x18051e068]
xor eax, dword [0x18051e06c]
xor eax, 0x6fe1cbb0
mov ecx, 0x7573e04d
xor edx, edx
div ecx
add eax, 0xad3bfd77
cmp eax, 0x9160ea06
jb 0x1802343b5
mov eax, dword [0x18051e070]
and eax, dword [0x18051e074]
add eax, 0x1ec1ad89
imul ebx, eax, 0x54a8d06e
add ebx, 0x1743e125
mov rcx, rdi
call fcn.180235a10
cmp ebx, 0x8cf9e780
je 0x1802343b5
jmp 0x180234397
jmp 0x180234399
add rsi, 0x27a
mov byte [rsi], 0
jmp case.0x180234295.1
mov r10b, 0xb
push rax
pop rcx
invalid
cmp dword [rcx + 0x573e0a5f], 0xffff71e9
call [rcx + 0x28]
and cl, byte [rcx]
out dx, eax
mov ah, 0xa6
out dx, al
xor edi, dword [0x13f1bbc8d]
mov dword [rdx + 5], edx
test al, 0x65
invalid
add byte [rdi], cl
xchg ebp, eax
ror byte [rcx - 0x75], 0x56
or byte [rbp - 0x75], cl
adc byte [rax - 0x7d], r9b
cli
add byte [rdi], cl
xchg esp, eax
shr byte [rax - 0x14f38aff], 0
add bl, ch
add byte [rax - 0x77], cl
int1
xchg edi, eax
jmp 0x180234d94
int3
int3
int3
add byte [rax], al
add byte [rcx - 0xa], al
rol byte [rcx], 0x48
cmovne eax, edx
mov eax, dword [rbx]
cmp rax, 0
je 0x180234fab
mov rcx, rdi
call rax
jmp 0x180234fab
mov rax, rbx
add rax, 8
mov rdx, qword [rax]
add rbx, 0x10
mov r8, qword [rbx]
cmp rdx, 0
je 0x180234fcc
mov rcx, rdi
call fcn.1802cbf20
jmp 0x180234fcc
mov rcx, rsi
mov edx, 0x18
shl dword [0x1b531fe4e], cl
mov rdx, rcx
add rdx, 0x10
cmp eax, 0x50f5e30b
ja 0x18023534b
jmp 0x1802350a1
mov rax, qword [rdx]
cmp rax, 0
add byte [rdi], cl
test byte [rdx - 2], ah
invalid
invalid
add byte [rdi], cl
test byte [rdx - 2], ah
invalid
add rax, 0x20
mov r9, qword [rax]
mov rax, rcx
add rax, 0x28
mov rdx, qword [rcx + 0x18]
sbb byte [rbx + rcx*4 + 0x41], cl
and byte [rax - 0x77], cl
rol dword [rcx - 1], 0xd1
add al, byte [rax]
add byte [rax], al
add byte [rax], al
add byte [rax + 0xfc2394c], al
mov word [rbx], fs
std
invalid
add byte [rax], al
jmp 0x180235200
cmp rdx, 0
je 0x180234f10
add rcx, rax
add rcx, 8
mov rcx, qword [rcx]
add byte [rax], al
add bl, ch
add byte [rbx + 0x2e8f6605], cl
add byte [rbx], ch
add eax, 0x2e8f64
mov eax, dword [0x18051e200]
sub eax, dword [0x18051e204]
or eax, 0xfcb448bd
xor eax, 0x8e2553ac
mov r9d, 0x4dbab4db
xor r10, r10
xor r10, r10
div r9d
mov rdx, qword [rcx]
cmp eax, 0xf60c05f5
ja 0x180235294
jmp 0x1802352c1
mov rcx, rdx
mov rdx, r8
movabs al, byte [0xe9fb2d9223ccaffa]
sbb ch, bh
invalid
add byte [rax], al
add byte [rax], al
or dword [rax + 1], 0xfe0ffc8
or ecx, dword [rcx + rcx*4 + 0x45]
mov qword [rbp - 0x10], r8
and byte [rax - 0x77], cl
fld1
in al, 0x3e
sbb eax, 0xc4834800
add esp, 0x20
mov eax, dword [0x18051e3b8]
imul eax, dword [str.1MM_b_n_v]
add esp, 0x20
jge 0x1802367d8
nop
jrcxz 0x18023684d
cmc
and cl, bh
cmp rax, 0x2efb28bc
invalid
sub bl, bh
invalid
mov esp, 0xf2efb28
xchg byte [rsi + 0xa], cl
add byte [rax], al
test al, 0xb6
xor esp, ebx
or byte [rcx - 0x77], cl
and byte [r8 - 0x75], r9b
adc byte [r9 - 0x77], cl
sub byte [r8 - 0x75], r9b
mov rcx, qword [rbx + 0x18]
mov qword [r13 + 0x30], rcx
cmp eax, 0x435956a6
jbe 0x180236db5
add byte [rcx - 0x40], ch
sbb esp, dword [rax + rdi*4]
jmp 0x180236dc4
adc eax, 0xd5744aca
add eax, 0x2e7692
add byte [rdx + 0x63], cl
adc al, 0x80
sar dword [0x10bebdbd5], 0xf
invalid
mov esi, ebp
and ecx, 3
or byte [rcx + 0x39], 0xc0
mov qword [r8], rax
mov rax, qword [r14 + 8]
mov qword [r8 + 8], rax
mov rax, qword [r14 + 0x10]
mov qword [r8 + 0x10], rax
mov rax, qword [r14 + 0x18]
mov qword [r8 + 0x18], rax
jmp 0x180237204
add byte [rcx - 0x75], cl
or byte [rcx - 0x77], r9b
or byte [rcx - 0x75], cl
adc byte [rcx - 0x77], r9b
adc byte [rcx - 0x75], cl
sbb byte [rcx - 0x77], r9b
sbb cl, bpl
invalid
int3
int3
xor bh, byte [rbx + 0x3d059436]
adc al, 0xd3
invalid
sub dh, byte [0x1a468021b]
add rax, 8
add al, ch
sub eax, 0x4800094a
mov eax, edi
sub dword [rdi + 0x2e], 0
add byte [rbx], ch
xor eax, 0x2e6a86
invalid
invalid
add byte cs:[rcx - 0xca4a20a], al
cdq
mov eax, 4
int1
jo 0x180237d17
xor dword [rax], esi
and r13b, byte [0x1e8f73e7f]
add eax, 0x48000942
mov ebx, dword [rsp + 0x20]
add byte cs:[ebx], dh
add eax, 0x2e67f0
add eax, 0xccdbada5
sub eax, 0xdf105ab6
mov ecx, 0xe003e2f2
xor edx, edx
div ecx
cmp eax, 0xced6ace2
ja 0x18023818d
mov eax, dword [0x18051e5e0]
add eax, dword [0x18051e5e4]
xor eax, 0xbe07fe94
mov esi, 0xe3ed9605
and eax, 0x3a34b835
and byte [0x1a7fdb459], bh
add byte [rax + 0x20], bh
and byte [rax], al
add byte [rax], al
xchg ebp, eax
or al, byte [rax]
add byte [rcx - 0x173eb7fe], cl
and byte [rax - 0x7cb7fbbe], cl
in al, dx
and byte [rbx + rcx*4 - 0x5b], cl
invalid
fstp dword [rdi]
movabs al, byte [0x60b52d98d8f48f0d]
and byte [rdi + 0x1e39e3d], bh
mov al, 0xf
xchg byte [rax], cl
test eax, 0xeb0000
add byte [rax], al
or byte [rdi], cl
add byte [rax], al
sub eax, 0x3fe90000
sub eax, 0x83480000
add byte [rax - 0x7d], cl
in al, dx
and byte [rcx + 5], bh
movsd dword [rdi], dword [rsi]
cmp eax, esi
add byte [rax], al
add dword [rax], eax
add byte [rax], al
sahf
int1
adc dl, ch
xchg edx, eax
and eax, dword [rax]
add cl, ch
xchg esp, eax
sub byte [rax], al
add byte [rbx + 0x2e36af05], cl
and al, 0
add dword [rax], eax
add byte [rax - 0x75], cl
mov byte [rax - 0x16ffffff], dh
mov al, 1
add byte [rax], al
jmp 0x18023bacd
add byte [rbx + rcx*4 + 5], al
xlatb
xor ch, byte [rsi]
add byte [rbx + rcx + 5], al
invalid
in al, 0xfe
invalid
sub dl, byte [rcx + 0x1f]
cli
push rdx
movabs al, byte [0x98fc860f1a96]
cld
cwde
add byte [rax], al
sub eax, 0xea81002e
cmc
fdivr qword [rdx + 0x22]
add al, 0xf
xchg edx, eax
sal esi, 0xc1
add dword [rbp + 5], esi
and byte [rcx], dh
sal bh, cl
int1
cmp eax, 0xf1f88b28
je 0x1802454e7
jmp 0x18023be3c
jl 0x18023c1a7
add byte [rax], al
jmp 0x18023c1f1
lahf
invalid
mov ebx, dword [rcx + 7]
mul dword [rbx - 0x77]
mov edx, esi
invalid
invalid
invalid
and byte [rax - 0x77], cl
stc
add byte [rbx], ah
xchg eax, eax
jle 0x18023d8f6
add bl, ch
add byte [rbx + 0x2e121115], cl
add byte [rbx], al
adc eax, 0x2e120f
mov edx, dword [0x18051eb10]
add edx, dword [0x18051eb14]
xor edx, 0x89544b11
add edx, 0xd0916059
xor edx, 0x8647769b
cmp rax, 0
sete cl
cmp edx, 0x9c56fa1
jbe 0x18023d8f9
test cl, 1
jne 0x18023d93c
invalid
jmp 0x18023d92d
sub rsp, 0x20
mov rcx, rdi
movabs rax, qword [0xff4d9649a3d9f92]
test byte [rdi + 0x7a], dh
add byte [rax], al
or byte [rsi - 0x75], ah
or al, 0x41
xor ecx, 0x8c6e2532
add byte [rax], al
add ecx, dword [rax - 0x73]
adc eax, 0x2483be
add esp, 0x20
clc
add al, 0x2e
add byte [rcx - 0x40], ch
pop rdx
invalid
and byte [rax - 0x75], cl
lea esi, [rax]
or al, 0
add al, ch
in al, dx
wait
and byte [rax], al
add byte [rax], al
add al, 0x49
mov dword [rsp + 0x1e8], 1
invalid
pop rax
add al, byte [rax]
add byte [rbp - 0x75], cl
xchg esp, eax
and al, 0x60
add al, byte [rax]
add byte [rax - 0x75], cl
popfq
mov al, 0xb
add byte [rax], al
add byte [rcx - 0x75], cl
test byte [rax + rbp*2], ah
add al, byte [rax]
add byte [rax - 0x77], cl
test dword [rax + 0x4900000e], esi
mov eax, dword [rsp + 0x270]
mov byte [rsp + 0x59e], 1
or byte [rax], al
add byte [rax - 0x77], cl
test dword [rax + 0x4100000d], ebp
mov byte [rsp + 0x819], 0
add eax, 0x2df556
mov esi, edi
jl 0x18023fb20
imul edi, dword [rdi - 0x5dc347bf], 0x15
invalid
xchg edi, eax
add byte [rax], al
jmp 0x18527042f
mov r8d, 0x150
sbb byte [rax - 0x7cb7fff8], ch
invalid
mov ecx, dword [rbp + 0xea8]
ret 0x4818
or dword [rax], 0xc4834800
and byte [rax - 0x75], cl
invalid
add byte [rax], al
retf 0x2db5
and al, 0xa0
add dword [rax], eax
add byte [rcx - 0x7d], cl
inc dword [rax]
xor eax, 0xe9f0d7e8
outsd dx, dword [rsi]
invalid
jno 0x18024545b
cmpsd dword [rsi], dword [rdi]
xchg edx, ebp
xchg dword [rsi - 0x6352f1f8], ebp
push rdi
jbe 0x1802454a7
sub rsp, 0x20
mov rcx, r13
call r15
add rsp, 0x20
jmp 0x18023be3a
invalid
invalid