Function at 0x140114770
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
mov r14, rdx
mov rsi, rcx
mov r12, qword [rdx]
mov rbx, qword [rdx + 8]
mov rax, qword [r12 + 0xa0]
mov rdi, qword [rdx + 0x10]
mov rcx, rdi
test rax, rax
je 0x1401147bd
mov rcx, rdi
sub rcx, rax
jbe 0x1401147b7
cmp byte [rbx + rax], 0xc0
jge 0x1401147bd
jmp 0x140115cc4
jne 0x140115cc4
test rcx, rcx
je 0x140115cc4
movzx ecx, byte [rbx + rax]
mov r9d, ecx
test cl, cl
jns 0x140114830
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rbx + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x140114827
movzx r8d, byte [rbx + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x1401148b9
movzx r9d, byte [rbx + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and r9d, 0x3f
or r9d, r8d
or r9d, edx
cmp r9d, 0x110000
jne 0x140114830
jmp 0x140115cc4
shl edx, 6
or edx, r9d
mov r9d, edx
cmp r9d, 0x70
je 0x1401148df
mov rdx, rdi
test rax, rax
je 0x14011485a
mov rdx, rdi
sub rdx, rax
jbe 0x140114854
cmp cl, 0xc0
jge 0x14011485a
jmp 0x140115cc4
jne 0x140115cc4
test rdx, rdx
je 0x140115cc4
test cl, cl
jns 0x1401148d6
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rbx + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x1401148ce
movzx r8d, byte [rbx + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x140114b1f
movzx ecx, byte [rbx + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x1401148d6
jmp 0x140115cc4
shl edx, 0xc
or r8d, edx
mov r9d, r8d
cmp r9d, 0x70
jne 0x14011483a
jmp 0x1401148df
shl edx, 6
or edx, r9d
mov ecx, edx
cmp ecx, 0x50
jne 0x140115cc4
cmp qword [r12 + 0x80], 0
jne 0x140115cc4
mov qword [r12 + 0x80], 0xffffffffffffffff
mov qword [r12 + 0x98], 0
mov rcx, rdi
test rax, rax
je 0x140114927
mov rcx, rdi
sub rcx, rax
jbe 0x140114921
cmp byte [rbx + rax], 0xc0
jge 0x140114927
jmp 0x140115cc4
jne 0x140115cc4
test rcx, rcx
je 0x140115cc4
movzx ebp, byte [rbx + rax]
test bpl, bpl
jns 0x140114996
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140114985
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x14011498f
movzx ebp, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
jne 0x140114996
jmp 0x140115cc4
shl ecx, 6
or ecx, r8d
mov ebp, ecx
jmp 0x140114996
shl ecx, 0xc
or edx, ecx
mov ebp, edx
lea r15, [r12 + 0xa0]
mov rcx, r14
call fcn.140109810
test al, al
je 0x1401149be
mov rcx, r14
call fcn.1401088f0
mov rax, qword [r15]
cmp rdi, rax
jne 0x140114a90
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x78], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x68], xmm0
movdqu xmm0, xmmword [r15]
movdqa xmmword [rsp + 0x50], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x60], rax
test rdi, rdi
je 0x140114a31
js 0x140115cc4
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140114a1a
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140115cc4
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x140114a37
jmp 0x140115cc4
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movdqa xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movdqu xmmword [rsi + 0x70], xmm2
mov dword [rsi], 0xa
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], rdi
mov qword [rsi + 0x48], rdi
inc qword [r12 + 0x80]
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0xdc], ebp
mov rcx, rdi
test rax, rax
je 0x140114ab5
mov rcx, rdi
sub rcx, rax
jbe 0x140115cc4
cmp byte [rbx + rax], 0xc0
jl 0x140115cc4
test rcx, rcx
je 0x140115cc4
movzx ebp, byte [rbx + rax]
mov r8d, ebp
test bpl, bpl
jns 0x140114b3f
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140114b36
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140114fdd
movzx r8d, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r8d, 0x3f
or r8d, edx
or r8d, ecx
cmp r8d, 0x110000
jne 0x140114b3f
jmp 0x140115cc4
shl edx, 0xc
or r8d, edx
mov ecx, r8d
cmp ecx, 0x50
je 0x1401148df
jmp 0x140115cc4
shl ecx, 6
or ecx, r8d
mov r8d, ecx
cmp r8d, 0x7b
jne 0x140114fef
lea r13, [r12 + 0x88]
lea rcx, [rsp + 0x50]
mov rdx, r14
call fcn.140109650
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x120], rax
movdqu xmm0, xmmword [rsp + 0x68]
movdqa xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x108], r15
mov rcx, r14
call fcn.140109810
test al, al
jne 0x140114c54
mov rax, qword [r15]
cmp rdi, rax
jne 0x140114ef2
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x178], rax
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x168], xmm0
movdqu xmm0, xmmword [r15]
movdqa xmmword [rsp + 0x150], xmm0
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x160], rax
test rdi, rdi
je 0x140114f79
js 0x140115cc4
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140114c0a
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140115cc4
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x140114f7f
jmp 0x140115cc4
mov rax, qword [r12 + 0x88]
mov byte [rax + rdx], bpl
inc qword [r12 + 0x98]
mov rcx, r14
call fcn.140109810
test al, al
je 0x140114b92
mov rcx, r14
call fcn.1401088f0
mov rax, qword [r15]
cmp rdi, rax
je 0x140114b9e
mov rcx, rdi
test rax, rax
je 0x140114c86
mov rcx, rdi
sub rcx, rax
jbe 0x140115cc4
cmp byte [rbx + rax], 0xc0
jl 0x140115cc4
test rcx, rcx
je 0x140115cc4
movzx ebp, byte [rbx + rax]
mov r8d, ebp
test bpl, bpl
jns 0x140114d00
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140114cf0
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140114dbd
movzx r8d, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r8d, 0x3f
or r8d, edx
or r8d, ecx
cmp r8d, 0x110000
jne 0x140114d00
jmp 0x140115cc4
shl ecx, 6
or ecx, r8d
mov r8d, ecx
nop dword [rax]
cmp r8d, 0x7d
je 0x140114b95
mov rcx, rdi
test rax, rax
je 0x140114d28
mov rcx, rdi
sub rcx, rax
jbe 0x140115cc4
cmp bpl, 0xc0
jl 0x140115cc4
test rcx, rcx
je 0x140115cc4
test bpl, bpl
jns 0x140114d92
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140114d82
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140114dd4
movzx ebp, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
jne 0x140114d8a
jmp 0x140115cc4
shl ecx, 6
or ecx, r8d
mov ebp, ecx
cmp ebp, 0x80
jae 0x140114de3
mov rdx, qword [r12 + 0x98]
cmp rdx, qword [r12 + 0x90]
jne 0x140114c30
mov rcx, r13
call fcn.1401b5b60
mov rdx, qword [r12 + 0x98]
jmp 0x140114c30
shl ecx, 0xc
or edx, ecx
mov r8d, edx
cmp r8d, 0x7d
jne 0x140114d0a
jmp 0x140114b95
shl ecx, 0xc
or edx, ecx
mov ebp, edx
cmp ebp, 0x80
jb 0x140114d92
mov dword [rsp + 0x50], 0
mov r15, r13
mov eax, ebp
cmp ebp, 0x800
jae 0x140114e16
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 0x140114e7f
cmp ebp, 0x10000
jae 0x140114e49
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 0x140114e7f
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 + 0x90]
mov rbp, qword [r12 + 0x98]
sub rax, rbp
cmp rax, r13
jb 0x140114eda
mov rcx, qword [r12 + 0x88]
add rcx, rbp
lea rdx, [rsp + 0x50]
mov r8, r13
call sub.msvcrt.dll_memcpy
add rbp, r13
mov qword [r12 + 0x98], rbp
mov r13, r15
mov r15, qword [rsp + 0x108]
mov rcx, r14
call fcn.140109810
test al, al
jne 0x140114c54
jmp 0x140114b92
mov rcx, r15
mov rdx, rbp
mov r8, r13
call fcn.140089e50
mov rbp, qword [r12 + 0x98]
jmp 0x140114e97
test rax, rax
je 0x140114f0a
sub rdi, rax
jbe 0x140115cc4
cmp byte [rbx + rax], 0xc0
jl 0x140115cc4
test rdi, rdi
je 0x140115cc4
movzx ecx, byte [rbx + rax]
test cl, cl
jns 0x140115196
mov edx, ecx
and edx, 0x1f
movzx r9d, byte [rbx + rax + 1]
and r9d, 0x3f
cmp cl, 0xdf
jbe 0x140115183
movzx r8d, byte [rbx + rax + 2]
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
cmp cl, 0xf0
jb 0x14011518d
movzx ecx, byte [rbx + rax + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, edx
cmp ecx, 0x110000
jne 0x140115196
jmp 0x140115cc4
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 4], xmm0
movups xmmword [rsi + 0x14], xmm1
movups xmmword [rsi + 0x24], xmm2
mov eax, dword [rsp + 0x80]
mov dword [rsi + 0x34], eax
movaps xmm0, xmmword [rsp + 0x150]
movaps xmm1, xmmword [rsp + 0x160]
movdqa xmm2, xmmword [rsp + 0x170]
movdqu xmmword [rsi + 0x70], xmm2
movups xmmword [rsi + 0x60], xmm1
movups xmmword [rsi + 0x50], xmm0
jmp 0x140114a62
shl ecx, 0xc
or edx, ecx
mov r8d, edx
cmp r8d, 0x7b
je 0x140114b49
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x140], rcx
movdqu xmm0, xmmword [r15]
movdqa xmmword [rsp + 0x130], xmm0
mov rcx, rdi
test rax, rax
je 0x140115027
mov rcx, rdi
sub rcx, rax
jbe 0x140115cc4
cmp bpl, 0xc0
jl 0x140115cc4
test rcx, rcx
je 0x140115cc4
test bpl, bpl
jns 0x14011508d
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [rbx + rax + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140115085
movzx edx, byte [rbx + rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140115138
movzx ebp, byte [rbx + rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0x110000
jne 0x14011508d
jmp 0x140115cc4
shl ecx, 6
or ecx, r8d
mov ebp, ecx
cmp ebp, 0x5c
jne 0x140115148
lea rcx, [rsp + 0x50]
mov rdx, r14
call fcn.140109650
test rdi, rdi
je 0x1401150f0
js 0x140115cc4
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x1401150d9
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140115cc4
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
mov r14, rax
test rax, rax
jne 0x1401150f6
jmp 0x140115cc4
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov dword [rsi], 0x1f
mov qword [rsi + 0x38], r14
mov qword [rsi + 0x40], rdi
mov qword [rsi + 0x48], rdi
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movdqu xmm2, xmmword [rsp + 0x70]
movups xmmword [rsi + 0x50], xmm0
movups xmmword [rsi + 0x60], xmm1
movdqu xmmword [rsi + 0x70], xmm2
jmp 0x140114a74
shl ecx, 0xc
or edx, ecx
mov ebp, edx
cmp ebp, 0x5c
je 0x140115096
mov rcx, r14
call fcn.140109810
test al, al
je 0x14011515c
mov rcx, r14
call fcn.1401088f0
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0xf0], rax
movaps xmm0, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0xe0], xmm0
xor eax, eax
jmp 0x140115aae
shl edx, 6
or edx, r9d
mov ecx, edx
jmp 0x140115196
shl edx, 0xc
or r8d, edx
mov ecx, r8d
cmp ecx, 0x7d
jne 0x140115cc4
mov rcx, r14
call fcn.140109810
mov rdx, qword [r12 + 0x88]
mov rdi, qword [r12 + 0x98]
mov qword [rsp + 0x20], 2
lea r9, str.__________P____startendstart_halfend_half__:_
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x30], rdx
mov r8, rdi
call fcn.14003cdb0
cmp qword [rsp + 0x50], 0
mov qword [rsp + 0x40], rdi
je 0x140115367
mov rbx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xb0]
lea rdx, [rcx - 1]
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0xa8]
cmp rbx, 0xffffffffffffffff
mov qword [rsp + 0x28], rdx
je 0x1401153b4
mov rbp, qword [rsp + 0x78]
add rdx, rbp
cmp rdx, r8
jae 0x14011571f
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
mov r14, rcx
mov qword [rsp + 0x48], rdi
sub r14, rdi
mov qword [rsp + 0xc0], r14
lea rdi, [rcx + rcx*2]
dec rdi
mov qword [rsp + 0xb8], rdi
lea rdi, [r11 - 1]
mov qword [rsp + 0x38], rdi
movzx edx, byte [rax + rdx]
bt r10, rdx
jae 0x14011527f
mov r14, rbp
jmp 0x1401152c1
lea r14, [rcx + rbp]
mov rdx, qword [rsp + 0x28]
add rdx, r14
cmp rdx, r8
jae 0x14011571f
movzx edx, byte [rax + rdx]
bt r10, rdx
jb 0x1401152bf
add rbp, qword [rsp + 0xb8]
cmp rbp, r8
jae 0x14011571f
add r14, rcx
movzx edx, byte [rax + rbp]
add rbp, rcx
bt r10, rdx
jae 0x1401152a6
xor ebx, ebx
cmp r11, rbx
mov rdx, rbx
cmova rdx, r11
cmp rdx, rcx
jae 0x1401152f5
lea rbp, [rax + r14]
lea rdi, [r14 + rdx]
cmp rdi, r8
jae 0x140115cc4
movzx edi, byte [r9 + rdx]
cmp dil, byte [rbp + rdx]
jne 0x140115345
inc rdx
cmp rcx, rdx
jne 0x1401152d4
lea rdx, [rax + r14]
mov rbp, qword [rsp + 0x38]
lea rdi, [rbp + 1]
cmp rbx, rdi
jae 0x140115667
cmp rbp, rcx
jae 0x140115cc4
lea rdi, [r14 + rbp]
cmp rdi, r8
jae 0x140115cc4
movzx edi, byte [r9 + rbp]
lea r13, [rbp - 1]
cmp dil, byte [rdx + rbp]
mov rbp, r13
je 0x1401152fe
add r14, qword [rsp + 0x48]
mov rbx, qword [rsp + 0xc0]
mov rbp, r14
jmp 0x140115351
sub r14, r11
lea rbp, [r14 + rdx]
inc rbp
xor ebx, ebx
mov rdx, qword [rsp + 0x28]
add rdx, rbp
cmp rdx, r8
jb 0x140115270
jmp 0x14011571f
cmp byte [rsp + 0x6a], 0
jne 0x14011571f
mov r14, qword [rsp + 0x58]
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
movzx edx, byte [rsp + 0x68]
mov r8, rcx
test r14, r14
je 0x1401155e5
mov r8, rcx
sub r8, r14
jbe 0x1401155df
cmp byte [rax + r14], 0xc0
jge 0x1401155e5
jmp 0x140115cc4
mov r14, qword [rsp + 0x78]
add rdx, r14
cmp rdx, r8
jae 0x14011571f
mov r11, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0xb8], r10
lea r10, [rbx - 1]
cmp rbx, rcx
mov qword [rsp + 0x48], r11
mov qword [rsp + 0xc0], r10
jae 0x14011550d
lea rdi, [rcx*2 - 1]
lea r13, [rax + rcx*2]
dec r13
lea rbp, [r9 + r10]
mov qword [rsp + 0x38], rbp
add r10, rax
mov qword [rsp + 0x100], r10
mov r10, rbx
neg r10
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xc8], r13
movzx edx, byte [rax + rdx]
bt r11, rdx
jb 0x140115455
lea rdx, [rdi + r14]
cmp rdx, r8
jae 0x14011571f
movzx edx, byte [r13 + r14]
add r14, rcx
bt r11, rdx
jae 0x140115439
lea rbp, [rax + r14]
mov rdx, rbx
lea r13, [r14 + rdx]
cmp r13, r8
jae 0x140115cc4
movzx r13d, byte [r9 + rdx]
cmp r13b, byte [rbp + rdx]
jne 0x1401154d9
inc rdx
cmp rcx, rdx
jne 0x14011545c
mov r11, qword [rsp + 0xc0]
cmp r11, rcx
jae 0x140115cbb
mov rdx, qword [rsp + 0x100]
add rdx, r14
lea rbp, [r11 + r14]
xor r13d, r13d
cmp r10, r13
je 0x140115667
mov rdi, rbp
add rdi, r13
cmp rdi, r8
jae 0x140115cc4
mov r11, qword [rsp + 0x38]
movzx edi, byte [r11 + r13]
lea r11, [r13 - 1]
cmp dil, byte [rdx + r13]
mov r13, r11
je 0x1401154a0
add r14, qword [rsp + 0xb8]
jmp 0x1401154e2
sub r14, rbx
add r14, rdx
inc r14
mov rdx, qword [rsp + 0x28]
add rdx, r14
cmp rdx, r8
mov r11, qword [rsp + 0x48]
mov rdi, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xc8]
jb 0x14011542f
jmp 0x14011571f
cmp r10, rcx
jae 0x140115c7a
lea rdi, [rcx*2 - 1]
lea r13, [rax + rcx*2]
dec r13
add r9, r10
lea rbp, [rax + r10]
neg rbx
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xc8], rbp
movzx edx, byte [rax + rdx]
bt r11, rdx
jb 0x14011556a
lea rdx, [rdi + r14]
cmp rdx, r8
jae 0x14011571f
movzx edx, byte [r13 + r14]
add r14, rcx
bt r11, rdx
jae 0x14011554e
lea rdx, [r14 + rbp]
lea rbp, [r10 + r14]
xor r13d, r13d
cmp rbx, r13
je 0x140115667
mov rdi, rbp
add rdi, r13
cmp rdi, r8
jae 0x140115cc4
movzx edi, byte [r9 + r13]
lea r10, [r13 - 1]
cmp dil, byte [rdx + r13]
mov r13, r10
je 0x140115575
add r14, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x28]
add rdx, r14
cmp rdx, r8
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x38]
mov r13, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
jb 0x140115544
jmp 0x14011571f
jne 0x140115cc4
test r8, r8
je 0x140115640
movzx r8d, byte [rax + r14]
test r8b, r8b
jns 0x14011565f
mov r9d, r8d
and r9d, 0x1f
movzx r11d, byte [rax + r14 + 1]
and r11d, 0x3f
cmp r8b, 0xe0
jb 0x140115649
movzx r10d, byte [rax + r14 + 2]
shl r11d, 6
and r10d, 0x3f
or r10d, r11d
cmp r8b, 0xf0
jb 0x140115655
movzx r8d, byte [rax + r14 + 3]
and r9d, 7
shl r9d, 0x12
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, r9d
jmp 0x14011565f
test dl, dl
jne 0x140115667
jmp 0x14011571f
shl r9d, 6
or r9d, r11d
mov r8d, r9d
jmp 0x14011565f
shl r9d, 0xc
or r10d, r9d
mov r8d, r10d
test dl, dl
je 0x140115712
test r14, r14
mov rbp, qword [rsp + 0x40]
je 0x14011568d
cmp r14, rbp
jae 0x140115687
mov rax, qword [rsp + 0x30]
cmp byte [rax + r14], 0xbf
jg 0x14011568d
jmp 0x140115cc4
jne 0x140115cc4
mov rcx, r14
call fcn.140175b70
mov rdi, rax
mov qword [rsp + 0x28], rdx
mov rcx, rax
mov rdx, qword [rsp + 0x30]
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, r14
add rax, 2
mov qword [rsp + 0x38], rdi
je 0x1401156d6
sub rbp, rax
jbe 0x1401156d0
mov rcx, qword [rsp + 0x30]
cmp byte [rcx + rax], 0xbf
jg 0x1401156d6
jmp 0x140115cc4
jne 0x140115cc4
mov rbx, qword [rsp + 0x30]
add rbx, rax
mov rcx, rbp
call fcn.140175b70
mov r13, rax
mov rdi, rdx
mov rcx, rax
mov rdx, rbx
mov qword [rsp + 0x40], rbp
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov al, 2
mov cl, 2
mov rbx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x28]
jmp 0x140115a89
cmp r8d, 0x110000
jne 0x140115b3a
movabs rax, 0x8080808080808080
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x50], rbx
mov rbp, qword [rsp + 0x40]
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], 1
movabs rcx, 0x3a0000003a
mov qword [rsp + 0x78], rcx
mov cl, 0x3a
xor edi, edi
movdqa xmm1, xmmword [0x1401fc400]
movdqa xmm0, xmmword [0x1401fc410]
mov rdx, rbx
mov r8, rbp
jmp 0x14011578f
lea rdx, [rbx + rdi]
mov r8, rbp
sub r8, rdi
jb 0x1401158ad
cmp r8, 0x10
jae 0x1401157c8
test r8, r8
je 0x1401158ad
xor r14d, r14d
nop word cs:[rax + rax]
cmp byte [rdx + r14], 0x3a
je 0x140115864
inc r14
cmp r8, r14
jne 0x1401157b0
jmp 0x1401158ad
lea r9, [rdx + 7]
and r9, 0xfffffffffffffff8
sub r9, rdx
je 0x1401157f9
cmp r9, r8
cmovae r9, r8
test r9, r9
je 0x1401157f9
xor r14d, r14d
cmp byte [rdx + r14], 0x3a
je 0x140115864
inc r14
cmp r9, r14
jne 0x1401157e4
lea r10, [r8 - 0x10]
jmp 0x140115810
lea r10, [r8 - 0x10]
xor r9d, r9d
jmp 0x140115815
cmp r9, r10
ja 0x140115844
movdqu xmm2, xmmword [rdx + r9]
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 0x140115844
add r9, 0x10
jmp 0x140115810
sub r8, r9
je 0x1401158ad
add rdx, r9
xor r14d, r14d
nop
cmp byte [rdx + r14], 0x3a
je 0x140115861
inc r14
cmp r8, r14
jne 0x140115850
jmp 0x1401158ad
add r14, r9
add r14, rdi
mov rdi, r14
inc rdi
je 0x14011577f
cmp rbp, rdi
jb 0x14011577f
cmp byte [rbx + r14], cl
jne 0x14011577f
test r14, r14
je 0x140115ba5
cmp r14, rbp
jae 0x140115b9f
mov rax, qword [rsp + 0x30]
cmp byte [rax + r14], 0xbf
jg 0x140115ba5
jmp 0x140115cc4
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], 1
movabs rcx, 0x3d0000003d
mov qword [rsp + 0x78], rcx
mov cl, 0x3d
xor edi, edi
movdqa xmm1, xmmword [0x1401fc420]
mov rdx, rbx
mov r8, rbp
jmp 0x140115901
lea rdx, [rbx + rdi]
mov r8, rbp
sub r8, rdi
jb 0x140115a1d
cmp r8, 0x10
jae 0x140115938
test r8, r8
je 0x140115a1d
xor r14d, r14d
nop word cs:[rax + rax]
cmp byte [rdx + r14], 0x3d
je 0x1401159d4
inc r14
cmp r8, r14
jne 0x140115920
jmp 0x140115a1d
lea r9, [rdx + 7]
and r9, 0xfffffffffffffff8
sub r9, rdx
je 0x140115969
cmp r9, r8
cmovae r9, r8
test r9, r9
je 0x140115969
xor r14d, r14d
cmp byte [rdx + r14], 0x3d
je 0x1401159d4
inc r14
cmp r9, r14
jne 0x140115954
lea r10, [r8 - 0x10]
jmp 0x140115980
lea r10, [r8 - 0x10]
xor r9d, r9d
jmp 0x140115985
cmp r9, r10
ja 0x1401159b4
movdqu xmm2, xmmword [rdx + r9]
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 0x1401159b4
add r9, 0x10
jmp 0x140115980
sub r8, r9
je 0x140115a1d
add rdx, r9
xor r14d, r14d
nop
cmp byte [rdx + r14], 0x3d
je 0x1401159d1
inc r14
cmp r8, r14
jne 0x1401159c0
jmp 0x140115a1d
add r14, r9
add r14, rdi
mov rdi, r14
inc rdi
je 0x1401158f1
cmp rbp, rdi
jb 0x1401158f1
cmp byte [rbx + r14], cl
jne 0x1401158f1
test r14, r14
je 0x140115c16
cmp r14, rbp
jae 0x140115c10
mov rax, qword [rsp + 0x30]
cmp byte [rax + r14], 0xbf
jg 0x140115c16
jmp 0x140115cc4
test rbp, rbp
je 0x140115a6a
js 0x140115cc4
movzx eax, byte [0x1402d9160]
mov rcx, qword [0x1402d9150]
test rcx, rcx
jne 0x140115a53
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140115cc4
mov rcx, rax
mov qword [0x1402d9150], rax
xor edx, edx
mov r8, rbp
call sub.kernel32.dll_HeapAlloc
mov rbx, rax
test rax, rax
jne 0x140115a6f
jmp 0x140115cc4
mov ebx, 1
mov rcx, rbx
mov rdx, qword [rsp + 0x30]
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov al, 1
xor ecx, ecx
mov r9, rbp
mov r14, rbp
mov rdx, qword [rsp + 0x120]
mov qword [rsp + 0xf0], rdx
movaps xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0xe0], xmm0
mov r8, qword [rsp + 0x40]
cmp dword [rsp + 0xdc], 0x50
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x60], rdx
movaps xmm0, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x50], xmm0
mov rdx, qword [r15 + 0x10]
mov qword [rsp + 0x78], rdx
movups xmm1, xmmword [r15]
movups xmmword [rsp + 0x68], xmm1
movups xmmword [rsi + 0x40], xmm0
mov rdx, qword [rsp + 0x70]
mov qword [rsi + 0x60], rdx
mov rdx, qword [rsp + 0x78]
mov qword [rsi + 0x68], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsi + 0x50], rdx
mov rdx, qword [rsp + 0x68]
mov qword [rsi + 0x58], rdx
mov byte [rsi + 8], al
mov byte [rsi + 9], cl
mov dword [rsi + 0xc], ebp
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], r9
mov qword [rsi + 0x20], r14
mov qword [rsi + 0x28], r13
mov qword [rsi + 0x30], rdi
mov qword [rsi + 0x38], r8
sete byte [rsi + 0x70]
mov dword [rsi], 0x22
jmp 0x140114a74
mov edx, 1
cmp r8d, 0x80
jb 0x140115b66
mov edx, 2
cmp r8d, 0x800
jb 0x140115b66
cmp r8d, 0x10000
mov edx, 4
sbb rdx, 0
add r14, rdx
je 0x140115b82
sub rcx, r14
jbe 0x140115b7c
cmp byte [rax + r14], 0xbf
jg 0x140115b82
jmp 0x140115cc4
jne 0x140115cc4
test rcx, rcx
je 0x140115667
movzx eax, byte [rax + r14]
test al, al
jns 0x140115667
cmp al, 0xe0
jmp 0x140115667
jne 0x140115cc4
mov rcx, r14
call fcn.140175b70
mov rbx, rax
mov qword [rsp + 0x28], rdx
mov rcx, rax
mov r13, qword [rsp + 0x30]
mov rdx, r13
mov r8, r14
call sub.msvcrt.dll_memcpy
sub rbp, rdi
jbe 0x140115bda
cmp byte [r13 + rdi], 0xbf
jg 0x140115be0
jmp 0x140115cc4
jne 0x140115cc4
add r13, rdi
mov rcx, rbp
call fcn.140175b70
mov r8, r13
mov r13, rax
mov rdi, rdx
mov rcx, rax
mov rdx, r8
mov qword [rsp + 0x40], rbp
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov cl, 1
mov al, 2
jmp 0x140115708
jne 0x140115cc4
mov rcx, r14
call fcn.140175b70
mov rbx, rax
mov qword [rsp + 0x28], rdx
mov rcx, rax
mov r13, qword [rsp + 0x30]
mov rdx, r13
mov r8, r14
call sub.msvcrt.dll_memcpy
sub rbp, rdi
jbe 0x140115c48
cmp byte [r13 + rdi], 0xbf
jg 0x140115c4a
jmp 0x140115cc4
jne 0x140115cc4
add r13, rdi
mov rcx, rbp
call fcn.140175b70
mov r8, r13
mov r13, rax
mov rdi, rdx
mov rcx, rax
mov rdx, r8
mov qword [rsp + 0x40], rbp
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov al, 2
xor ecx, ecx
jmp 0x140115708
mov r9, r15
movzx edx, byte [rax + rdx]
bt r11, rdx
jb 0x140115cad
mov r10, qword [rsp + 0x48]
add r14, rcx
mov rdx, qword [rsp + 0x28]
add rdx, r14
cmp rdx, r8
mov r15, r9
jae 0x14011571f
movzx edx, byte [rax + rdx]
bt r10, rdx
jae 0x140115c8c
test rbx, rbx
mov r15, r9
je 0x140115667
jmp 0x140115cc4
test rbx, rbx
je 0x140115667
ud2