Function at 0x18000a0e0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x78
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov rbx, rdx
mov rdi, rcx
call fcn.180007130
cmp byte [rdi + 0x130], 0x3f
jne 0x18000aea4
cmp dword [rdi + 0x134], 1
jne 0x18000aea4
mov rcx, rdi
call fcn.180007130
xor esi, esi
mov r8d, esi
mov dword [rbp + 0x28], esi
movsx edx, byte [rdi + 0x130]
lea eax, [rdx - 0x21]
lea r10, [0x180000000]
cmp eax, 0x31
ja case.0x18000a15d.41
cdqe
movzx eax, byte [r10 + rax + 0xb1bc]
mov ecx, dword [r10 + rax*4 + 0xb198]
add rcx, r10
jmp rcx
mov dword [rbp + 0x28], 1
mov rcx, rdi
call fcn.180007130
mov ecx, 0x18
call fcn.180016f44
mov rbx, rax
mov qword [rbp + 0x38], rax
test rax, rax
je 0x18000a1b0
mov rcx, qword [rbp + 0x30]
mov edx, dword [rcx]
and edx, 0xffffffef
mov rcx, rdi
call fcn.1800071f0
lea rcx, vtable.CAssertElxT_0_.0
mov qword [rbx], rcx
mov qword [rbx + 8], rax
cmp dword [rbp + 0x28], 0
sete sil
mov dword [rbx + 0x10], esi
jmp 0x18000a1b3
mov rbx, rsi
mov rdx, rbx
mov rcx, rdi
call fcn.1800089a0
mov rbx, rax
jmp 0x18000b182
movzx eax, byte [rdi + 0x140]
cmp al, 0x21
je 0x18000a1d7
cmp al, 0x3d
je 0x18000a1de
jmp case.0x18000a15d.39
mov dword [rbp + 0x28], 1
mov rcx, rdi
call fcn.180007130
mov rcx, rdi
call fcn.180007130
mov ecx, 0x18
call fcn.180016f44
mov rbx, rax
mov qword [rbp + 0x38], rax
test rax, rax
je 0x18000a230
mov rax, qword [rbp + 0x30]
mov edx, dword [rax]
or edx, 0x10
mov rcx, rdi
call fcn.1800071f0
lea rcx, vtable.CAssertElxT_0_.0
mov qword [rbx], rcx
mov qword [rbx + 8], rax
mov eax, esi
cmp dword [rbp + 0x28], eax
sete al
mov dword [rbx + 0x10], eax
jmp 0x18000a233
mov rbx, rsi
mov rdx, rbx
mov rcx, rdi
call fcn.1800089a0
mov rbx, rax
test rax, rax
jne 0x18000b182
cmp byte [rdi + 0x130], 0x50
jne case.0x18000a15d.34
mov rcx, rdi
call fcn.180007130
movzx ecx, byte [rdi + 0x130]
cmp cl, 0x3c
jne 0x18000a26d
mov byte [rbp + 0x38], 0x3e
jmp 0x18000a27f
mov al, 0x3e
movzx ebx, al
mov eax, 0x27
cmp cl, al
cmove ebx, eax
mov dword [rbp + 0x38], ebx
mov rcx, rdi
call fcn.180007130
mov eax, dword [rdi + 0x10]
mov dword [rbp + 0x40], eax
inc eax
mov dword [rdi + 0x10], eax
mov ecx, 0x38
call fcn.180016f44
mov rdx, rax
test rax, rax
je 0x18000a2d5
mov rax, qword [rbp + 0x30]
mov eax, dword [rax]
and eax, 0x10
lea r8, vtable.CListElxT_0_.0
mov qword [rdx], r8
mov qword [rdx + 0x10], rsi
mov dword [rdx + 0x18], esi
lea r8, vtable.CBufferT_class_ElxInterface____ptr64_.0
mov qword [rdx + 8], r8
mov dword [rdx + 0x28], esi
mov qword [rdx + 0x20], rsi
mov dword [rdx + 0x30], eax
jmp 0x18000a2d8
mov rdx, rsi
mov rcx, rdi
call fcn.1800089a0
mov qword [rbp - 0x58], rax
mov ecx, 0x38
call fcn.180016f44
mov rdx, rax
lea rcx, vtable.CBracketElxT_char_.0
lea rbx, vtable.CBufferT_char_.0
test rax, rax
je 0x18000a331
mov rax, qword [rbp + 0x30]
mov eax, dword [rax]
shr eax, 4
and eax, 1
mov qword [rdx], rcx
mov qword [rdx + 0x18], rsi
mov dword [rdx + 0x20], esi
mov qword [rdx + 0x10], rbx
mov dword [rdx + 0x30], esi
mov qword [rdx + 0x28], rsi
mov dword [rdx + 8], 0xffffffff
mov dword [rdx + 0xc], eax
jmp 0x18000a334
mov rdx, rsi
mov rcx, rdi
call fcn.1800089a0
mov qword [rbp - 0x50], rax
mov ecx, 0x38
call fcn.180016f44
test rax, rax
je 0x18000a385
mov rcx, qword [rbp + 0x30]
mov ecx, dword [rcx]
shr ecx, 4
not ecx
and ecx, 1
lea rdx, vtable.CBracketElxT_char_.0
mov qword [rax], rdx
mov qword [rax + 0x18], rsi
mov dword [rax + 0x20], esi
mov qword [rax + 0x10], rbx
mov dword [rax + 0x30], esi
mov qword [rax + 0x28], rsi
mov dword [rax + 8], 0xffffffff
mov dword [rax + 0xc], ecx
jmp 0x18000a388
mov rax, rsi
mov rdx, rax
mov rcx, rdi
call fcn.1800089a0
mov qword [rbp - 0x48], rax
mov rcx, qword [rbp - 0x50]
add rcx, 0x10
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x28], rsi
mov dword [rbp - 0x20], esi
mov qword [rbp - 0x30], rbx
mov dword [rbp - 0x10], esi
mov rbx, rsi
mov qword [rbp - 0x18], rbx
cmp byte [rdi + 0x130], 0
je 0x18000a481
nop word [rax + rax]
movzx eax, byte [rdi + 0x130]
cmp al, byte [rbp + 0x38]
je 0x18000a47b
mov byte [rbp + 0x28], al
mov r8d, 1
lea rdx, [rbp + 0x28]
call fcn.18000b980
movzx eax, byte [rdi + 0x130]
mov byte [rbp + 0x28], al
mov ecx, dword [rbp - 0x10]
mov ebx, ecx
cmp ecx, 8
mov eax, 8
cmovl ebx, eax
lea eax, [rsi + 2]
cmp eax, ebx
jle 0x18000a42e
add ebx, ebx
cmp eax, ebx
jle 0x18000a42e
lea ebx, [rsi + 0xd]
mov eax, ebx
and eax, 0x80000007
jge 0x18000a42c
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, ecx
mov rcx, qword [rbp - 0x18]
jle 0x18000a44c
movsxd rdx, ebx
call fcn.180017d6c
mov rcx, rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], ebx
movsxd rax, esi
movzx edx, byte [rbp + 0x28]
mov byte [rax + rcx], dl
inc esi
mov dword [rbp - 0x20], esi
movsxd rax, esi
mov byte [rax + rcx], 0
mov rcx, rdi
call fcn.180007130
cmp byte [rdi + 0x130], 0
mov rcx, qword [rbp - 0x40]
jne 0x18000a3d0
xor esi, esi
mov rbx, qword [rbp - 0x18]
mov rcx, rdi
call fcn.180007130
lea r11, [0x18002a13b]
test rbx, rbx
cmovne r11, rbx
mov qword [rbp + 0x38], r11
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x38]
call fcn.180009240
test eax, eax
je 0x18000a4e9
mov ecx, esi
mov rax, qword [rbp + 0x38]
cmp byte [rax], 0
sete cl
test ecx, ecx
je 0x18000a4e9
mov eax, dword [rbp + 0x28]
mov rbx, qword [rbp - 0x50]
mov dword [rbx + 8], eax
mov rcx, qword [rbp - 0x48]
mov dword [rcx + 8], eax
mov rcx, qword [rbx + 0x28]
mov qword [rbx + 0x28], rsi
mov qword [rbx + 0x18], rsi
mov dword [rbx + 0x30], esi
mov dword [rbx + 0x20], esi
test rcx, rcx
je 0x18000a4e9
call fcn.180017658
mov rbx, qword [rbp - 0x58]
add rbx, 8
mov rdx, qword [rbp - 0x50]
mov rcx, rbx
call fcn.18000c6d0
mov rax, qword [rbp + 0x30]
mov edx, dword [rax]
mov rcx, rdi
call fcn.1800071f0
mov rdx, rax
mov rcx, rbx
call fcn.18000c6d0
mov rdx, qword [rbp - 0x48]
mov rcx, rbx
call fcn.18000c6d0
lea rcx, [rdi + 0x90]
movsxd rbx, dword [rbp + 0x40]
mov edx, ebx
call fcn.180006f30
mov r11, rbx
mov rax, qword [rdi + 0xa8]
mov rbx, qword [rbp - 0x58]
mov qword [rax + r11*8], rbx
jmp 0x18000ad8c
mov rcx, rdi
call fcn.180007130
mov ecx, 0x10
call fcn.180016f44
mov rbx, rax
mov qword [rbp + 0x28], rax
test rax, rax
je 0x18000a587
mov rax, qword [rbp + 0x30]
mov edx, dword [rax]
mov rcx, rdi
call fcn.1800071f0
lea rcx, vtable.CIndependentElxT_0_.0
mov qword [rbx], rcx
mov qword [rbx + 8], rax
jmp 0x18000a58a
mov rbx, rsi
mov rdx, rbx
mov rcx, rdi
call fcn.1800089a0
mov rbx, rax
jmp 0x18000b182
mov rcx, rdi
call fcn.180007130
cmp byte [rdi + 0x130], sil
je 0x18000a5d1
nop
movsx ecx, byte [rdi + 0x130]
call fcn.180017270
test eax, eax
je 0x18000a5d1
mov rcx, rdi
call fcn.180007130
cmp byte [rdi + 0x130], sil
jne 0x18000a5b0
movzx eax, byte [rdi + 0x130]
cmp al, 0x3c
je 0x18000a730
cmp al, 0x27
je 0x18000a730
mov qword [rbp - 0x28], rsi
mov dword [rbp - 0x20], esi
lea rbx, vtable.CBufferT_char_.0
mov qword [rbp - 0x30], rbx
mov edx, esi
mov dword [rbp - 0x10], edx
mov rcx, rsi
mov qword [rbp - 0x18], rcx
test al, al
je 0x18000a6b4
mov r8d, 8
nop word [rax + rax]
movzx eax, byte [rdi + 0x130]
mov byte [rbp + 0x28], al
cmp al, 0x29
je 0x18000a6ab
mov ebx, edx
cmp edx, 8
cmovl ebx, r8d
lea eax, [rsi + 2]
cmp eax, ebx
jle 0x18000a659
add ebx, ebx
cmp eax, ebx
jle 0x18000a659
lea ebx, [rsi + 0xd]
mov eax, ebx
and eax, 0x80000007
jge 0x18000a657
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, edx
jle 0x18000a673
movsxd rdx, ebx
call fcn.180017d6c
mov rcx, rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], ebx
movsxd rax, esi
movzx edx, byte [rbp + 0x28]
mov byte [rax + rcx], dl
inc esi
mov dword [rbp - 0x20], esi
movsxd rax, esi
mov byte [rax + rcx], 0
mov rcx, rdi
call fcn.180007130
cmp byte [rdi + 0x130], 0
mov rcx, qword [rbp - 0x18]
mov edx, dword [rbp - 0x10]
mov r8d, 8
jne 0x18000a620
xor esi, esi
lea rbx, vtable.CBufferT_char_.0
mov dword [rbp + 0x28], esi
lea r11, [0x18002a13b]
test rcx, rcx
cmovne r11, rcx
mov qword [rbp + 0x38], r11
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x38]
call fcn.180009240
mov ecx, 0x40
call fcn.180016f44
mov rdx, rax
test rax, rax
je 0x18000a710
lea r8, vtable.CDelegateElxT_char_.0
mov qword [rax], r8
mov qword [rax + 0x20], rsi
mov dword [rax + 0x28], esi
mov qword [rax + 0x18], rbx
mov dword [rax + 0x38], esi
mov qword [rax + 0x30], rsi
mov qword [rax + 8], rsi
mov eax, dword [rbp + 0x28]
mov dword [rdx + 0x10], eax
jmp 0x18000a713
mov rdx, rsi
mov rcx, rdi
call fcn.1800089a0
mov rbx, rax
lea rcx, [rdi + 0x68]
mov rdx, rax
call fcn.18000c6d0
nop
jmp 0x18000ad8c
mov ecx, 0x27
mov edx, 0x3e
cmp al, 0x3c
cmove ecx, edx
mov dword [rbp + 0x38], ecx
lea ecx, [rdx + 2]
call fcn.180016f44
lea rcx, vtable.CBufferT_char_.0
test rax, rax
je 0x18000a77f
lea r8, vtable.CDelegateElxT_char_.0
mov qword [rax], r8
mov qword [rax + 0x20], rsi
mov dword [rax + 0x28], esi
mov qword [rax + 0x18], rcx
mov dword [rax + 0x38], esi
mov qword [rax + 0x30], rsi
mov qword [rax + 8], rsi
mov dword [rax + 0x10], 0xfffffffd
jmp 0x18000a782
mov rax, rsi
mov rdx, rax
mov rcx, rdi
call fcn.1800089a0
mov rbx, rax
mov qword [rbp - 0x58], rax
mov rcx, rdi
call fcn.180007130
lea rcx, [rbx + 0x18]
mov qword [rbp + 0x40], rcx
mov qword [rbp - 0x28], rsi
mov dword [rbp - 0x20], esi
lea rdx, vtable.CBufferT_char_.0
mov qword [rbp - 0x30], rdx
mov dword [rbp - 0x10], esi
mov rbx, rsi
mov qword [rbp - 0x18], rbx
cmp byte [rdi + 0x130], 0
je 0x18000a881
nop dword [rax]
movzx eax, byte [rdi + 0x130]
cmp al, byte [rbp + 0x38]
je 0x18000a87b
mov byte [rbp + 0x28], al
mov r8d, 1
lea rdx, [rbp + 0x28]
call fcn.18000b980
movzx eax, byte [rdi + 0x130]
mov byte [rbp + 0x28], al
mov ecx, dword [rbp - 0x10]
mov ebx, ecx
cmp ecx, 8
mov eax, 8
cmovl ebx, eax
lea eax, [rsi + 2]
cmp eax, ebx
jle 0x18000a82e
add ebx, ebx
cmp eax, ebx
jle 0x18000a82e
lea ebx, [rsi + 0xd]
mov eax, ebx
and eax, 0x80000007
jge 0x18000a82c
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, ecx
mov rcx, qword [rbp - 0x18]
jle 0x18000a84c
movsxd rdx, ebx
call fcn.180017d6c
mov rcx, rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], ebx
movsxd rax, esi
movzx edx, byte [rbp + 0x28]
mov byte [rax + rcx], dl
inc esi
mov dword [rbp - 0x20], esi
movsxd rax, esi
mov byte [rax + rcx], 0
mov rcx, rdi
call fcn.180007130
cmp byte [rdi + 0x130], 0
mov rcx, qword [rbp + 0x40]
jne 0x18000a7d0
xor esi, esi
mov rbx, qword [rbp - 0x18]
mov rcx, rdi
call fcn.180007130
lea r11, [0x18002a13b]
test rbx, rbx
cmovne r11, rbx
mov qword [rbp + 0x38], r11
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x38]
call fcn.180009240
test eax, eax
je 0x18000a8e5
mov ecx, esi
mov rax, qword [rbp + 0x38]
cmp byte [rax], 0
sete cl
test ecx, ecx
je 0x18000a8e5
mov eax, dword [rbp + 0x28]
mov rcx, qword [rbp - 0x58]
mov dword [rcx + 0x10], eax
mov rax, qword [rcx + 0x30]
mov qword [rcx + 0x30], rsi
mov qword [rcx + 0x20], rsi
mov dword [rcx + 0x38], esi
mov dword [rcx + 0x28], esi
test rax, rax
je 0x18000a8e5
mov rcx, rax
call fcn.180017658
lea rcx, [rdi + 0x68]
mov rdx, qword [rbp - 0x58]
call fcn.18000c6d0
nop
test rbx, rbx
je 0x18000ae9b
mov rcx, rbx
call fcn.180017658
jmp 0x18000ae9b
mov ecx, 0x50
call fcn.180016f44
lea rcx, vtable.CBufferT_char_.0
test rax, rax
je 0x18000a944
lea rdx, vtable.CConditionElxT_char_.0
mov qword [rax], rdx
mov qword [rax + 0x18], rsi
mov dword [rax + 0x20], esi
mov qword [rax + 0x10], rcx
mov dword [rax + 0x30], esi
mov qword [rax + 0x28], rsi
mov dword [rax + 8], 0xffffffff
jmp 0x18000a947
mov rax, rsi
mov rdx, rax
mov rcx, rdi
call fcn.1800089a0
mov rbx, rax
mov qword [rbp - 0x58], rax
cmp byte [rdi + 0x140], 0x3f
jne 0x18000a980
cmp dword [rdi + 0x144], 1
jne 0x18000a980
mov rdx, qword [rbp + 0x30]
mov rcx, rdi
call fcn.18000a0e0
mov qword [rbx + 0x38], rax
jmp 0x18000abc5
mov rcx, rdi
call fcn.180007130
mov eax, dword [rdi + 0x138]
mov dword [rbp + 0x38], eax
mov ecx, 0x18
call fcn.180016f44
mov qword [rbp + 0x28], rax
test rax, rax
je 0x18000a9cd
mov rax, qword [rbp + 0x30]
mov edx, dword [rax]
mov rcx, rdi
call fcn.1800071f0
lea rcx, vtable.CAssertElxT_0_.0
mov rdx, qword [rbp + 0x28]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
mov dword [rdx + 0x10], 1
jmp 0x18000a9d0
mov rdx, rsi
mov rcx, rdi
call fcn.1800089a0
mov qword [rbx + 0x38], rax
mov rax, qword [rdi + 0x110]
lea rdx, [0x18002a13b]
test rax, rax
cmovne rdx, rax
movsxd rax, dword [rbp + 0x38]
mov qword [rbp + 0x40], rax
mov r8d, dword [rdi + 0x138]
sub r8d, eax
add rdx, rax
lea rcx, [rbx + 0x10]
call fcn.18000b980
mov qword [rbp - 0x28], rsi
mov r8d, esi
mov dword [rbp - 0x20], esi
lea rdx, vtable.CBufferT_char_.0
mov qword [rbp - 0x30], rdx
mov edx, esi
mov dword [rbp - 0x10], edx
mov rcx, rsi
mov qword [rbp - 0x18], rcx
mov r11d, 8
mov eax, dword [rbp + 0x38]
cmp eax, dword [rdi + 0x138]
jge 0x18000ab09
mov r10, rsi
mov qword [rbp - 0x48], rsi
mov r9, qword [rbp + 0x40]
cmp eax, dword [rdi + 0x118]
jl 0x18000aa5e
mov byte [rbp + 0x28], 0
jmp 0x18000aa6d
mov rax, qword [rdi + 0x110]
movzx eax, byte [r9 + rax]
mov byte [rbp + 0x28], al
mov ebx, edx
cmp edx, 8
cmovl ebx, r11d
lea eax, [r8 + 2]
cmp eax, ebx
jle 0x18000aa9a
add ebx, ebx
cmp eax, ebx
jle 0x18000aa9a
lea ebx, [r8 + 0xd]
mov eax, ebx
and eax, 0x80000007
jge 0x18000aa98
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, edx
jle 0x18000aac1
movsxd rdx, ebx
call fcn.180017d6c
mov rcx, rax
mov qword [rbp - 0x28], rax
mov edx, ebx
mov r8d, dword [rbp - 0x20]
mov r9, qword [rbp + 0x40]
mov r10, qword [rbp - 0x48]
mov r11d, 8
movzx eax, byte [rbp + 0x28]
mov byte [rcx + r10], al
inc r8d
mov dword [rbp - 0x20], r8d
movsxd r10, r8d
mov qword [rbp - 0x48], r10
mov byte [rcx + r10], 0
mov eax, dword [rbp + 0x38]
inc eax
mov dword [rbp + 0x38], eax
inc r9
mov qword [rbp + 0x40], r9
cmp eax, dword [rdi + 0x138]
jl 0x18000aa50
mov qword [rbp - 0x18], rcx
mov dword [rbp - 0x10], edx
test rcx, rcx
je 0x18000ab09
mov qword [rbp + 0x38], rcx
jmp 0x18000ab14
lea r11, [0x18002a13b]
mov qword [rbp + 0x38], r11
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x38]
call fcn.180009240
test eax, eax
je 0x18000ab44
mov ecx, esi
mov rax, qword [rbp + 0x38]
cmp byte [rax], cl
sete cl
test ecx, ecx
je 0x18000ab44
mov eax, dword [rbp + 0x28]
mov rbx, qword [rbp - 0x58]
mov dword [rbx + 8], eax
mov qword [rbx + 0x38], rsi
jmp 0x18000abae
mov rbx, qword [rbp - 0x58]
mov dword [rbx + 8], 0xffffffff
mov eax, dword [rdi + 0x100]
cmp dword [rdi + 0xf0], eax
jl 0x18000ab96
lea ebx, [rax + rax]
cmp ebx, 8
mov eax, 8
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rdi + 0xf8]
call fcn.180017d6c
mov qword [rdi + 0xf8], rax
mov qword [rdi + 0xe8], rax
mov dword [rdi + 0x100], ebx
mov rbx, qword [rbp - 0x58]
movsxd rcx, dword [rdi + 0xf0]
mov rax, qword [rdi + 0xf8]
mov qword [rax + rcx*8], rbx
inc dword [rdi + 0xf0]
mov rcx, rdi
call fcn.180007130
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x18000abc5
call fcn.180017658
mov rax, qword [rbp + 0x30]
mov eax, dword [rax]
mov dword [rbp + 0x28], eax
lea rdx, [rbp + 0x28]
mov rcx, rdi
call fcn.180007ef0
mov qword [rbx + 0x40], rax
cmp byte [rdi + 0x130], 0x7c
jne 0x18000ac06
mov rcx, rdi
call fcn.180007130
mov rax, qword [rbp + 0x30]
mov edx, dword [rax]
mov rcx, rdi
call fcn.1800071f0
mov qword [rbx + 0x48], rax
jmp 0x18000b182
mov qword [rbx + 0x48], rsi
jmp 0x18000b182
test dl, dl
je 0x18000ac3e
movsx ecx, byte [rdi + 0x130]
call fcn.180017270
test eax, eax
je 0x18000ac34
mov rcx, rdi
call fcn.180007130
cmp byte [rdi + 0x130], sil
jne 0x18000ac13
mov r8d, esi
lea r10, [0x180000000]
movzx eax, byte [rdi + 0x130]
cmp al, 0x30
jl 0x18000ada3
cmp al, 0x39
jg 0x18000ada3
mov qword [rbp - 0x28], rsi
mov dword [rbp - 0x20], esi
lea rbx, vtable.CBufferT_char_.0
mov qword [rbp - 0x30], rbx
mov edx, esi
mov dword [rbp - 0x10], edx
mov rcx, rsi
mov qword [rbp - 0x18], rcx
test al, al
je 0x18000ad15
mov r8d, 8
movzx eax, byte [rdi + 0x130]
mov byte [rbp + 0x28], al
cmp al, 0x29
je 0x18000ad0c
mov ebx, edx
cmp edx, 8
cmovl ebx, r8d
lea eax, [rsi + 2]
cmp eax, ebx
jle 0x18000acba
add ebx, ebx
cmp eax, ebx
jle 0x18000acba
lea ebx, [rsi + 0xd]
mov eax, ebx
and eax, 0x80000007
jge 0x18000acb8
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, edx
jle 0x18000acd4
movsxd rdx, ebx
call fcn.180017d6c
mov rcx, rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], ebx
movsxd rax, esi
movzx edx, byte [rbp + 0x28]
mov byte [rax + rcx], dl
inc esi
mov dword [rbp - 0x20], esi
movsxd rax, esi
mov byte [rax + rcx], 0
mov rcx, rdi
call fcn.180007130
cmp byte [rdi + 0x130], 0
mov rcx, qword [rbp - 0x18]
mov edx, dword [rbp - 0x10]
mov r8d, 8
jne 0x18000ac81
xor esi, esi
lea rbx, vtable.CBufferT_char_.0
mov dword [rbp + 0x28], esi
lea r11, [0x18002a13b]
test rcx, rcx
cmovne r11, rcx
mov qword [rbp + 0x38], r11
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 0x38]
call fcn.180009240
mov ecx, 0x40
call fcn.180016f44
mov rdx, rax
test rax, rax
je 0x18000ad71
lea r8, vtable.CDelegateElxT_char_.0
mov qword [rax], r8
mov qword [rax + 0x20], rsi
mov dword [rax + 0x28], esi
mov qword [rax + 0x18], rbx
mov dword [rax + 0x38], esi
mov qword [rax + 0x30], rsi
mov qword [rax + 8], rsi
mov eax, dword [rbp + 0x28]
mov dword [rdx + 0x10], eax
jmp 0x18000ad74
mov rdx, rsi
mov rcx, rdi
call fcn.1800089a0
mov rbx, rax
lea rcx, [rdi + 0x68]
mov rdx, rax
call fcn.18000c6d0
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x18000b182
call fcn.180017658
jmp 0x18000b182
mov ebx, dword [rbx]
mov r9d, 8
movzx ecx, byte [rdi + 0x130]
test cl, cl
jne 0x18000adc3
cmp dword [rdi + 0x134], 1
je 0x18000ae4d
movzx eax, byte [rdi + 0x130]
cmp al, 0x3a
je 0x18000ae4d
cmp al, 0x29
je 0x18000ae4d
cmp cl, 0x28
jne 0x18000ade0
cmp dword [rdi + 0x134], 1
je 0x18000ae4d
mov edx, esi
movsx eax, al
add eax, 0xffffffd3
cmp eax, 0x46
ja case.0x18000ae03.50
cdqe
movzx eax, byte [r10 + rax + 0xb208]
mov ecx, dword [r10 + rax*4 + 0xb1f0]
add rcx, r10
jmp rcx
mov edx, r9d
jmp case.0x18000ae03.50
mov edx, 1
jmp case.0x18000ae03.50
mov edx, 2
jmp case.0x18000ae03.50
mov edx, 4
jmp case.0x18000ae03.50
mov dword [rbp + 0x28], 1
jmp 0x18000ae2d
test r8d, r8d
je 0x18000ae33
not edx
and ebx, edx
jmp 0x18000ae35
or ebx, edx
mov rcx, rdi
call fcn.180007130
mov r8d, dword [rbp + 0x28]
lea r10, [0x180000000]
jmp 0x18000ada5
movzx eax, byte [rdi + 0x130]
cmp al, 0x3a
je 0x18000ae81
cmp al, 0x28
jne 0x18000ae65
cmp dword [rdi + 0x134], 1
je 0x18000ae7d
mov rax, qword [rbp + 0x30]
mov dword [rax], ebx
xor edx, edx
mov rcx, rdi
call fcn.180008050
mov rbx, rax
jmp 0x18000b182
cmp al, 0x3a
jne 0x18000ae89
mov rcx, rdi
call fcn.180007130
mov edx, ebx
mov rcx, rdi
call fcn.1800071f0
mov rbx, rax
jmp 0x18000b182
mov rbx, qword [rbp - 0x58]
jmp 0x18000b182
mov ecx, 0x38
call fcn.180016f44
mov rcx, rax
mov qword [rbp + 0x38], rax
test rax, rax
je 0x18000aee9
mov eax, dword [rbx]
and eax, 0x10
lea r8, vtable.CListElxT_0_.0
mov qword [rcx], r8
xor esi, esi
mov qword [rcx + 0x10], rsi
mov dword [rcx + 0x18], esi
lea r8, vtable.CBufferT_class_ElxInterface____ptr64_.0
mov qword [rcx + 8], r8
mov dword [rcx + 0x28], esi
mov qword [rcx + 0x20], rsi
mov dword [rcx + 0x30], eax
jmp 0x18000aeef
xor esi, esi
mov qword [rbp + 0x38], rsi
mov ebx, dword [rdi + 0x38]
mov eax, 8
cmp dword [rdi + 0x28], ebx
jl 0x18000af1e
add ebx, ebx
cmp ebx, eax
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rdi + 0x30]
call fcn.180017d6c
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x20], rax
mov dword [rdi + 0x38], ebx
movsxd rcx, dword [rdi + 0x28]
mov rax, qword [rdi + 0x30]
mov rbx, qword [rbp + 0x38]
mov qword [rax + rcx*8], rbx
inc dword [rdi + 0x28]
inc dword [rdi + 0xc]
mov eax, dword [rdi + 0xc]
mov dword [rbp + 0x28], eax
mov ecx, 0x38
call fcn.180016f44
mov rdx, rax
mov qword [rbp + 0x40], rax
lea r8, vtable.CBracketElxT_char_.0
lea rax, vtable.CBufferT_char_.0
test rdx, rdx
je 0x18000af8a
mov rcx, qword [rbp + 0x30]
mov ecx, dword [rcx]
shr ecx, 4
and ecx, 1
mov qword [rdx], r8
mov qword [rdx + 0x18], rsi
mov dword [rdx + 0x20], esi
mov qword [rdx + 0x10], rax
mov dword [rdx + 0x30], esi
mov qword [rdx + 0x28], rsi
mov eax, dword [rbp + 0x28]
mov dword [rdx + 8], eax
mov dword [rdx + 0xc], ecx
jmp 0x18000af8e
mov qword [rbp + 0x40], rsi
mov eax, dword [rdi + 0x38]
cmp dword [rdi + 0x28], eax
jl 0x18000afc3
lea ebx, [rax + rax]
cmp ebx, 8
mov eax, 8
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rdi + 0x30]
call fcn.180017d6c
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x20], rax
mov dword [rdi + 0x38], ebx
mov rbx, qword [rbp + 0x38]
movsxd rcx, dword [rdi + 0x28]
mov rax, qword [rdi + 0x30]
mov rdx, qword [rbp + 0x40]
mov qword [rax + rcx*8], rdx
inc dword [rdi + 0x28]
mov eax, dword [rbx + 0x28]
cmp dword [rbx + 0x18], eax
jl 0x18000b016
lea ebx, [rax + rax]
cmp ebx, 8
mov eax, 8
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rbp + 0x38]
mov rcx, qword [rcx + 0x20]
call fcn.180017d6c
mov rcx, qword [rbp + 0x38]
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x10], rax
mov dword [rcx + 0x28], ebx
mov rbx, rcx
mov rdx, qword [rbp + 0x40]
movsxd rcx, dword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
mov qword [rax + rcx*8], rdx
inc dword [rbx + 0x18]
mov rax, qword [rbp + 0x30]
mov edx, dword [rax]
mov rcx, rdi
call fcn.1800071f0
mov qword [rbp + 0x40], rax
mov ecx, dword [rbx + 0x28]
cmp dword [rbx + 0x18], ecx
jl 0x18000b073
lea ebx, [rcx + rcx]
cmp ebx, 8
mov eax, 8
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rbp + 0x38]
mov rcx, qword [rcx + 0x20]
call fcn.180017d6c
mov rcx, qword [rbp + 0x38]
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x10], rax
mov dword [rcx + 0x28], ebx
mov rbx, rcx
movsxd rcx, dword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
mov rdx, qword [rbp + 0x40]
mov qword [rax + rcx*8], rdx
inc dword [rbx + 0x18]
mov ecx, 0x38
call fcn.180016f44
mov qword [rbp + 0x40], rax
test rax, rax
je 0x18000b0d8
mov rcx, qword [rbp + 0x30]
mov ecx, dword [rcx]
shr ecx, 4
not ecx
and ecx, 1
lea rdx, vtable.CBracketElxT_char_.0
mov qword [rax], rdx
mov qword [rax + 0x18], rsi
mov dword [rax + 0x20], esi
lea rdx, vtable.CBufferT_char_.0
mov qword [rax + 0x10], rdx
mov dword [rax + 0x30], esi
mov qword [rax + 0x28], rsi
mov edx, dword [rbp + 0x28]
mov dword [rax + 8], edx
mov dword [rax + 0xc], ecx
mov rsi, rax
jmp 0x18000b0dc
mov qword [rbp + 0x40], rsi
mov eax, dword [rdi + 0x38]
cmp dword [rdi + 0x28], eax
jl 0x18000b111
lea ebx, [rax + rax]
cmp ebx, 8
mov eax, 8
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rdi + 0x30]
call fcn.180017d6c
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x20], rax
mov dword [rdi + 0x38], ebx
mov rbx, qword [rbp + 0x38]
movsxd rcx, dword [rdi + 0x28]
mov rax, qword [rdi + 0x30]
mov qword [rax + rcx*8], rsi
inc dword [rdi + 0x28]
mov eax, dword [rbx + 0x28]
cmp dword [rbx + 0x18], eax
jl 0x18000b15c
lea ebx, [rax + rax]
cmp ebx, 8
mov eax, 8
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rsi, qword [rbp + 0x38]
mov rcx, qword [rsi + 0x20]
call fcn.180017d6c
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x10], rax
mov dword [rsi + 0x28], ebx
mov rbx, rsi
mov rsi, qword [rbp + 0x40]
movsxd rdx, dword [rbx + 0x18]
mov rcx, qword [rbx + 0x20]
mov qword [rcx + rdx*8], rsi
inc dword [rbx + 0x18]
lea rcx, [rdi + 0x40]
movsxd rsi, dword [rbp + 0x28]
mov edx, esi
call fcn.180006f30
mov rcx, qword [rdi + 0x58]
mov qword [rcx + rsi*8], rbx
mov rcx, rdi
call fcn.180007130
mov rax, rbx
add rsp, 0x78
pop rdi
pop rsi
pop rbx
pop rbp
ret