Function at 0x180582830
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
mov r14, rdx
mov rsi, rcx
mov r12, qword [rdx]
mov rbx, qword [rdx + 8]
mov r8, qword [r12 + 0xa0]
mov rdi, qword [rdx + 0x10]
test r8, r8
je 0x180582878
cmp r8, rdi
jae 0x180582872
cmp byte [rbx + r8], 0xbf
jg 0x180582878
jmp 0x180583a46
jne 0x180583a46
cmp r8, rdi
je 0x180583a44
movzx eax, byte [rbx + r8]
mov ecx, eax
test al, al
js 0x180582897
cmp ecx, 0x70
je 0x18058291c
jmp 0x1805828f5
mov ecx, eax
and ecx, 0x1f
movzx r9d, byte [rbx + r8 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x1805828de
movzx edx, byte [rbx + r8 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x1805828eb
movzx r9d, byte [rbx + r8 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r9d, 0x3f
or r9d, edx
or ecx, r9d
cmp ecx, 0x70
je 0x18058291c
jmp 0x1805828f5
shl ecx, 6
or ecx, r9d
cmp ecx, 0x70
je 0x18058291c
jmp 0x1805828f5
shl ecx, 0xc
or ecx, edx
cmp ecx, 0x70
je 0x18058291c
test r8, r8
je 0x18058290b
cmp r8, rdi
jae 0x180583a46
cmp al, 0xbf
jle 0x180583a46
test al, al
js 0x1805829c2
cmp eax, 0x50
jne 0x180583a44
cmp qword [r12 + 0x80], 0
jne 0x180583a54
mov qword [r12 + 0x80], 0xffffffffffffffff
mov qword [r12 + 0x98], 0
test r8, r8
je 0x18058296e
cmp r8, rdi
jae 0x180583a46
movzx eax, byte [rbx + r8]
cmp al, 0xbf
jle 0x180583a46
test al, al
js 0x180582977
movzx eax, al
mov dword [rsp + 0x34], eax
jmp 0x180582a3c
movzx eax, byte [rbx + r8]
test al, al
jns 0x180582962
mov ecx, eax
and cl, 0x1f
movzx r9d, cl
movzx edx, byte [rbx + r8 + 1]
and edx, 0x3f
cmp al, 0xdf
jbe 0x180582a11
movzx ecx, byte [rbx + r8 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp al, 0xf0
jb 0x180582a30
movzx eax, byte [rbx + r8 + 3]
and r9d, 7
shl r9d, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or r9d, eax
jmp 0x180582a37
mov ecx, eax
and ecx, 0x1f
movzx r9d, byte [rbx + r8 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x180582a1a
movzx edx, byte [rbx + r8 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x180582f56
movzx eax, byte [rbx + r8 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x50
je 0x18058291c
jmp 0x180583a44
shl r9d, 6
or r9d, edx
jmp 0x180582a37
shl ecx, 6
or ecx, r9d
mov eax, ecx
cmp eax, 0x50
je 0x18058291c
jmp 0x180583a44
shl r9d, 0xc
or r9d, ecx
mov dword [rsp + 0x34], r9d
lea r15, [r12 + 0xa0]
mov rcx, r14
call fcn.180574b70
test al, al
je 0x180582a64
mov rcx, r14
call fcn.180574da0
mov r8, qword [r15]
cmp r8, rdi
jne 0x180582b18
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x68], xmm0
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x60], rax
test rdi, rdi
js 0x180583a60
je 0x180582abb
movzx eax, byte [0x1807afe04]
mov r15d, 1
mov edx, 1
mov rcx, rdi
call fcn.1804caf90
test rax, rax
je 0x180583a63
mov r14, rax
jmp 0x180582ac1
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.1806a7400
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov qword [rsi], rdi
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rdi
mov dword [rsi + 0x18], 0xa
inc qword [r12 + 0x80]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r8, r8
je 0x180582e5c
cmp r8, rdi
jae 0x180583a46
movzx eax, byte [rbx + r8]
cmp al, 0xbf
jle 0x180583a46
test al, al
js 0x180582e67
movzx ecx, al
cmp ecx, 0x7b
jne 0x180582f7a
lea rcx, [rsp + 0x50]
mov rdx, r14
call fcn.180575850
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [rsp + 0x68]
movaps xmmword [rsp + 0xe0], xmm0
mov rcx, r14
call fcn.180574b70
test al, al
je 0x180582ec0
lea rax, [r12 + 0x88]
mov qword [rsp + 0x38], rax
jmp 0x180582bc7
mov rax, qword [r12 + 0x90]
mov byte [rax + r13], bpl
inc r13
mov qword [r12 + 0x98], r13
mov rcx, r14
call fcn.180574b70
test al, al
je 0x180582ec0
mov rcx, r14
call fcn.180574da0
mov r8, qword [r15]
cmp r8, rdi
je 0x180582ec8
test r8, r8
je 0x180582c10
cmp r8, rdi
jae 0x180583a46
movzx eax, byte [rbx + r8]
cmp al, 0xbf
jle 0x180583a46
test al, al
js 0x180582c17
movzx ecx, al
cmp ecx, 0x7d
jne 0x180582c90
jmp 0x180582ec3
movzx eax, byte [rbx]
test al, al
jns 0x180582bfa
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
movzx r9d, byte [rbx + r8 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x180582c64
movzx edx, byte [rbx + r8 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x180582c74
movzx r9d, byte [rbx + r8 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r9d, 0x3f
or r9d, edx
or ecx, r9d
cmp ecx, 0x7d
jne 0x180582c90
jmp 0x180582ec3
shl ecx, 6
or ecx, r9d
cmp ecx, 0x7d
jne 0x180582c90
jmp 0x180582ec3
shl ecx, 0xc
or ecx, edx
cmp ecx, 0x7d
je 0x180582ec3
nop word cs:[rax + rax]
test r8, r8
je 0x180582ca6
cmp r8, rdi
jae 0x180583a46
cmp al, 0xbf
jle 0x180583a46
test al, al
js 0x180582ce0
movzx ebp, al
mov r13, qword [r12 + 0x98]
cmp r13, qword [r12 + 0x88]
jne 0x180582ba0
mov rcx, qword [rsp + 0x38]
call fcn.180503b10
jmp 0x180582ba0
mov ecx, eax
and cl, 0x1f
movzx ebp, cl
movzx edx, byte [rbx + r8 + 1]
and edx, 0x3f
cmp al, 0xdf
jbe 0x180582d27
movzx ecx, byte [rbx + r8 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp al, 0xf0
jb 0x180582d39
movzx eax, byte [rbx + r8 + 3]
and ebp, 7
shl ebp, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or ebp, eax
cmp ebp, 0x80
jb 0x180582cad
jmp 0x180582d4a
shl ebp, 6
or ebp, edx
cmp ebp, 0x80
jae 0x180582d4a
jmp 0x180582cad
shl ebp, 0xc
or ebp, ecx
cmp ebp, 0x80
jb 0x180582cad
mov dword [rsp + 0x50], 0
mov eax, ebp
cmp ebp, 0x800
jae 0x180582d7a
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x50], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x51], bpl
mov r13d, 2
jmp 0x180582de3
cmp ebp, 0x10000
jae 0x180582dad
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x50], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x52], bpl
mov r13d, 3
jmp 0x180582de3
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x50], al
mov eax, ebp
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x51], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x52], al
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + 0x53], bpl
mov r13d, 4
mov rax, qword [r12 + 0x88]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jb 0x180582e33
mov rcx, qword [r12 + 0x90]
add rcx, rbp
lea rdx, [rsp + 0x50]
mov r8, r13
call fcn.1806a7400
add rbp, r13
mov qword [r12 + 0x98], rbp
mov rcx, r14
call fcn.180574b70
test al, al
jne 0x180582bc7
jmp 0x180582ec0
mov qword [rsp + 0x20], 1
mov r9d, 1
mov rcx, qword [rsp + 0x38]
mov rdx, rbp
mov r8, r13
call fcn.1806a7f20
mov rbp, qword [r12 + 0x98]
jmp 0x180582dfb
movzx eax, byte [rbx]
test al, al
jns 0x180582b3f
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
movzx r9d, byte [rbx + r8 + 1]
and r9d, 0x3f
cmp al, 0xdf
jbe 0x180582f6b
movzx edx, byte [rbx + r8 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp al, 0xf0
jb 0x180583088
movzx r9d, byte [rbx + r8 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r9d, 0x3f
or r9d, edx
or ecx, r9d
cmp ecx, 0x7b
je 0x180582b4b
jmp 0x180582f7a
mov r8, qword [r15]
cmp r8, rdi
jne 0x180582f26
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x68], xmm0
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x60], rax
test rdi, rdi
js 0x180583a60
je 0x18058304f
movzx eax, byte [0x1807afe04]
mov r15d, 1
mov edx, 1
mov rcx, rdi
call fcn.1804caf90
test rax, rax
je 0x180583a63
mov r14, rax
jmp 0x180583055
test r8, r8
je 0x18058311f
cmp r8, rdi
jae 0x180583a46
movzx ecx, byte [rbx + r8]
cmp cl, 0xbf
jle 0x180583a46
test cl, cl
js 0x18058312a
movzx eax, cl
jmp 0x18058318d
shl ecx, 0xc
or edx, ecx
mov eax, edx
cmp eax, 0x50
je 0x18058291c
jmp 0x180583a44
shl ecx, 6
or ecx, r9d
cmp ecx, 0x7b
je 0x180582b4b
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x120], rcx
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x110], xmm0
test r8, r8
je 0x180582fa8
cmp r8, rdi
jae 0x180583a46
cmp al, 0xbf
jle 0x180583a46
test al, al
js 0x180582fff
movzx ebp, al
cmp ebp, 0x5c
jne 0x1805830a9
lea rcx, [rsp + 0x50]
mov rdx, r14
call fcn.180575850
test rdi, rdi
js 0x180583a60
je 0x1805830d8
movzx eax, byte [0x1807afe04]
mov r15d, 1
mov edx, 1
mov rcx, rdi
call fcn.1804caf90
test rax, rax
je 0x180583a63
mov r14, rax
jmp 0x1805830de
mov ecx, eax
and cl, 0x1f
movzx ebp, cl
movzx edx, byte [rbx + r8 + 1]
and edx, 0x3f
cmp al, 0xdf
jbe 0x18058309b
movzx ecx, byte [rbx + r8 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp al, 0xf0
jb 0x18058316d
movzx eax, byte [rbx + r8 + 3]
and ebp, 7
shl ebp, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or ebp, eax
cmp ebp, 0x5c
je 0x180582fb8
jmp 0x1805830a9
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.1806a7400
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov eax, 0xa
jmp 0x18058310c
shl ecx, 0xc
or ecx, edx
cmp ecx, 0x7b
je 0x180582b4b
jmp 0x180582f7a
shl ebp, 6
or ebp, edx
cmp ebp, 0x5c
je 0x180582fb8
movabs r13, 0x8000000000000000
mov rcx, r14
call fcn.180574b70
lea rbx, [rsp + 0x110]
test al, al
je 0x1805830cf
mov rcx, r14
call fcn.180574da0
mov ecx, dword [rsp + 0x34]
jmp 0x18058394b
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.1806a7400
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x70], xmm2
mov eax, 0x1f
mov qword [rsi], rdi
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rdi
mov dword [rsi + 0x18], eax
jmp 0x180582afc
movzx ecx, byte [rbx]
test cl, cl
jns 0x180582f4e
mov eax, ecx
and al, 0x1f
movzx eax, al
movzx r9d, byte [rbx + r8 + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x180583180
movzx edx, byte [rbx + r8 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp cl, 0xf0
jb 0x180583188
movzx ecx, byte [rbx + r8 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or eax, ecx
jmp 0x18058318d
shl ebp, 0xc
or ebp, ecx
cmp ebp, 0x5c
je 0x180582fb8
jmp 0x1805830a9
shl eax, 6
or eax, r9d
jmp 0x18058318d
shl eax, 0xc
or eax, edx
cmp eax, 0x7d
jne 0x180583a44
mov rcx, r14
call fcn.180574b70
mov rdi, qword [r12 + 0x90]
mov r8, qword [r12 + 0x98]
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x20], 2
lea r9, [0x1806d85c8]
lea rcx, [rsp + 0x50]
mov rdx, rdi
call fcn.1806897e0
cmp qword [rsp + 0x50], 0
mov qword [rsp + 0xd0], rdi
je 0x180583327
mov r11, qword [rsp + 0x88]
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0xb0]
lea rax, [rcx - 1]
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0xa8]
cmp r11, 0xffffffffffffffff
mov qword [rsp + 0xd8], rax
je 0x18058336e
mov rdx, qword [rsp + 0x78]
lea rbx, [rdx + rax]
cmp rbx, r8
jae 0x1805834c9
mov r10, qword [rsp + 0x70]
mov r14, qword [rsp + 0x58]
mov rax, qword [rsp + 0x68]
mov rdi, rcx
mov qword [rsp + 0xc8], rax
sub rdi, rax
mov qword [rsp + 0xc0], rdi
lea rax, [r14 - 1]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x48]
movzx edi, byte [rax + rbx]
bt r10, rdi
jae 0x1805832bc
cmp r14, r11
mov r13, r11
cmova r13, r14
lea rbx, [rax + rdx]
nop word cs:[rax + rax]
cmp r13, rcx
jae 0x1805832d8
lea rdi, [rdx + r13]
cmp rdi, r8
jae 0x180583a44
lea rdi, [r13 + 1]
movzx ebp, byte [r9 + r13]
cmp bpl, byte [rbx + r13]
mov r13, rdi
je 0x180583290
sub rdx, r14
add rdx, rdi
jmp 0x1805832bf
add rdx, rcx
xor r11d, r11d
mov rax, qword [rsp + 0xd8]
lea rbx, [rdx + rax]
cmp rbx, r8
jb 0x180583267
jmp 0x1805834c9
mov r13, qword [rsp + 0x38]
nop dword [rax]
lea rdi, [r13 + 1]
cmp r11, rdi
jae 0x180583833
cmp r13, rcx
jae 0x180583a44
lea rdi, [rdx + r13]
cmp rdi, r8
jae 0x180583a44
movzx edi, byte [r9 + r13]
lea rbp, [r13 - 1]
cmp dil, byte [rbx + r13]
mov r13, rbp
je 0x1805832e0
add rdx, qword [rsp + 0xc8]
mov r11, qword [rsp + 0xc0]
jmp 0x1805832c2
cmp byte [rsp + 0x6a], 0
jne 0x1805834c9
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
movzx eax, byte [rsp + 0x68]
test r8, r8
je 0x1805834b5
cmp r8, rdi
jae 0x1805834af
cmp byte [rcx + r8], 0xc0
jge 0x1805834b5
jmp 0x180583a49
mov rdx, qword [rsp + 0x78]
lea r13, [rdx + rax]
cmp r13, r8
jae 0x1805834c9
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xc8], rax
mov r10, qword [rsp + 0x58]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x100], rax
lea rax, [r10 - 1]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x48]
lea rbx, [rax + r10]
lea r11, [r9 + r10]
dec r11
mov qword [rsp + 0x38], r11
add r9, r10
add rax, r10
dec rax
mov qword [rsp + 0x108], rax
mov r11, r10
neg r11
jmp 0x1805833f7
add rdx, rcx
mov rdi, rdx
mov rax, qword [rsp + 0xd8]
lea r13, [rdi + rax]
mov rdx, rdi
cmp r13, r8
jae 0x1805834c9
mov rax, qword [rsp + 0x48]
movzx edi, byte [rax + r13]
mov rax, qword [rsp + 0xc8]
bt rax, rdi
jae 0x1805833d9
xor r13d, r13d
mov r14, rdx
nop word cs:[rax + rax]
lea rdi, [r10 + r13]
cmp rdi, rcx
jae 0x18058344d
lea rax, [r10 + r14]
cmp rax, r8
jae 0x180583a44
movzx eax, byte [r9 + r13]
lea rdi, [r14 + 1]
inc r13
cmp al, byte [rbx + r14]
mov r14, rdi
je 0x180583420
jmp 0x1805833df
mov rax, qword [rsp + 0xc0]
cmp rax, rcx
jae 0x180583a3b
mov rdi, qword [rsp + 0x108]
lea r14, [rdi + rdx]
lea r13, [rax + rdx]
xor edi, edi
cmp r11, rdi
je 0x180583833
mov rbp, rdx
lea rdx, [rdi + r13]
cmp rdx, r8
jae 0x180583a44
mov rax, qword [rsp + 0x38]
movzx edx, byte [rax + rdi]
lea rax, [rdi - 1]
cmp dl, byte [r14 + rdi]
mov rdi, rax
mov rdx, rbp
je 0x180583470
add rdx, qword [rsp + 0x100]
jmp 0x1805833dc
jne 0x180583a49
cmp r8, rdi
jne 0x1805835f8
mov rdx, r8
test al, al
jne 0x180583833
xor r13d, r13d
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0xd0]
jmp 0x1805834e4
cmp rbp, r13
jb 0x180583583
mov r8, rbp
sub r8, r13
lea rax, [rbx + r13]
cmp r8, 0xf
ja 0x180583510
cmp rbp, r13
je 0x180583583
xor edx, edx
nop
cmp byte [rax + rdx], 0x3a
je 0x180583520
inc rdx
cmp r8, rdx
jne 0x180583500
jmp 0x180583583
mov cl, 0x3a
mov rdx, rax
call fcn.180688b70
cmp rax, 1
jne 0x180583583
lea r9, [rdx + r13]
add r13, rdx
inc r13
cmp r9, rbp
jae 0x1805834db
cmp byte [rbx + r9], 0x3a
jne 0x1805834db
test r9, r9
mov rdi, r9
je 0x18058377d
cmp r9, rbp
ja 0x180583a98
test r9, r9
js 0x180583aa6
mov rcx, r9
movzx eax, byte [0x1807afe04]
mov ebp, 1
mov edx, 1
call fcn.1804caf90
test rax, rax
je 0x180583aa8
mov rcx, rax
mov rbp, qword [rsp + 0x40]
jmp 0x180583782
xor edi, edi
jmp 0x180583596
add rdi, rdx
inc rdi
cmp rbp, rdi
jb 0x18058365e
mov r8, rbp
sub r8, rdi
lea rax, [rbx + rdi]
cmp r8, 0xf
ja 0x1805835d3
cmp rbp, rdi
je 0x18058365e
xor edx, edx
nop word cs:[rax + rax]
cmp byte [rax + rdx], 0x3d
je 0x1805835e3
inc rdx
cmp r8, rdx
jne 0x1805835c0
jmp 0x18058365e
mov cl, 0x3d
mov rdx, rax
call fcn.180688b70
cmp rax, 1
jne 0x180583659
lea r13, [rdx + rdi]
cmp r13, rbp
jae 0x180583587
cmp byte [rbx + r13], 0x3d
jne 0x180583587
jmp 0x1805836d5
movzx edx, byte [rcx + r8]
test dl, dl
jns 0x180583828
mov r9d, edx
and r9d, 0x1f
movzx r11d, byte [rcx + r8 + 1]
and r11d, 0x3f
cmp dl, 0xe0
jb 0x18058376e
movzx r10d, byte [rcx + r8 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp dl, 0xf0
jb 0x18058381e
movzx edx, byte [rcx + r8 + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and edx, 0x3f
or edx, r10d
or edx, r9d
jmp 0x180583828
test rax, rax
jne 0x1805836d5
test rbp, rbp
js 0x180583a6e
je 0x180583691
movzx eax, byte [0x1807afe04]
mov r14d, 1
mov edx, 1
mov rcx, rbp
call fcn.1804caf90
test rax, rax
je 0x180583a71
mov rcx, rax
jmp 0x180583696
mov ecx, 1
mov rdx, rbx
mov r8, rbp
mov rdi, rcx
call fcn.1806a7400
mov r8, rdi
mov r14, rbp
shr r14, 0x20
movabs r13, 0x8000000000000000
or r13, 1
lea rbx, [rsp + 0xe0]
xor eax, eax
mov rdx, rbp
mov rdi, rbp
mov ecx, dword [rsp + 0x34]
jmp 0x18058394b
mov rcx, r13
mov rdx, rbx
mov r8, rbp
call fcn.18054b490
mov r8, rdx
lea rcx, [rsp + 0x50]
mov rdx, rax
call fcn.1804e6e90
mov r8, rbp
mov ebp, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
inc r13
sub r8, r13
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x38], rcx
jbe 0x180583735
cmp byte [rbx + r13], 0xbf
jg 0x180583737
mov rcx, rbx
mov rdx, qword [rsp + 0x40]
mov r8, r13
mov r9, rdx
call fcn.18063bc30
jne 0x180583722
add rbx, r13
lea rcx, [rsp + 0x50]
mov rdx, rbx
call fcn.1804e6e90
mov r13, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
lea rbx, [rsp + 0xe0]
xor eax, eax
mov ecx, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x48]
jmp 0x180583946
shl r9d, 6
or r9d, r11d
mov edx, r9d
jmp 0x180583828
mov ecx, 1
mov qword [rsp + 0x38], rcx
mov rdx, rbx
mov r8, rdi
call fcn.1806a7400
cmp rbp, r13
jbe 0x1805837af
cmp byte [rbx + r13], 0xbf
jg 0x1805837b1
mov rcx, rbx
mov rdx, rbp
mov r8, r13
mov r9, rbp
call fcn.18063bc30
jne 0x18058379e
sub rbp, r13
js 0x180583a6e
je 0x1805837e7
movzx eax, byte [0x1807afe04]
mov r14d, 1
mov edx, 1
mov rcx, rbp
call fcn.1804caf90
test rax, rax
je 0x180583a71
mov rcx, rax
mov r14, rdi
jmp 0x1805837ef
mov r14, rdi
mov ecx, 1
shr r14, 0x20
add rbx, r13
mov rdx, rbx
mov r8, rbp
mov rbx, rcx
call fcn.1806a7400
mov r9, rbx
mov rdx, rdi
mov al, 1
lea rbx, [rsp + 0xe0]
mov rdi, rbp
mov ebp, edx
jmp 0x18058393f
shl r9d, 0xc
or r10d, r9d
mov edx, r10d
test al, al
je 0x1805839dd
mov rdx, r8
test rdx, rdx
mov rbp, rdx
je 0x180583864
mov rdi, qword [rsp + 0x40]
cmp rdx, rdi
mov rbx, qword [rsp + 0xd0]
jae 0x180583878
cmp byte [rbx + rdx], 0xbf
jg 0x18058387a
mov rcx, rbx
mov r9, rdx
mov rdx, rdi
xor r8d, r8d
call fcn.18063bc30
mov ecx, 1
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0xd0]
jmp 0x1805838a9
jne 0x180583853
test rdx, rdx
js 0x180583a8a
mov rcx, rdx
movzx eax, byte [0x1807afe04]
mov r13d, 1
mov edx, 1
call fcn.1804caf90
test rax, rax
je 0x180583a8d
mov rcx, rax
mov qword [rsp + 0x38], rcx
mov rdx, rbx
mov r14, rbp
mov r8, rbp
call fcn.1806a7400
lea r13, [rbp + 2]
cmp rdi, r13
jbe 0x1805838dd
cmp byte [rbx + r13], 0xbf
jg 0x1805838df
mov rcx, rbx
mov rdx, rdi
mov r8, r13
mov r9, rdi
call fcn.18063bc30
jne 0x1805838cc
sub rdi, r13
js 0x180583a7c
je 0x180583915
movzx eax, byte [0x1807afe04]
mov r14d, 1
mov edx, 1
mov rcx, rdi
call fcn.1804caf90
test rax, rax
je 0x180583a7f
mov rcx, rax
mov r14, rbp
jmp 0x18058391a
mov ecx, 1
shr r14, 0x20
add rbx, r13
mov rdx, rbx
mov r8, rdi
mov rbx, rcx
call fcn.1806a7400
mov r9, rbx
mov rdx, rbp
mov al, 2
lea rbx, [rsp + 0xe0]
mov r13, rdi
mov ecx, dword [rsp + 0x34]
mov r8, qword [rsp + 0x38]
cmp ecx, 0x50
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x140], rcx
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x130], xmm0
mov qword [rsp + 0x60], rcx
movaps xmmword [rsp + 0x50], xmm0
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x78], rcx
movups xmm1, xmmword [r15]
movups xmmword [rsp + 0x68], xmm1
movups xmmword [rsi + 0x40], xmm0
mov rcx, qword [rsp + 0x70]
mov qword [rsi + 0x60], rcx
mov rcx, qword [rsp + 0x78]
mov qword [rsi + 0x68], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsi + 0x50], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rsi + 0x58], rcx
mov dword [rsi + 8], ebp
mov dword [rsi + 0xc], r14d
mov qword [rsi + 0x10], r8
mov qword [rsi + 0x18], rdx
mov qword [rsi + 0x20], r13
mov qword [rsi + 0x28], r9
mov qword [rsi + 0x30], rdi
mov byte [rsi + 0x38], al
sete byte [rsi + 0x70]
movabs rax, 0x8000000000000000
mov qword [rsi], rax
jmp 0x180582afc
mov eax, 1
cmp edx, 0x80
jb 0x180583a06
mov eax, 2
cmp edx, 0x800
jb 0x180583a06
cmp edx, 0x10000
mov eax, 4
sbb rax, 0
add r8, rax
mov rdx, rdi
je 0x180583a1e
cmp r8, rdx
jae 0x180583a1c
cmp byte [rcx + r8], 0xbf
jg 0x180583a1e
jmp 0x180583a49
jne 0x180583a49
cmp r8, rdx
je 0x180583833
movzx eax, byte [rcx + r8]
test al, al
jns 0x180583830
cmp al, 0xe0
jmp 0x180583830
test r10, r10
je 0x180583833
ud2
mov rcx, rbx
mov rdx, rdi
mov r9, rdi
call fcn.18063bc30
lea rcx, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001f_regex_syntax_0.8.5_src_astparse.rs
call fcn.18063bc30
xor r15d, r15d
mov rcx, r15
mov rdx, rdi
call fcn.18063bc30
xor r14d, r14d
mov rcx, r14
mov rdx, rbp
call fcn.18063bc30
xor r14d, r14d
mov rcx, r14
mov rdx, rdi
call fcn.18063bc30
xor r13d, r13d
mov rcx, r13
mov rdx, rbp
call fcn.18063bc30
mov rcx, rbx
mov rdx, rbp
xor r8d, r8d
call fcn.18063bc30
xor ebp, ebp
mov rcx, rbp
mov rdx, rdi
call fcn.18063bc30
int3