Function at 0x1400c2c30
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
mov r14, rdx
mov rsi, rcx
mov r12, qword [rdx]
mov rdi, qword [rdx + 8]
mov rax, qword [r12 + 0xa0]
mov rbx, qword [rdx + 0x10]
test rax, rax
je 0x1400c2c77
cmp rax, rbx
jae 0x1400c2c71
cmp byte [rdi + rax], 0xc0
jge 0x1400c2c77
jmp 0x1400c3f9a
jne 0x1400c3f9a
cmp rax, rbx
je 0x1400c3f9a
movzx ecx, byte [rdi + rax]
mov r8d, ecx
test cl, cl
jns 0x1400c2ce4
mov edx, ecx
and edx, 0x1f
movzx r8d, byte [rdi + rax + 1]
and r8d, 0x3f
cmp cl, 0xdf
jbe 0x1400c2d5f
movzx r9d, byte [rdi + rax + 2]
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
cmp cl, 0xf0
jb 0x1400c2d73
movzx r8d, byte [rdi + rax + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
or r8d, edx
cmp r8d, 0x110000
je 0x1400c3f9a
cmp r8d, 0x70
je 0x1400c2d99
test rax, rax
je 0x1400c2d05
cmp rax, rbx
jae 0x1400c3f9a
cmp cl, 0xbf
jle 0x1400c3f9a
test cl, cl
jns 0x1400c2d90
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rdi + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x1400c2d88
movzx r8d, byte [rdi + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x1400c3072
movzx ecx, byte [rdi + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x1400c2d90
jmp 0x1400c3f9a
shl edx, 6
or edx, r8d
mov r8d, edx
cmp r8d, 0x70
je 0x1400c2d99
jmp 0x1400c2cee
shl edx, 0xc
or r9d, edx
mov r8d, r9d
cmp r8d, 0x70
jne 0x1400c2cee
jmp 0x1400c2d99
shl edx, 6
or edx, r9d
mov ecx, edx
cmp ecx, 0x50
jne 0x1400c3f9a
cmp qword [r12 + 0x80], 0
jne 0x1400c3f9a
mov qword [r12 + 0x80], 0xffffffffffffffff
mov qword [r12 + 0x98], 0
test rax, rax
je 0x1400c2de4
cmp rax, rbx
jae 0x1400c3f9a
movzx edx, byte [rdi + rax]
cmp dl, 0xbf
jle 0x1400c3f9a
test dl, dl
js 0x1400c2dec
movzx ebp, dl
jmp 0x1400c2e50
movzx edx, byte [rdi + rax]
test dl, dl
jns 0x1400c2ddf
mov ecx, edx
and cl, 0x1f
movzx ecx, cl
movzx r9d, byte [rdi + rax + 1]
and r9d, 0x3f
cmp dl, 0xdf
jbe 0x1400c2e3d
movzx r8d, byte [rdi + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp dl, 0xf0
jb 0x1400c2e47
movzx ebp, byte [rdi + rax + 3]
and ecx, 7
shl ecx, 0x12
shl r8d, 6
and ebp, 0x3f
or ebp, r8d
or ebp, ecx
cmp ebp, 0x110000
jne 0x1400c2e50
jmp 0x1400c3f9a
shl ecx, 6
or ecx, r9d
mov ebp, ecx
jmp 0x1400c2e50
shl ecx, 0xc
or r8d, ecx
mov ebp, r8d
lea r15, [r12 + 0xa0]
mov rcx, r14
call fcn.1400b6280
test al, al
je 0x1400c2e78
mov rcx, r14
call fcn.1400b5550
mov r13, qword [r15]
cmp r13, rbx
jne 0x1400c2f6d
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x80], rax
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x70], xmm0
movdqu xmm0, xmmword [r15]
movdqu xmmword [rsp + 0x88], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x98], rax
test rbx, rbx
je 0x1400c2ed3
js 0x1400c3f9a
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, rbx
call fcn.1400dee70
mov r14, rax
mov r15, rbx
test rax, rax
jne 0x1400c2edc
jmp 0x1400c3f9a
mov r14d, 1
xor r15d, r15d
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmm2, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0x100], xmm1
movaps xmmword [rsp + 0x110], xmm2
mov qword [rsi], r15
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
mov dword [rsi + 0x18], 0xa
movaps xmm0, xmmword [rsp + 0xf0]
movdqa xmm1, xmmword [rsp + 0x100]
movdqa xmm2, xmmword [rsp + 0x110]
movups xmmword [rsi + 0x50], xmm0
movdqu xmmword [rsi + 0x60], xmm1
movdqu xmmword [rsi + 0x70], xmm2
inc qword [r12 + 0x80]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0xe0], ebp
test r13, r13
je 0x1400c2f8d
cmp r13, rbx
jae 0x1400c3f9a
cmp byte [rdi + r13], 0xc0
jl 0x1400c3f9a
movzx ebp, byte [rdi + r13]
mov ecx, ebp
test bpl, bpl
jns 0x1400c2feb
mov eax, ebp
and eax, 0x1f
movzx ecx, byte [rdi + r13 + 1]
and ecx, 0x3f
cmp bpl, 0xdf
jbe 0x1400c3089
movzx edx, byte [rdi + r13 + 2]
shl ecx, 6
and edx, 0x3f
or edx, ecx
cmp bpl, 0xf0
jb 0x1400c3117
movzx ecx, byte [rdi + r13 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or ecx, eax
cmp ecx, 0x110000
je 0x1400c3f9a
cmp ecx, 0x7b
jne 0x1400c3099
test r13, r13
je 0x1400c300c
cmp r13, rbx
jae 0x1400c3f9a
cmp bpl, 0xbf
jle 0x1400c3f9a
mov r10d, 1
test bpl, bpl
jns 0x1400c31f3
mov eax, ebp
and eax, 0x1f
movzx ecx, byte [rdi + r13 + 1]
and ecx, 0x3f
cmp bpl, 0xe0
jb 0x1400c312c
movzx edx, byte [rdi + r13 + 2]
shl ecx, 6
and edx, 0x3f
or edx, ecx
cmp bpl, 0xf0
jb 0x1400c31c6
movzx ecx, byte [rdi + r13 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or ecx, eax
cmp ecx, 0x110000
jne 0x1400c31cd
jmp 0x1400c3f9a
shl edx, 0xc
or r8d, edx
mov ecx, r8d
cmp ecx, 0x50
je 0x1400c2d99
jmp 0x1400c3f9a
shl eax, 6
or eax, ecx
mov ecx, eax
cmp ecx, 0x7b
je 0x1400c2ff4
mov r9, qword [r12 + 0xa8]
mov r8, qword [r12 + 0xb0]
test r13, r13
je 0x1400c30c1
cmp r13, rbx
jae 0x1400c3f9a
cmp bpl, 0xbf
jle 0x1400c3f9a
mov edx, ebp
test bpl, bpl
jns 0x1400c313f
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rdi + r13 + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x1400c3138
movzx ecx, byte [rdi + r13 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x1400c328f
movzx edx, byte [rdi + r13 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and edx, 0x3f
or edx, ecx
or edx, eax
cmp edx, 0x110000
jne 0x1400c313f
jmp 0x1400c3f9a
shl eax, 0xc
or edx, eax
mov ecx, edx
cmp ecx, 0x7b
je 0x1400c2ff4
jmp 0x1400c3099
shl eax, 6
or eax, ecx
mov ecx, eax
jmp 0x1400c31cd
shl eax, 6
or eax, edx
mov edx, eax
cmp edx, 0x5c
jne 0x1400c329f
test r13, r13
je 0x1400c3160
cmp r13, rbx
jae 0x1400c3f9a
cmp bpl, 0xbf
jle 0x1400c3f9a
mov r10d, 1
test bpl, bpl
jns 0x1400c3698
mov eax, ebp
and eax, 0x1f
movzx ecx, byte [rdi + r13 + 1]
and ecx, 0x3f
cmp bpl, 0xe0
jb 0x1400c32ce
movzx edx, byte [rdi + r13 + 2]
shl ecx, 6
and edx, 0x3f
or edx, ecx
cmp bpl, 0xf0
jb 0x1400c366b
movzx ecx, byte [rdi + r13 + 3]
and eax, 7
shl eax, 0x12
shl edx, 6
and ecx, 0x3f
or ecx, edx
or ecx, eax
cmp ecx, 0x110000
jne 0x1400c3672
jmp 0x1400c3f9a
shl eax, 0xc
or edx, eax
mov ecx, edx
cmp ecx, 0x80
jb 0x1400c31f3
mov r10d, 2
cmp ecx, 0x800
jb 0x1400c31f3
cmp ecx, 0x10000
mov r10d, 4
sbb r10, 0
add r10, r13
jb 0x1400c3f9a
mov r8, qword [r12 + 0xb0]
inc r8
je 0x1400c3f9a
mov r9, qword [r12 + 0xa8]
test r13, r13
je 0x1400c322d
cmp r13, rbx
jae 0x1400c3f9a
cmp bpl, 0xbf
jle 0x1400c3f9a
test bpl, bpl
mov qword [rsp + 0x58], r10
jns 0x1400c32e1
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rdi + r13 + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x1400c3286
movzx ecx, byte [rdi + r13 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x1400c32da
movzx ebp, byte [rdi + r13 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebp, 0x3f
or ebp, ecx
or ebp, eax
cmp ebp, 0x110000
jne 0x1400c32e1
jmp 0x1400c3f9a
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x1400c32e1
shl eax, 0xc
or ecx, eax
mov edx, ecx
cmp edx, 0x5c
je 0x1400c3148
mov rbx, rdx
mov rdi, r9
mov rbp, r8
mov rcx, r14
call fcn.1400b6280
test al, al
je 0x1400c32bc
mov rcx, r14
call fcn.1400b5550
mov rcx, r13
movabs r9, 0x8000000000000000
jmp 0x1400c3fe4
shl eax, 6
or eax, ecx
mov ecx, eax
jmp 0x1400c3672
shl eax, 0xc
or ecx, eax
mov ebp, ecx
lea r13, [r12 + 0x88]
xor eax, eax
cmp ebp, 0xa
sete al
mov ecx, 1
cmove r8, rcx
mov qword [rsp + 0x68], r8
add r9, rax
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x28], rsi
mov rcx, r14
call fcn.1400b6280
test al, al
jne 0x1400c33d4
mov rax, qword [r15]
cmp rax, rbx
je 0x1400c2e78
test rax, rax
je 0x1400c3340
cmp rax, rbx
jae 0x1400c3f9a
cmp byte [rdi + rax], 0xc0
jl 0x1400c3f9a
movzx ecx, byte [rdi + rax]
test cl, cl
jns 0x1400c3814
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rdi + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x1400c365e
movzx r8d, byte [rdi + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x1400c380b
movzx ecx, byte [rdi + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x1400c3814
jmp 0x1400c3f9a
mov rax, qword [r12 + 0x90]
mov byte [rax + rdx], bpl
inc qword [r12 + 0x98]
mov rcx, r14
call fcn.1400b6280
test al, al
je 0x1400c331c
mov rcx, r14
call fcn.1400b5550
mov rax, qword [r15]
cmp rax, rbx
je 0x1400c331f
test rax, rax
je 0x1400c3400
cmp rax, rbx
jae 0x1400c3f9a
cmp byte [rdi + rax], 0xc0
jl 0x1400c3f9a
movzx ebp, byte [rdi + rax]
mov edx, ebp
test bpl, bpl
jns 0x1400c3470
mov ecx, ebp
and ecx, 0x1f
movzx edx, byte [rdi + rax + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x1400c345c
movzx r8d, byte [rdi + rax + 2]
shl edx, 6
and r8d, 0x3f
or r8d, edx
cmp bpl, 0xf0
jb 0x1400c3559
movzx edx, byte [rdi + rax + 3]
and ecx, 7
shl ecx, 0x12
shl r8d, 6
and edx, 0x3f
or edx, r8d
or edx, ecx
cmp edx, 0x110000
jne 0x1400c3470
jmp 0x1400c3f9a
shl ecx, 6
or ecx, edx
mov edx, ecx
nop word cs:[rax + rax]
cmp edx, 0x7d
je 0x1400c331f
test rax, rax
je 0x1400c3491
cmp rax, rbx
jae 0x1400c3f9a
cmp bpl, 0xbf
jle 0x1400c3f9a
test bpl, bpl
jns 0x1400c34ed
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rdi + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x1400c3518
movzx edx, byte [rdi + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x1400c3570
movzx ebp, byte [rdi + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
je 0x1400c3f9a
cmp ebp, 0x80
jae 0x1400c3528
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x88]
jne 0x1400c33b0
mov rcx, r13
call fcn.1400ed3c0
mov rdx, qword [r12 + 0x98]
jmp 0x1400c33b0
shl ecx, 6
or ecx, r8d
mov ebp, ecx
cmp ebp, 0x80
jb 0x1400c34ed
mov rsi, r15
mov dword [rsp + 0x70], 0
mov r15, r13
mov eax, ebp
cmp ebp, 0x800
jae 0x1400c3585
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x70], al
mov r13d, 2
mov eax, 1
jmp 0x1400c35de
shl ecx, 0xc
or r8d, ecx
mov edx, r8d
cmp edx, 0x7d
jne 0x1400c3479
jmp 0x1400c331f
shl ecx, 0xc
or edx, ecx
mov ebp, edx
cmp ebp, 0x80
jb 0x1400c34ed
jmp 0x1400c3528
cmp ebp, 0x10000
jae 0x1400c35b0
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x70], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x71], al
mov r13d, 3
mov eax, 2
jmp 0x1400c35de
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x70], al
mov eax, ebp
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x71], al
mov eax, ebp
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x72], al
mov r13d, 4
mov eax, 3
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + rax + 0x70], bpl
mov rax, qword [r12 + 0x88]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jb 0x1400c3646
mov rcx, qword [r12 + 0x90]
add rcx, rbp
lea rdx, [rsp + 0x70]
mov r8, r13
call sub.msvcrt.dll_memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov r13, r15
mov r15, rsi
mov rsi, qword [rsp + 0x28]
mov rcx, r14
call fcn.1400b6280
test al, al
jne 0x1400c33d4
jmp 0x1400c331c
mov rcx, r15
mov rdx, rbp
mov r8, r13
call fcn.14003eb20
mov rbp, qword [r12 + 0x98]
jmp 0x1400c3603
shl edx, 6
or edx, r9d
mov ecx, edx
jmp 0x1400c3814
shl eax, 0xc
or edx, eax
mov ecx, edx
cmp ecx, 0x80
jb 0x1400c3698
mov r10d, 2
cmp ecx, 0x800
jb 0x1400c3698
cmp ecx, 0x10000
mov r10d, 4
sbb r10, 0
add r10, r13
jb 0x1400c3f9a
inc r8
je 0x1400c3f9a
test r13, r13
je 0x1400c36c2
cmp r13, rbx
jae 0x1400c3f9a
cmp bpl, 0xbf
jle 0x1400c3f9a
test bpl, bpl
jns 0x1400c3722
mov eax, ebp
and eax, 0x1f
movzx edx, byte [rdi + r13 + 1]
and edx, 0x3f
cmp bpl, 0xdf
jbe 0x1400c3712
movzx ecx, byte [rdi + r13 + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bpl, 0xf0
jb 0x1400c371b
movzx ebp, byte [rdi + r13 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebp, 0x3f
or ebp, ecx
or ebp, eax
cmp ebp, 0x110000
jne 0x1400c3722
jmp 0x1400c3f9a
shl eax, 6
or eax, edx
mov ebp, eax
jmp 0x1400c3722
shl eax, 0xc
or ecx, eax
mov ebp, ecx
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x80], rax
movdqu xmm0, xmmword [r15]
movdqa xmmword [rsp + 0x70], xmm0
mov r15d, 1
test rbx, rbx
mov qword [rsp + 0xe0], r10
je 0x1400c377f
js 0x1400c3f9a
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, rbx
mov r14, r8
mov r13, r9
call fcn.1400dee70
mov r9, r13
mov r8, r14
mov r14, rax
mov r13, rbx
test rax, rax
jne 0x1400c3788
jmp 0x1400c3f9a
xor r13d, r13d
mov r14d, 1
xor eax, eax
cmp ebp, 0xa
sete al
cmove r8, r15
add r9, rax
mov rcx, r14
mov rdx, rdi
mov rdi, r8
mov r8, rbx
mov r15, r9
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0xf0], xmm0
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x100], rax
mov qword [rsi], r13
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
mov dword [rsi + 0x18], 0x1f
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rsi + 0x50], xmm0
mov rax, qword [rsp + 0x100]
mov qword [rsi + 0x60], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsi + 0x68], rax
mov qword [rsi + 0x70], r15
mov qword [rsi + 0x78], rdi
jmp 0x1400c2f51
shl edx, 0xc
or r8d, edx
mov ecx, r8d
cmp ecx, 0x7d
jne 0x1400c3f9a
mov rcx, r14
call fcn.1400b6280
mov rdx, qword [r12 + 0x90]
mov qword [rsp + 0x48], rdx
mov r8, qword [r12 + 0x98]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x20], 2
lea r9, [0x1418d5708]
lea rcx, [rsp + 0x70]
call fcn.14003c930
cmp qword [rsp + 0x70], 0
je 0x1400c3992
mov r13, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xd0]
lea rdx, [rcx - 1]
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xc8]
cmp r13, 0xffffffffffffffff
mov qword [rsp + 0x38], rdx
je 0x1400c39de
mov r14, qword [rsp + 0x98]
lea rbp, [r14 + rdx]
cmp rbp, r8
jae 0x1400c3cd2
mov r11, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x88]
mov r10, rcx
mov qword [rsp + 0x40], rdx
sub r10, rdx
mov qword [rsp + 0x50], r10
lea rdx, [rdi - 1]
mov qword [rsp + 0x28], rdx
movzx r10d, byte [rax + rbp]
bt r11, r10
jae 0x1400c392e
cmp rdi, r13
mov r10, r13
cmova r10, rdi
lea rbp, [rax + r14]
nop dword [rax]
cmp r10, rcx
jae 0x1400c3947
mov rbx, r10
add r10, r14
cmp r10, r8
jae 0x1400c3f9a
lea r10, [rbx + 1]
movzx edx, byte [r9 + rbx]
cmp dl, byte [rbp + rbx]
je 0x1400c3900
sub r14, rdi
add r14, rbx
inc r14
jmp 0x1400c3931
add r14, rcx
xor r13d, r13d
mov rdx, qword [rsp + 0x38]
lea rbp, [r14 + rdx]
cmp rbp, r8
jb 0x1400c38e3
jmp 0x1400c3cd2
mov rbx, qword [rsp + 0x28]
nop dword [rax]
lea r10, [rbx + 1]
cmp r13, r10
jae 0x1400c3ba9
cmp rbx, rcx
jae 0x1400c3f9a
lea r10, [r14 + rbx]
cmp r10, r8
jae 0x1400c3f9a
movzx r10d, byte [r9 + rbx]
lea rdx, [rbx - 1]
cmp r10b, byte [rbp + rbx]
mov rbx, rdx
je 0x1400c3950
add r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x50]
jmp 0x1400c3934
cmp byte [rsp + 0x8a], 0
jne 0x1400c3cd2
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xc0]
movzx edx, byte [rsp + 0x88]
test rcx, rcx
je 0x1400c3b21
cmp rcx, r14
jae 0x1400c3b1b
cmp byte [rax + rcx], 0xc0
jge 0x1400c3b21
jmp 0x1400c3f9a
mov r14, qword [rsp + 0x98]
lea rdi, [r14 + rdx]
cmp rdi, r8
jae 0x1400c3cd2
mov r11, qword [rsp + 0x90]
mov r13, qword [rsp + 0x78]
lea r10, [r13 - 1]
mov edx, 1
sub rdx, r13
mov qword [rsp + 0xe8], rdx
cmp r10, rcx
mov qword [rsp + 0x40], r11
jae 0x1400c41ff
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x128], rdx
lea rbp, [r9 + r10]
mov qword [rsp + 0x28], r10
lea rdx, [rax + r10]
mov qword [rsp + 0x130], rdx
mov r10, r13
neg r10
mov qword [rsp + 0x50], r13
jmp 0x1400c3a69
add r14, rcx
mov rdx, qword [rsp + 0x38]
lea rdi, [r14 + rdx]
cmp rdi, r8
jae 0x1400c3cd2
movzx edx, byte [rax + rdi]
bt r11, rdx
jae 0x1400c3a54
lea r11, [rax + r14]
nop word [rax + rax]
cmp rcx, r13
je 0x1400c3ab1
mov rdi, r13
lea rdx, [r14 + r13]
cmp rdx, r8
jae 0x1400c3f9a
lea r13, [rdi + 1]
movzx edx, byte [r9 + rdi]
cmp dl, byte [r11 + rdi]
je 0x1400c3a80
add r14, qword [rsp + 0xe8]
add r14, rdi
jmp 0x1400c3afa
mov rdx, qword [rsp + 0x130]
lea rdi, [rdx + r14]
mov rdx, qword [rsp + 0x28]
lea r11, [rdx + r14]
xor r13d, r13d
cmp r10, r13
je 0x1400c3ba9
lea rdx, [r11 + r13]
cmp rdx, r8
jae 0x1400c3f9a
movzx edx, byte [rbp + r13]
lea rbx, [r13 - 1]
cmp dl, byte [rdi + r13]
mov r13, rbx
je 0x1400c3ac9
add r14, qword [rsp + 0x128]
mov r13, qword [rsp + 0x50]
mov r11, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
lea rdi, [r14 + rdx]
cmp rdi, r8
jb 0x1400c3a69
jmp 0x1400c3cd2
jne 0x1400c3f9a
cmp rcx, r14
jne 0x1400c3b32
mov r14, rcx
test dl, dl
jne 0x1400c3ba9
jmp 0x1400c3cd2
movzx r8d, byte [rax + rcx]
test r8b, r8b
jns 0x1400c3b9e
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + rcx + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x1400c3b88
movzx r10d, byte [rax + rcx + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x1400c3b94
movzx r8d, byte [rax + rcx + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
jmp 0x1400c3b9e
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x1400c3b9e
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
test dl, dl
je 0x1400c3cc5
mov r14, rcx
test r14, r14
je 0x1400c3bc9
mov rdi, qword [rsp + 0x30]
cmp r14, rdi
mov rbx, qword [rsp + 0x48]
jae 0x1400c3be1
cmp byte [rbx + r14], 0xbf
jg 0x1400c3be7
jmp 0x1400c3f9a
mov ecx, 1
xor eax, eax
mov qword [rsp + 0x28], rax
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x48]
jmp 0x1400c3c12
jne 0x1400c3f9a
test r14, r14
js 0x1400c3f9a
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, r14
call fcn.1400dee70
mov rcx, rax
mov qword [rsp + 0x28], r14
test rax, rax
je 0x1400c3f9a
mov qword [rsp + 0x38], rcx
mov rdx, rbx
mov r8, r14
call sub.msvcrt.dll_memcpy
lea rbp, [r14 + 2]
cmp rdi, rbp
jbe 0x1400c3c36
cmp byte [rbx + rbp], 0xbf
jg 0x1400c3c3c
jmp 0x1400c3f9a
jne 0x1400c3f9a
sub rdi, rbp
mov r13, qword [rsp + 0x28]
je 0x1400c3c77
js 0x1400c3f9a
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, rdi
call fcn.1400dee70
mov r13, qword [rsp + 0x28]
mov rcx, rax
mov rax, rdi
mov qword [rsp + 0x30], rdi
test rcx, rcx
jne 0x1400c3c83
jmp 0x1400c3f9a
xor eax, eax
mov qword [rsp + 0x30], rax
mov ecx, 1
shr r13, 0x20
mov rdx, qword [rsp + 0x48]
add rdx, rbp
mov r8, rdi
mov rbx, rcx
call sub.msvcrt.dll_memcpy
mov r10, rbx
mov rbx, qword [rsp + 0x28]
mov al, 2
mov rbp, qword [rsp + 0x68]
mov rdx, rdi
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
jmp 0x1400c3fe4
cmp r8d, 0x110000
jne 0x1400c403c
movabs rax, 0x8080808080808080
mov dword [rsp + 0x90], 0x3a
mov cl, 0x3a
xor edx, edx
movdqa xmm1, xmmword [0x140111e70]
movdqa xmm0, xmmword [0x140111e80]
mov rbp, qword [rsp + 0x48]
mov r8, rbp
mov rdi, qword [rsp + 0x30]
mov r9, rdi
jmp 0x1400c3d1d
lea r8, [rdx + rbp]
mov r9, rdi
sub r9, rdx
jb 0x1400c3e3a
cmp r9, 0x10
jae 0x1400c3d48
cmp rdi, rdx
je 0x1400c3e3a
xor r14d, r14d
nop
cmp byte [r8 + r14], 0x3a
je 0x1400c3df4
inc r14
cmp r9, r14
jne 0x1400c3d30
jmp 0x1400c3e3a
lea r10, [r8 + 7]
and r10, 0xfffffffffffffff8
sub r10, r8
jne 0x1400c3d5e
lea r11, [r9 - 0x10]
xor r10d, r10d
jmp 0x1400c3d95
cmp r10, r9
cmovae r10, r9
xor r14d, r14d
nop dword [rax + rax]
cmp byte [r8 + r14], 0x3a
je 0x1400c3df4
inc r14
cmp r10, r14
jne 0x1400c3d70
lea r11, [r9 - 0x10]
nop word cs:[rax + rax]
cmp r10, r11
ja 0x1400c3dc4
movdqu xmm2, xmmword [r8 + r10]
movdqa xmm3, xmm2
pxor xmm3, xmm1
paddq xmm3, xmm0
pandn xmm2, xmm3
pshufd xmm3, xmm2, 0xee
por xmm3, xmm2
movq rdi, xmm3
test rdi, rax
jne 0x1400c3dc4
add r10, 0x10
jmp 0x1400c3d90
sub r9, r10
mov rdi, qword [rsp + 0x30]
je 0x1400c3e3a
add r8, r10
xor r14d, r14d
nop word cs:[rax + rax]
cmp byte [r8 + r14], 0x3a
je 0x1400c3df1
inc r14
cmp r9, r14
jne 0x1400c3de0
jmp 0x1400c3e3a
add r14, r10
add r14, rdx
mov rdx, r14
inc rdx
je 0x1400c3d0d
cmp rdi, rdx
jb 0x1400c3d0d
cmp byte [rbp + r14], cl
jne 0x1400c3d0d
test r14, r14
je 0x1400c409c
cmp r14, rdi
jae 0x1400c40b0
cmp byte [rbp + r14], 0xbf
jg 0x1400c40b9
jmp 0x1400c3f9a
mov dword [rsp + 0x90], 0x3d
mov cl, 0x3d
xor ebx, ebx
movdqa xmm1, xmmword [0x140111e90]
mov rdx, rbp
mov r9, rdi
jmp 0x1400c3e69
lea rdx, [rbx + rbp]
mov r9, rdi
sub r9, rbx
jb 0x1400c3f77
cmp r9, 0x10
jae 0x1400c3e98
cmp rdi, rbx
je 0x1400c3f77
xor r8d, r8d
nop dword [rax + rax]
cmp byte [rdx + r8], 0x3d
je 0x1400c3f34
inc r8
cmp r9, r8
jne 0x1400c3e80
jmp 0x1400c3f77
lea r10, [rdx + 7]
and r10, 0xfffffffffffffff8
sub r10, rdx
jne 0x1400c3eae
lea r8, [r9 - 0x10]
xor r10d, r10d
jmp 0x1400c3ee5
cmp r10, r9
cmovae r10, r9
xor r8d, r8d
nop dword [rax + rax]
cmp byte [rdx + r8], 0x3d
je 0x1400c3f34
inc r8
cmp r10, r8
jne 0x1400c3ec0
lea r8, [r9 - 0x10]
nop word cs:[rax + rax]
cmp r10, r8
ja 0x1400c3f14
movdqu xmm2, xmmword [rdx + r10]
movdqa xmm3, xmm2
pxor xmm3, xmm1
paddq xmm3, xmm0
pandn xmm2, xmm3
pshufd xmm3, xmm2, 0xee
por xmm3, xmm2
movq r11, xmm3
test r11, rax
jne 0x1400c3f14
add r10, 0x10
jmp 0x1400c3ee0
sub r9, r10
je 0x1400c3f77
add rdx, r10
xor r8d, r8d
nop
cmp byte [rdx + r8], 0x3d
je 0x1400c3f31
inc r8
cmp r9, r8
jne 0x1400c3f20
jmp 0x1400c3f77
add r8, r10
add r8, rbx
mov rbx, r8
inc rbx
je 0x1400c3e59
cmp rdi, rbx
jb 0x1400c3e59
cmp byte [rbp + r8], cl
jne 0x1400c3e59
test r8, r8
je 0x1400c4176
cmp r8, rdi
jae 0x1400c4170
cmp byte [rbp + r8], 0xbf
jg 0x1400c4176
jmp 0x1400c3f9a
test rdi, rdi
je 0x1400c3f9c
js 0x1400c3f9a
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, rdi
call fcn.1400dee70
mov rcx, rax
mov r14, rdi
test rax, rax
jne 0x1400c3fa4
ud2
mov ecx, 1
xor r14d, r14d
mov rdx, rbp
mov rbx, rcx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov r8, rbx
mov rbx, r14
mov r13, r14
shr r13, 0x20
movabs r9, 0x8000000000000000
or r9, 1
xor eax, eax
mov r14, rdi
mov rbp, qword [rsp + 0x68]
mov rdx, rdi
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
cmp dword [rsp + 0xe0], 0x50
mov dword [rsi + 8], ebx
mov dword [rsi + 0xc], r13d
mov qword [rsi + 0x10], r8
mov qword [rsi + 0x18], r14
mov qword [rsi + 0x20], r9
mov qword [rsi + 0x28], r10
mov qword [rsi + 0x30], rdx
mov byte [rsi + 0x38], al
mov qword [rsi + 0x40], rcx
mov qword [rsi + 0x48], rdi
mov qword [rsi + 0x50], rbp
movups xmm0, xmmword [r15]
movups xmmword [rsi + 0x58], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsi + 0x68], rax
sete byte [rsi + 0x70]
movabs rax, 0x8000000000000000
mov qword [rsi], rax
jmp 0x1400c2f51
mov edx, 1
cmp r8d, 0x80
jb 0x1400c4068
mov edx, 2
cmp r8d, 0x800
jb 0x1400c4068
cmp r8d, 0x10000
mov edx, 4
sbb rdx, 0
add rdx, rcx
je 0x1400c4083
cmp rdx, r14
jae 0x1400c407d
cmp byte [rax + rdx], 0xbf
jg 0x1400c4083
jmp 0x1400c3f9a
jne 0x1400c3f9a
cmp rdx, r14
je 0x1400c3ba9
movzx eax, byte [rax + rdx]
test al, al
js 0x1400c40a6
mov r14, rdx
jmp 0x1400c3ba9
mov ecx, 1
xor r14d, r14d
jmp 0x1400c40df
cmp al, 0xe0
mov r14, rdx
jmp 0x1400c3ba9
mov r14, rdi
jne 0x1400c3f9a
test r14, r14
js 0x1400c3f9a
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, r14
call fcn.1400dee70
mov rcx, rax
test rax, rax
je 0x1400c3f9a
mov qword [rsp + 0x38], rcx
mov rdx, rbp
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, rbp
lea rbp, [r14 + 1]
cmp rdi, rbp
jbe 0x1400c4106
cmp byte [rax + rbp], 0xbf
jg 0x1400c410c
jmp 0x1400c3f9a
jne 0x1400c3f9a
sub rdi, rbp
je 0x1400c413d
js 0x1400c3f9a
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, rdi
call fcn.1400dee70
mov rcx, rax
mov rax, rdi
mov qword [rsp + 0x30], rdi
test rcx, rcx
jne 0x1400c4149
jmp 0x1400c3f9a
xor eax, eax
mov qword [rsp + 0x30], rax
mov ecx, 1
mov r13, r14
shr r13, 0x20
mov rdx, qword [rsp + 0x48]
add rdx, rbp
mov r8, rdi
mov rbx, rcx
call sub.msvcrt.dll_memcpy
mov r10, rbx
mov al, 1
mov ebx, r14d
jmp 0x1400c3ca4
jne 0x1400c3f9a
lea rcx, [rsp + 0x70]
mov rdx, rbp
call fcn.1400bc100
mov ecx, dword [rsp + 0x70]
mov r13d, dword [rsp + 0x74]
mov rax, qword [rsp + 0x78]
mov r14, qword [rsp + 0x80]
sub rdi, rbx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rcx
jbe 0x1400c41b4
cmp byte [rbp + rbx], 0xbf
jg 0x1400c41ba
jmp 0x1400c3f9a
jne 0x1400c3f9a
add rbp, rbx
lea rcx, [rsp + 0x70]
mov rdx, rbp
mov r8, rdi
call fcn.1400bc100
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
xor eax, eax
mov rbp, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x28]
jmp 0x1400c3fe4
mov rsi, qword [rsp + 0x28]
movzx edx, byte [rax + rdi]
bt r11, rdx
jae 0x1400c4246
lea r11, [rax + r14]
mov rdi, r13
cmp rdi, rcx
jae 0x1400c4261
mov r10, rdi
lea rdx, [r14 + rdi]
cmp rdx, r8
jae 0x1400c3f9a
lea rdi, [r10 + 1]
movzx edx, byte [r9 + r10]
cmp dl, byte [r11 + r10]
je 0x1400c4215
add r14, qword [rsp + 0xe8]
add r14, r10
jmp 0x1400c4249
add r14, rcx
mov rdx, qword [rsp + 0x38]
lea rdi, [r14 + rdx]
cmp rdi, r8
mov r11, qword [rsp + 0x40]
jb 0x1400c4204
jmp 0x1400c3cd2
test r13, r13
mov rsi, qword [rsp + 0x28]
je 0x1400c3ba9
jmp 0x1400c3f9a