Function at 0x140181060
Capabilities:
Encode data using base64

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
xor r15d, r15d
mov r10, rdx
mov esi, r15d
mov qword [rsp + 0x28], r15
mov r13d, r15d
mov qword [rcx + 0x20], r15
mov r14, rcx
mov r12b, 1
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rdx + rax], sil
jne 0x1401810a0
cmp rax, 0x7fffffff
ja 0x14018362b
mov rcx, qword [rsp + 0xe0]
mov eax, r15d
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], rbp
lea rbp, [0x14017c920]
mov qword [rsp + 0x98], rdi
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm7
movss xmm7, dword [0x1402119f0]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0xe0]
movaps xmmword [rsp + 0x60], xmm8
movss xmm8, dword [0x1402119e0]
mov qword [rsp + 0x48], rcx
movabs r11, 0x2002000020000009
lea r8, [0x140000000]
mov edi, 5
cmp eax, 0xffffffff
je 0x1401834e3
test byte [r14 + 0x40], 0x10
je 0x140181191
movzx ecx, byte ds:[r10]
test r13d, r13d
jne 0x140181182
cmp cl, 0x80
jb 0x140181191
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x140181159
lea r13d, [rdi - 4]
jmp 0x140181191
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x14018116c
mov r13d, 2
jmp 0x140181191
and cl, 0xf8
cmp cl, 0xf0
jne 0x140183322
mov r13d, 3
jmp 0x140181191
and cl, 0xc0
cmp cl, 0x80
jne 0x140183322
dec r13d
movsxd rdx, dword [r14 + 0x14]
mov r9, qword [r14 + 0x38]
mov rax, rdx
movzx r12d, byte [r10]
shl rax, 5
mov byte [rsp + 0xf0], r12b
mov ecx, dword [rax + r9]
cmp ecx, 0x1a
ja case.default.0x1401811ce
nop dword [rax]
movsxd rax, ecx
mov ecx, dword [r8 + rax*4 + 0x183648]
add rcx, r8
jmp rcx
movzx ecx, r12b
call fcn.140192a20
nop dword [rax]
test eax, eax
je 0x14018128d
mov rbx, qword [rsp + 0xe8]
mov eax, dword [r14 + 0x20]
inc rbx
inc eax
mov qword [rsp + 0xe8], rbx
mov dword [r14 + 0x20], eax
test r12b, r12b
je 0x140183505
cmp eax, 0xffffffff
je 0x1401834e3
test byte [r14 + 0x40], 0x10
je 0x140181271
movzx ecx, byte [rbx]
test r13d, r13d
jne 0x140181262
cmp cl, 0x80
jb 0x140181271
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x14018123c
mov r13d, 1
jmp 0x140181271
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x14018124d
mov r13d, 2
jmp 0x140181271
and cl, 0xf8
cmp cl, 0xf0
jne 0x140183322
mov r13d, 3
jmp 0x140181271
and cl, 0xc0
cmp cl, 0x80
jne 0x140183322
dec r13d
movzx r12d, byte [rbx]
mov ecx, r12d
mov byte [rsp + 0xf0], r12b
call fcn.140192a20
test eax, eax
jne 0x1401811f0
cmp r12b, 0x2f
jne 0x14018129e
test byte [r14 + 0x40], 1
je 0x14018223a
movsxd rdx, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rdx, 5
mov eax, dword [rdx + rcx + 4]
mov dword [rdx + rcx], eax
jmp 0x140182200
movsx eax, r12b
add eax, 0xffffffde
cmp eax, 0x59
ja case.0x1401812e0.42
cdqe
movzx eax, byte [r8 + rax + 0x1836d8]
mov ecx, dword [r8 + rax*4 + 0x1836b4]
add rcx, r8
jmp rcx
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 0x1a
jmp 0x140181313
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 3
jmp 0x140181313
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 0xd
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
mov byte [rax], 0
mov dword [rcx + 8], r15d
mov dword [r14 + 0x1c], r15d
jmp 0x140182219
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 0xe
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
mov byte [rax], 0
mov dword [rcx + 8], r15d
mov dword [r14 + 0x18], r15d
jmp 0x140182219
test edx, edx
je 0x140183505
movsxd rax, edx
shl rax, 5
mov rsi, qword [rax + r9 + 0x10]
mov qword [rsp + 0x28], rsi
test rsi, rsi
je 0x140181379
inc dword [rsi + 4]
mov edx, dword [r14 + 0x14]
mov r9, qword [r14 + 0x38]
movsxd rbx, edx
shl rbx, 5
mov dword [rbx + r9], r15d
mov rax, qword [r14 + 0x38]
mov dword [rbx + rax + 4], 1
mov rcx, qword [r14 + 0x38]
mov rcx, qword [rbx + rcx + 0x10]
call fcn.14017bb80
mov rax, qword [r14 + 0x38]
mov qword [rbx + rax + 0x10], r15
mov rcx, qword [r14 + 0x38]
mov rcx, qword [rbx + rcx + 0x18]
call fcn.140190188
mov rax, qword [r14 + 0x38]
mov qword [rbx + rax + 0x18], r15
dec dword [r14 + 0x14]
jmp 0x140182200
test byte [r14 + 0x40], 1
lea rbx, str.infinity
mov edx, dword [r14 + 0x1c]
lea rax, [0x1401d76b0]
cmovne rbx, rax
cmp edx, 8
jge 0x1401814c9
nop dword [rax + rax]
mov r8d, dword [r14 + 0x40]
movzx eax, byte [r10]
test r8b, 1
jne 0x140181415
mov ecx, eax
call fcn.1401989c4
mov edx, dword [r14 + 0x1c]
mov r8d, dword [r14 + 0x40]
mov r10, qword [rsp + 0xe8]
movsxd rcx, edx
cmp al, byte [rcx + rbx]
jne case.0x1401812e0.42
inc dword [r14 + 0x20]
inc edx
inc r10
mov dword [r14 + 0x1c], edx
cmp dword [r14 + 0x20], 0xffffffff
mov qword [rsp + 0xe8], r10
je 0x1401834e3
test r8b, 0x10
je 0x1401814ac
movzx ecx, byte [r10]
test r13d, r13d
jne 0x140181497
cmp cl, 0x80
jb 0x1401814ac
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x14018146e
mov r13d, 1
jmp 0x1401814ac
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x14018147f
mov r13d, 2
jmp 0x1401814ac
and cl, 0xf8
cmp cl, 0xf0
jne 0x14018333c
mov edx, dword [r14 + 0x1c]
mov r13d, 3
jmp 0x1401814ac
and cl, 0xc0
cmp cl, 0x80
jne 0x14018333c
dec r13d
movzx r12d, byte ds:[r10]
mov byte [rsp + 0xf0], r12b
cmp edx, 8
jl 0x1401813f0
mov rax, qword [r14 + 8]
cmp dword [rax + 8], 0
jle 0x1401814e2
mov rax, qword [rax]
cmp byte [rax], 0x2d
jne 0x1401814e2
movaps xmm6, xmm7
jmp 0x1401814e6
movaps xmm6, xmm8
mov ecx, 0x30
call fcn.14019019c
mov rdx, rax
test rax, rax
jne 0x1401814fd
mov rdx, r15
jmp 0x140181526
xorps xmm0, xmm0
mov dword [rax], 2
cvtss2sd xmm0, xmm6
mov dword [rax + 4], 1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r15
mov qword [rax + 8], rbp
movsd qword [rax + 0x28], xmm0
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [rcx + rax + 0x10], rdx
movsxd rax, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rax, 5
cmp qword [rax + rcx + 0x10], 0
je 0x140183505
mov dword [rax + rcx + 4], 2
jmp 0x1401821f0
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 1
jg 0x140181596
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jl 0x1401815af
lea edx, [rcx + 2]
cmp r8d, edx
jg 0x140181592
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x1401815af
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], r12b
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 1]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0
mov eax, dword [r14 + 0x1c]
inc eax
cmp eax, 4
jge 0x1401815c3
cmp eax, 3
jge 0x1401815c8
mov edi, eax
jmp 0x1401815cd
mov eax, 4
mov edi, 3
test byte [r14 + 0x40], 1
movsxd rbx, eax
jne 0x1401815f1
mov rdx, qword [r14 + 8]
lea rcx, [0x1401c0484]
mov r8, rbx
mov rdx, qword [rdx]
call fcn.140198a3c
test eax, eax
je 0x14018160b
mov rdx, qword [r14 + 8]
lea rcx, [0x1401c0484]
mov r8, rbx
mov rdx, qword [rdx]
call fcn.140190220
test eax, eax
jne 0x140181647
mov eax, dword [r14 + 0x1c]
cmp eax, 4
jne 0x1401823ad
movsxd rcx, dword [r14 + 0x14]
mov edi, 5
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [rcx + rax + 0x10], r15
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 2
jmp 0x1401821f0
test byte [r14 + 0x40], 1
movsxd rbx, edi
jne 0x14018166b
mov rdx, qword [r14 + 8]
lea rcx, [0x1401bd088]
mov r8, rbx
mov rdx, qword [rdx]
call fcn.140198a3c
test eax, eax
je 0x14018168d
mov rdx, qword ds:[r14 + 8]
lea rcx, [0x1401bd088]
mov r8, rbx
mov rdx, qword [rdx]
call fcn.140190220
test eax, eax
jne 0x140183346
mov eax, dword [r14 + 0x1c]
cmp eax, 3
jne 0x1401823ad
lea ecx, ds:[rax + 0x2d]
call fcn.14019019c
mov rdx, rax
test rax, rax
jne 0x1401816b2
mov rdx, r15
jmp 0x1401816dd
mov dword [rax], 2
mov dword [rax + 4], 1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r15
mov qword [rax + 8], rbp
movabs rax, 0x7ff8000000000000
mov qword [rdx + 0x28], rax
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [rcx + rax + 0x10], rdx
movsxd rax, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rax, 5
cmp qword [rax + rcx + 0x10], 0
je 0x140183505
mov dword [rax + rcx + 4], 2
mov edi, 5
jmp 0x1401821f0
nop dword [rax + rax]
test r15b, r15b
jne 0x1401823b8
cmp r12b, 0x5c
je 0x1401823b8
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 3
jle 0x14018174e
mov rdx, rcx
jmp 0x140181775
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 3
jl 0x1401817a0
lea edx, ds:[rcx + 4]
cmp r8d, edx
jg 0x140181771
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x1401817a0
movsxd rdx, dword [rbx + 8]
movzx eax, word [0x14023e8b4]
mov rcx, qword [rbx]
mov word [rdx + rcx], ax
movzx eax, byte [0x14023e8b6]
mov byte [rdx + rcx + 2], al
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 3]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 3], 0
mov qword [r14 + 0x28], 0
mov dword [r14 + 0x1c], r15d
jmp 0x14018129e
test r15b, r15b
jne 0x1401823cc
nop word [rax + rax]
cmp r12b, 0x75
je 0x1401823cc
mov rbx, qword ds:[r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 3
jle 0x1401817ea
mov rdx, rcx
jmp 0x14018180e
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 3
jl 0x140181839
lea edx, [rcx + 4]
cmp r8d, edx
jg 0x14018180a
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x140181839
movsxd rdx, dword [rbx + 8]
movzx eax, word [0x14023e8b4]
mov rcx, qword [rbx]
mov word [rdx + rcx], ax
movzx eax, byte [0x14023e8b6]
mov byte [rdx + rcx + 2], al
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 3]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 3], 0
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [r14 + 0x28], 0
mov dword [r14 + 0x1c], r15d
mov dword [rcx + rax], 9
jmp 0x140182200
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 1
jg 0x140181897
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jl 0x1401818b0
lea edx, [rcx + 2]
cmp r8d, edx
jg 0x140181893
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x1401818b0
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], r12b
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 1]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0
mov ebx, dword [r14 + 0x1c]
inc ebx
cmp ebx, 4
jge 0x1401818bf
mov eax, ebx
jmp 0x1401818cb
mov eax, 4
cmp ebx, 5
jl 0x1401818cb
mov ebx, edi
test byte [r14 + 0x40], 1
movsxd rdi, eax
jne 0x1401818ef
mov rdx, qword [r14 + 8]
lea rcx, [0x1401bd204]
mov r8, rdi
mov rdx, qword [rdx]
call fcn.140198a3c
test eax, eax
je 0x140181909
mov rdx, qword [r14 + 8]
lea rcx, [0x1401bd204]
mov r8, rdi
mov rdx, qword [rdx]
call fcn.140190220
test eax, eax
jne 0x14018195e
mov eax, dword [r14 + 0x1c]
cmp eax, 4
jne 0x1401823ad
lea ecx, [rax + 0x2c]
call fcn.14019019c
mov rdx, rax
test rax, rax
jne 0x14018192e
mov rdx, r15
jmp 0x1401816dd
mov dword [rax], 1
mov dword [rax + 4], 1
lea rax, [0x14017c460]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], r15
mov qword [rdx + 0x20], r15
mov dword [rdx + 0x28], 1
jmp 0x1401816dd
test byte [r14 + 0x40], 1
movsxd rbx, ebx
jne 0x140181984
mov rdx, qword [r14 + 8]
lea rcx, [0x1401bd2d8]
mov r8, rbx
mov rdx, qword [rdx]
call fcn.140198a3c
nop
test eax, eax
je 0x1401819a8
mov rdx, qword [r14 + 8]
lea rcx, [0x1401bd2d8]
mov r8, rbx
mov rdx, qword [rdx]
call fcn.140190220
nop word [rax + rax]
test eax, eax
jne 0x140183353
mov eax, dword [r14 + 0x1c]
cmp eax, 5
jne 0x1401823ad
lea ecx, [rax + 0x2b]
call fcn.14019019c
mov rdx, rax
test rax, rax
jne 0x1401819cd
mov rdx, r15
jmp 0x1401816dd
mov dword [rax], 1
mov dword [rax + 4], 1
lea rax, [0x14017c460]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], r15
mov qword [rdx + 0x20], r15
mov dword [rdx + 0x28], r15d
jmp 0x1401816dd
mov rcx, qword [r14 + 8]
xor esi, esi
xor ebp, ebp
xor ebx, ebx
mov r15, r10
lea edi, [rsi + 1]
cmp dword [rcx + 8], ebx
jle 0x140181a7e
mov rcx, qword [rcx]
lea edx, [rsi + 0x65]
call fcn.140186514
mov r8, rax
test rax, rax
jne 0x140181a3c
mov rcx, qword [r14 + 8]
lea edx, [rsi + 0x45]
mov rcx, qword [rcx]
call fcn.140186514
mov r8, rax
test rax, rax
je 0x140181a6c
mov rdx, qword [r14 + 8]
mov ebp, edi
mov r10, qword [rsp + 0xe8]
mov ebx, edi
movabs r11, 0x2002000020000009
mov eax, dword [rdx + 8]
dec eax
movsxd rcx, eax
add rcx, qword [rdx]
cmp r8, rcx
je 0x140181a7e
xor edi, edi
xor ebx, ebx
jmp 0x140181a7e
mov r10, qword [rsp + 0xe8]
movabs r11, 0x2002000020000009
nop
test r12b, r12b
je 0x140181bc9
nop dword [rax]
lea eax, [r12 - 0x30]
movsxd rdx, esi
cmp al, 9
jbe 0x140181adb
nop dword [rax]
test ebp, ebp
jne 0x140181aad
lea eax, [r12 - 0x45]
test al, 0xdf
je 0x140181adb
test edi, edi
je 0x140181ab7
cmp r12b, 0x2d
je 0x140181adb
test ebx, ebx
je 0x140181ac6
nop dword [rax + rax]
cmp r12b, 0x2b
je 0x140181adb
cmp dword [r14 + 0x18], 0
jne 0x140181bc9
cmp r12b, 0x2e
jne 0x140181bc9
xor edi, edi
inc esi
cmp r12b, 0x2e
je 0x140181b1a
lea eax, [r12 - 0x45]
test al, 0xdf
jne 0x140181afa
mov ebp, 1
mov dword [r14 + 0x18], ebp
mov edi, ebp
mov eax, dword [r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
test r12b, r12b
je 0x140183392
jmp 0x140181b3c
mov eax, dword [r14 + 0x20]
inc r10
inc eax
mov dword [r14 + 0x18], 1
mov dword [r14 + 0x20], eax
mov edi, 1
mov qword [rsp + 0xe8], r10
nop dword [rax]
cmp eax, 0xffffffff
je 0x14018336f
test byte [r14 + 0x40], 0x10
je 0x140181bac
movzx ecx, byte [r10]
test r13d, r13d
jne 0x140181b96
cmp cl, 0x80
jb 0x140181bac
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x140181b6f
mov r13d, 1
jmp 0x140181bac
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x140181b82
mov r13d, 2
jmp 0x140181bac
and cl, 0xf8
cmp cl, 0xf0
jne 0x140183365
mov r13d, 3
jmp 0x140181bac
and cl, 0xc0
cmp cl, 0x80
jne 0x140183365
dec r13d
movzx r12d, byte ds:[r10]
mov ebx, edi
mov byte [rsp + 0xf0], r12b
test r12b, r12b
jne 0x140181a90
cmp dword [r14 + 0x14], 0
jle 0x140181bfa
lea eax, [r12 - 0x2c]
cmp al, 0x3d
ja 0x140181be3
movsx rax, al
bt r11, rax
jb 0x140181bfa
cmp r12b, 0x7d
je 0x140181bfa
movzx ecx, r12b
call fcn.140192a20
test eax, eax
je 0x1401833d9
test esi, esi
jle 0x140181c38
mov rbx, qword [r14 + 8]
mov rdx, r15
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, esi
jle 0x140181c2d
add rcx, qword [rbx]
movsxd r8, esi
call fcn.140188690
add dword [rbx + 8], esi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x140181c38
mov r8d, esi
mov rcx, rbx
call fcn.140184060
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
cmp byte [rax], 0x2d
jne 0x140181c85
cmp esi, 1
jg 0x140181c85
lea eax, [r12 - 0x49]
test al, 0xdf
jne 0x140181c85
movsxd rcx, dword ds:[r14 + 0x14]
lea rbp, [0x14017c920]
mov rax, qword [r14 + 0x38]
mov rsi, qword [rsp + 0x28]
shl rcx, 5
xor r15d, r15d
mov dword [rcx + rax], 0x1a
lea edi, [r15 + 5]
mov dword [r14 + 0x1c], r15d
jmp 0x140182200
cmp dword [r14 + 0x18], 0
mov rax, rcx
je 0x140181cf5
test byte [r14 + 0x40], 1
jne 0x140181cf5
cmp dword [rcx + 8], 1
jle 0x140181cf5
movabs r12, 0x100000001000001
nop word [rax + rax]
movsxd r8, dword [rcx + 8]
mov r9, qword [rcx]
movzx edx, byte [r8 + r9 - 1]
lea eax, [rdx - 0x2d]
cmp al, 0x38
ja 0x140181cca
bt r12, rax
jb 0x140181cd2
mov rax, rcx
cmp dl, 0x2b
jne 0x140181cec
mov byte [r8 + r9 - 1], 0
mov rax, qword [r14 + 8]
dec dword [rax + 8]
mov rax, qword [r14 + 8]
mov rcx, rax
cmp dword [rax + 8], 1
jg 0x140181cb0
movzx r12d, byte [rsp + 0xf0]
mov ecx, dword ds:[r14 + 0x18]
test ecx, ecx
jne 0x140181ddb
mov rbx, qword [rax]
cmp byte [rbx], 0x2d
jne 0x140181de8
xor r15d, r15d
mov qword [rsp + 0x30], r15
call fcn.140192894
lea r8d, [r15 + 0xa]
mov rcx, rbx
lea rdx, [rsp + 0x30]
mov dword [rax], r15d
call fcn.1401979d8
mov rbp, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
cmp rcx, rbx
cmovne rbp, rax
mov qword [rsp + 0x40], rbp
test rax, rax
jne 0x140181d63
call fcn.140192894
cmp dword [rax], r15d
jne 0x140181dd5
mov rcx, qword [rsp + 0x30]
cmp rcx, rbx
je 0x140181dd5
mov ecx, 0x38
call fcn.14019019c
mov rdx, rax
test rax, rax
jne 0x140181d7f
mov rdx, r15
jmp 0x140181dab
mov dword [rax], 3
mov dword [rax + 4], 1
lea rax, [0x14017c4a0]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], r15
mov qword [rdx + 0x20], r15
mov qword [rdx + 0x30], rbp
mov dword [rdx + 0x28], r15d
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [rcx + rax + 0x10], rdx
movsxd rcx, dword [r14 + 0x14]
mov rdx, qword [r14 + 0x38]
mov rax, rcx
shl rax, 5
cmp qword [rax + rdx + 0x10], r15
jmp 0x14018205b
mov ecx, dword [r14 + 0x18]
jmp 0x140181dde
xor r15d, r15d
nop
test ecx, ecx
jne 0x140181f45
mov rax, qword [r14 + 8]
xor r15d, r15d
mov rbx, qword [rax]
cmp byte [rbx], 0x2d
je 0x140181f45
mov qword [rsp + 0x38], r15
call fcn.140192894
mov dword [rax], r15d
movzx eax, byte [rbx]
cmp al, 0x20
jne 0x140181e1b
nop
movzx eax, byte [rbx + 1]
inc rbx
cmp al, 0x20
je 0x140181e10
nop dword [rax + rax]
cmp al, 0x2d
je 0x140181f45
mov r8d, 0xa
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.140197a8c
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
cmp rcx, rbx
cmovne rdi, rax
mov qword [rsp + 0x48], rdi
test rax, rax
jne 0x140181e6e
call fcn.140192894
nop dword [rax + rax]
cmp dword [rax], r15d
jne 0x140181f45
mov rcx, qword [rsp + 0x38]
cmp rcx, rbx
je 0x140181f45
test rdi, rdi
je 0x140181ef3
mov rax, qword [r14 + 8]
mov rcx, qword [rax]
cmp byte [rcx], 0x30
jne 0x140181e93
test byte [r14 + 0x40], 1
jne 0x1401833d9
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
jbe 0x140181ef3
mov ecx, 0x38
call fcn.14019019c
mov rdx, rax
test rax, rax
jne 0x140181ebf
mov rdx, r15
jmp 0x140181dab
mov dword [rax], 3
mov dword [rax + 4], 1
lea rax, [0x14017c4a0]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], r15
mov qword [rdx + 0x20], r15
mov qword [rdx + 0x30], rdi
mov dword [rdx + 0x28], 1
jmp 0x140181dab
mov ecx, 0x38
mov qword [rsp + 0x40], rdi
call fcn.14019019c
mov rdx, rax
test rax, rax
jne 0x140181f15
mov rdx, r15
jmp 0x140181dab
mov dword ds:[rax], 3
mov dword [rax + 4], 1
lea rax, [0x14017c4a0]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], r15
mov qword [rdx + 0x20], r15
mov qword [rdx + 0x30], rdi
jmp 0x140181da7
cmp dword [r14 + 0x18], 0
je 0x1401833d9
mov rax, qword [r14 + 8]
lea rdx, [rsp + 0x50]
mov rdi, qword [rax]
movsxd rbx, dword [rax + 8]
mov rcx, rdi
call fcn.14019610c
add rbx, rdi
movaps xmm6, xmm0
cmp rbx, qword [rsp + 0x50]
jne 0x1401833d9
mov rax, qword [r14 + 8]
mov ecx, 0x30
mov rdi, qword [rax]
call fcn.14019019c
mov rbx, rax
test rax, rax
jne 0x140181f9a
mov rbx, r15
jmp 0x140182035
mov dword [rax], 2
mov rcx, rdi
mov dword [rax + 4], 1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r15
lea rax, [0x14017c920]
mov qword [rbx + 8], rax
movsd qword [rbx + 0x28], xmm6
call fcn.140196114
mov rdi, rax
test rax, rax
jne 0x140182005
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x140181fed
mov rcx, qword ds:[rdi]
call fcn.140190188
mov rcx, rdi
call fcn.140190188
mov rcx, rbx
call fcn.140190188
call fcn.140192894
mov rbx, r15
mov dword [rax], 0xc
jmp 0x140182035
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14018201b
mov rdx, qword [rbx + 0x20]
mov rcx, rbx
call qword [case.0x1400f654f.0]
lea rax, [0x14017c970]
mov qword [rbx + 0x20], rdi
mov qword [rbx + 0x18], rax
lea rax, [0x14017c940]
mov qword [rbx + 8], rax
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [rcx + rax + 0x10], rbx
movsxd rcx, dword [r14 + 0x14]
mov rdx, qword [r14 + 0x38]
mov rax, rcx
shl rax, 5
cmp qword [rax + rdx + 0x10], 0
nop dword [rax + rax]
je 0x140183505
mov rsi, qword [rsp + 0x28]
lea rbp, [0x14017c920]
movsxd rax, ecx
mov edi, 5
shl rax, 5
mov dword [rax + rdx + 4], 2
jmp 0x1401821f0
cmp r12b, 0x5d
je 0x1401823e5
mov eax, dword ds:[r14 + 0x10]
dec eax
cmp edx, eax
jge 0x1401833e6
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 0x10
movsxd rcx, dword [r14 + 0x14]
lea eax, [rcx + 1]
mov dword [r14 + 0x14], eax
lea rbx, [rcx + 1]
mov rax, qword [r14 + 0x38]
shl rbx, 5
mov dword [rbx + rax], r15d
mov rax, qword [r14 + 0x38]
mov dword [rbx + rax + 4], 1
mov rcx, qword [r14 + 0x38]
mov rcx, qword [rbx + rcx + 0x10]
call fcn.14017bb80
mov rax, qword ds:[r14 + 0x38]
mov qword [rbx + rax + 0x10], r15
mov rcx, qword [r14 + 0x38]
mov rcx, qword [rbx + rcx + 0x18]
call fcn.140190188
mov rax, qword [r14 + 0x38]
mov qword [rbx + rax + 0x18], r15
jmp 0x140182200
movsxd rax, edx
shl rax, 5
mov rax, qword [rax + r9 + 0x10]
mov rbx, qword [rax + 0x28]
mov rdi, qword [rbx + 8]
cmp rdi, 0xfffffffffffffffe
ja 0x140183505
lfence
lea rdx, [rdi + 1]
mov rcx, rbx
call fcn.140183ee0
test eax, eax
jne 0x140183505
mov rax, qword [rbx]
mov qword [rax + rdi*8], rsi
mov edi, 5
inc qword [rbx + 8]
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 0x11
jmp 0x1401821f0
mov eax, dword ds:[r14 + 0x10]
dec eax
cmp edx, eax
jge 0x1401833e6
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 0x16
jmp 0x1401820b7
movsxd rcx, edx
mov r8, rsi
shl rcx, 5
mov rdx, qword [rcx + r9 + 0x18]
mov rcx, qword [rcx + r9 + 0x10]
call fcn.14017c3a0
movsxd rax, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rax, 5
mov rcx, qword [rax + rcx + 0x18]
call fcn.140190188
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [rcx + rax + 0x18], r15
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 0x17
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], r15d
mov r10, qword [rsp + 0xe8]
lea r8, [0x140000000]
movabs r11, 0x2002000020000009
movsxd rdx, dword [r14 + 0x14]
mov r9, qword [r14 + 0x38]
mov rax, rdx
shl rax, 5
mov ecx, dword [rax + r9]
cmp ecx, 0x1a
jbe 0x1401811c0
jmp case.default.0x1401811ce
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
mov byte [rax], 0
mov dword [rcx + 8], r15d
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 1
jg 0x140182282
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jl 0x14018229b
lea edx, [rcx + 2]
cmp r8d, edx
jg 0x14018227e
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x14018229b
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0x2f
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 1]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], 4
mov r10, qword [rsp + 0xe8]
mov eax, dword [r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
jmp 0x140181115
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], r15d
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 0x12
call fcn.14017c1a0
movsxd rdx, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rdx, 5
mov qword [rdx + rcx + 0x10], rax
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
cmp qword [rcx + rax + 0x10], 0
je 0x140183505
mov r10, qword [rsp + 0xe8]
mov eax, dword ds:[r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
test r12b, r12b
je 0x140183505
mov rsi, qword [rsp + 0x28]
jmp 0x140181115
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], r15d
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 0xf
call fcn.14017ce60
jmp 0x1401822f4
test byte [r14 + 0x40], 1
jne case.0x1401812e0.42
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 8
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
mov byte [rax], 0
mov dword [rcx + 8], r15d
mov byte [r14 + 0x30], r12b
jmp case.default.0x1401811ce
inc eax
mov dword [r14 + 0x1c], eax
jmp 0x14018231d
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 0xc
jmp 0x1401832ea
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], 0xa
jmp 0x1401832ea
movsxd rcx, edx
shl rcx, 5
mov rcx, qword [rcx + r9 + 0x10]
call fcn.14017cf60
movsxd rax, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rax, 5
cmp dword [rax + rcx], 0x18
jne 0x140182413
test byte [r14 + 0x40], 1
jne case.0x1401812e0.42
mov dword [rax + rcx + 4], 2
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], r15d
jmp 0x1401822ae
cmp r12b, 0x2a
jne 0x14018243a
mov ecx, edi
jmp 0x14018244f
nop word [rax + rax]
cmp r12b, 0x2f
jne 0x1401833f3
mov ecx, 6
movsxd rax, edx
shl rax, 5
mov dword [rax + r9], ecx
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 1
jle 0x14018248e
mov rax, qword [rbx]
mov byte [rcx + rax], r12b
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 1]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0
jmp case.default.0x1401811ce
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jl case.default.0x1401811ce
lea edx, [rcx + 2]
cmp r8d, edx
jg 0x1401824be
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x14018231d
mov r10, qword [rsp + 0xe8]
movsxd rcx, dword ds:[rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], r12b
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 1]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0
jmp case.default.0x1401811ce
mov rdx, r10
cmp r12b, 0x2a
je 0x14018258a
mov eax, dword [r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
test r12b, r12b
je 0x140183447
cmp eax, 0xffffffff
je 0x140183425
test byte ds:[r14 + 0x40], 0x10
je 0x140182576
movzx ecx, byte [r10]
test r13d, r13d
jne 0x140182567
cmp cl, 0x80
jb 0x140182576
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x140182542
mov r13d, 1
jmp 0x140182576
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x140182553
mov r13d, 2
jmp 0x140182576
and cl, 0xf8
cmp cl, 0xf0
jne 0x140183405
mov r13d, 3
jmp 0x140182576
and cl, 0xc0
cmp cl, 0x80
jne 0x140183405
dec r13d
movzx r12d, byte ds:[r10]
cmp r12b, 0x2a
jne 0x1401824f2
mov rbx, qword ds:[r14 + 8]
mov edi, r10d
sub edi, edx
inc edi
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, edi
jle 0x1401825bf
add rcx, qword [rbx]
movsxd r8, edi
call fcn.140188690
add dword [rbx + 8], edi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x1401825ca
mov r8d, edi
mov rcx, rbx
call fcn.140184060
movsxd rcx, dword ds:[r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], 7
jmp 0x14018231d
mov rdx, r10
cmp r12b, 0xa
je 0x14018268a
mov eax, dword [r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
test r12b, r12b
je 0x140183447
cmp eax, 0xffffffff
je 0x140183425
test byte ds:[r14 + 0x40], 0x10
je 0x140182676
movzx ecx, byte [r10]
test r13d, r13d
jne 0x140182667
cmp cl, 0x80
jb 0x140182676
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x140182642
mov r13d, 1
jmp 0x140182676
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x140182653
mov r13d, 2
jmp 0x140182676
and cl, 0xf8
cmp cl, 0xf0
jne 0x140183405
mov r13d, 3
jmp 0x140182676
and cl, 0xc0
cmp cl, 0x80
jne 0x140183405
dec r13d
movzx r12d, byte ds:[r10]
cmp r12b, 0xa
jne 0x1401825f2
mov rbx, qword ds:[r14 + 8]
mov edi, r10d
sub edi, edx
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, edi
jle 0x1401826bf
add rcx, qword [rbx]
movsxd r8, edi
call fcn.140188690
add dword [rbx + 8], edi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x1401826ca
mov r8d, edi
mov rcx, rbx
call fcn.140184060
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], r15d
jmp 0x14018231d
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 1
jg 0x14018271d
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jl 0x140182736
lea edx, [rcx + 2]
cmp r8d, edx
jg 0x140182719
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x140182736
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], r12b
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 1]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0
movsxd rcx, dword [r14 + 0x14]
cmp r12b, 0x2f
mov rax, qword [r14 + 0x38]
mov edx, r15d
cmovne edx, edi
shl rcx, 5
mov dword [rcx + rax], edx
jmp 0x14018231d
movzx edx, byte ds:[r14 + 0x30]
mov r9, r10
cmp r12b, dl
je 0x140182819
nop dword [rax]
cmp r12b, 0x5c
je 0x140182855
mov eax, dword [r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
test r12b, r12b
je 0x14018349d
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x14018347a
test byte [r14 + 0x40], 0x10
je 0x14018280c
movzx ecx, byte [r10]
test r13d, r13d
jne 0x1401827f6
cmp cl, 0x80
jb 0x14018280c
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x1401827cf
mov r13d, 1
jmp 0x14018280c
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x1401827e2
mov r13d, 2
jmp 0x14018280c
and cl, 0xf8
cmp cl, 0xf0
jne 0x14018345b
mov r13d, 3
jmp 0x14018280c
and cl, 0xc0
cmp cl, 0x80
jne 0x14018345b
dec r13d
movzx r12d, byte [r10]
cmp r12b, dl
jne 0x140182770
mov rbx, qword [r14 + 8]
mov edi, r10d
sub edi, r9d
mov rdx, r9
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, edi
jle 0x1401828c5
add rcx, qword ds:[rbx]
movsxd r8, edi
call fcn.140188690
add dword [rbx + 8], edi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x1401828d0
mov rbx, qword [r14 + 8]
mov edi, r10d
sub edi, r9d
mov rdx, r9
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, edi
jle 0x14018288a
add rcx, qword [rbx]
movsxd r8, edi
call fcn.140188690
add dword [rbx + 8], edi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x140182895
mov r8d, edi
mov rcx, rbx
call fcn.140184060
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 8
movsxd rcx, dword ds:[r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], 9
jmp 0x14018231d
mov r8d, edi
mov rcx, rbx
call fcn.140184060
mov rax, qword [r14 + 8]
movsxd rdi, dword [rax + 8]
mov rsi, qword [rax]
movabs rax, 0x7fffffffffffffce
cmp rdi, rax
jbe 0x1401828ef
mov rbx, r15
jmp 0x140182951
lfence
mov eax, 0x39
lea rcx, [rdi + 0x31]
cmp rdi, 8
cmovb rcx, rax
call fcn.14019019c
mov rbx, rax
test rax, rax
jne 0x140182915
mov rbx, r15
jmp 0x140182951
mov dword [rax], 6
lea rcx, [rbx + 0x30]
mov dword [rax + 4], 1
mov r8, rdi
lea rax, [0x14017c980]
mov qword [rbx + 0x10], r15
mov qword [rbx + 8], rax
mov rdx, rsi
mov qword [rbx + 0x18], r15
mov qword [rbx + 0x20], r15
mov qword [rbx + 0x28], rdi
call fcn.140188690
mov byte [rbx + rdi + 0x30], 0
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov qword [rcx + rax + 0x10], rbx
movsxd rax, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rax, 5
cmp qword [rax + rcx + 0x10], 0
je 0x140183505
mov dword [rax + rcx + 4], 2
jmp 0x1401826ca
movsx eax, r12b
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x1401829ad.37
cdqe
movzx eax, byte [r8 + rax + 0x183744]
mov ecx, dword [r8 + rax*4 + 0x183734]
add rcx, r8
jmp rcx
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 1
jg 0x1401829ed
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jl 0x140182a06
lea edx, [rcx + 2]
cmp r8d, edx
jg 0x1401829e9
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x140182a06
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], r12b
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 1]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 1], 0
movsxd rdx, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rdx, 5
mov eax, dword [rdx + rcx + 4]
mov dword [rdx + rcx], eax
jmp 0x14018231d
nop
cmp r12b, 0x62
jne 0x140182a51
mov r9, qword [r14 + 8]
movsxd rcx, dword [r9 + 8]
mov eax, dword [r9 + 0xc]
sub eax, ecx
cmp eax, 1
jle 0x140182a45
mov rax, qword [r9]
mov byte [rcx + rax], 8
jmp 0x140182b00
lea rdx, str._b_t_r_f
jmp 0x140182b1c
cmp r12b, 0x6e
jne 0x140182a85
mov r9, qword [r14 + 8]
movsxd rcx, dword [r9 + 8]
mov eax, dword [r9 + 0xc]
sub eax, ecx
cmp eax, 1
jle 0x140182a76
mov rax, qword [r9]
mov byte [rcx + rax], 0xa
jmp 0x140182b00
lea rdx, [0x1402107b0]
nop dword [rax]
jmp 0x140182b1c
cmp r12b, 0x72
jne 0x140182ab0
mov r9, qword [r14 + 8]
movsxd rcx, dword [r9 + 8]
mov eax, dword [r9 + 0xc]
sub eax, ecx
cmp eax, 1
jle 0x140182aa7
mov rax, qword [r9]
mov byte [rcx + rax], 0xd
jmp 0x140182b00
lea rdx, [0x1402111d0]
jmp 0x140182b1c
cmp r12b, 0x74
jne 0x140182adb
mov r9, qword [r14 + 8]
movsxd rcx, dword [r9 + 8]
mov eax, dword [r9 + 0xc]
sub eax, ecx
cmp eax, 1
jle 0x140182ad2
mov rax, qword [r9]
mov byte [rcx + rax], 9
jmp 0x140182b00
lea rdx, [0x1402111cc]
jmp 0x140182b1c
nop dword [rax + rax]
cmp r12b, 0x66
jne 0x140182b32
mov r9, qword [r14 + 8]
movsxd rcx, dword [r9 + 8]
mov eax, dword [r9 + 0xc]
sub eax, ecx
cmp eax, 1
jle 0x140182b15
mov rax, qword [r9]
mov byte [rcx + rax], 0xc
movsxd rcx, dword [r9 + 8]
lea eax, [rcx + 1]
mov dword [r9 + 8], eax
mov rax, qword [r9]
mov byte [rcx + rax + 1], 0
jmp 0x140182b32
lea rdx, [0x1402111d4]
mov r8d, 1
mov rcx, r9
call fcn.140184060
mov r10, qword [rsp + 0xe8]
movsxd rdx, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rdx, 5
mov eax, dword [rdx + rcx + 4]
mov dword [rdx + rcx], eax
jmp case.default.0x1401811ce
movsxd rax, edx
shl rax, 5
mov dword [r14 + 0x28], r15d
mov dword [r14 + 0x1c], r15d
mov dword [rax + r9], 0xa
jmp case.default.0x1401811ce
test r12b, r12b
je case.0x1401829ad.37
movsx ebx, r12b
lea rcx, str.0123456789abcdefABCDEF
mov edx, ebx
call fcn.140186514
test rax, rax
je case.0x1401829ad.37
cmp r12b, 0x39
jg 0x140182b99
add ebx, 0xffffffd0
jmp 0x140182b9f
and ebx, 7
add ebx, 9
mov edx, dword ds:[r14 + 0x1c]
mov ecx, 3
sub ecx, edx
shl ecx, 2
shl ebx, cl
or ebx, dword [r14 + 0x28]
lea eax, [rdx + 1]
mov dword [r14 + 0x28], ebx
mov dword [r14 + 0x1c], eax
cmp eax, 4
jge 0x140182c75
mov r10, qword [rsp + 0xe8]
inc dword [r14 + 0x20]
inc r10
cmp dword [r14 + 0x20], 0xffffffff
mov qword [rsp + 0xe8], r10
je 0x1401834e3
test byte [r14 + 0x40], 0x10
je 0x140182c6c
movzx ecx, byte [r10]
test r13d, r13d
jne 0x140182c58
nop
cmp cl, 0x80
jb 0x140182c6c
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x140182c1d
mov r13d, 1
movzx r12d, cl
jmp case.0x1401811ce.10
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x140182c35
movzx r12d, byte [r10]
mov r13d, 2
jmp case.0x1401811ce.10
and cl, 0xf8
cmp cl, 0xf0
jne 0x14018333c
movzx r12d, byte [r10]
mov r13d, 3
jmp case.0x1401811ce.10
and cl, 0xc0
cmp cl, 0x80
jne 0x14018333c
dec r13d
movzx r12d, byte [r10]
jmp case.0x1401811ce.10
mov ecx, dword ds:[r14 + 0x2c]
mov dword [r14 + 0x1c], r15d
test ecx, ecx
je 0x140182d28
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x140182cb3
and ecx, 0x3ff
and ebx, 0x3ff
add ecx, 0x40
shl ecx, 0xa
add ecx, ebx
mov dword [r14 + 0x28], ecx
jmp 0x140182d20
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 3
jle 0x140182cce
mov rdx, rcx
jmp 0x140182cf5
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 3
jl 0x140182d20
lea edx, ds:[rcx + 4]
cmp r8d, edx
jg 0x140182cf1
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x140182d20
movsxd rdx, dword [rbx + 8]
movzx eax, word [0x14023e8b4]
mov rcx, qword [rbx]
mov word [rdx + rcx], ax
movzx eax, byte [0x14023e8b6]
mov byte [rdx + rcx + 2], al
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 3]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 3], 0
mov ebx, dword [r14 + 0x28]
mov dword [r14 + 0x2c], r15d
cmp ebx, 0x80
jae 0x140182d8f
mov rdi, qword [r14 + 8]
mov r8d, dword [rdi + 0xc]
mov eax, r8d
movsxd rcx, dword [rdi + 8]
sub eax, ecx
cmp eax, 1
jg 0x140182d72
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 1
jl 0x140183028
lea edx, [rcx + 2]
cmp r8d, edx
jg 0x140182d6e
mov rcx, rdi
call fcn.140183fe0
test eax, eax
js 0x140183028
movsxd rcx, dword [rdi + 8]
mov rax, qword [rdi]
mov byte [rcx + rax], bl
movsxd rcx, dword [rdi + 8]
lea eax, [rcx + 1]
mov dword [rdi + 8], eax
mov rax, qword [rdi]
mov byte [rcx + rax + 1], 0
jmp 0x140183028
mov eax, ebx
cmp ebx, 0x800
jae 0x140182e32
shr eax, 6
and bl, 0x3f
or al, 0xc0
or bl, 0x80
mov byte [rsp + 0xe0], al
mov byte [rsp + 0xe1], bl
mov rbx, qword [r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 2
jle 0x140182dd1
mov rdx, rcx
jmp 0x140182e0c
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 2
jl 0x140183028
lea edx, [rcx + 3]
cmp r8d, edx
jg 0x140182e08
mov rcx, rbx
call fcn.140183fe0
nop dword [rax]
test eax, eax
js 0x140183028
movsxd rdx, dword [rbx + 8]
mov rcx, qword [rbx]
movzx eax, word [rsp + 0xe0]
mov word [rdx + rcx], ax
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 2]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 2], 0
jmp 0x140183028
and eax, 0xfc00
cmp eax, 0xd800
jne 0x140182e5e
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [r14 + 0x2c], ebx
mov dword [r14 + 0x28], r15d
mov dword [rcx + rax], 0xb
jmp 0x1401822ae
nop
cmp eax, 0xdc00
jne 0x140182e91
mov rbx, qword ds:[r14 + 8]
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 3
jle 0x140182fd7
mov rdx, rcx
jmp 0x140182ffd
cmp ebx, 0x10000
jae 0x140182f2e
mov rdi, qword [r14 + 8]
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0xf8], al
mov eax, ebx
mov r8d, dword [rdi + 0xc]
and bl, 0x3f
movsxd rcx, dword [rdi + 8]
or bl, 0x80
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0xf9], al
mov eax, r8d
sub eax, ecx
cmp eax, 3
jle 0x140182eff
mov rdx, rcx
mov rcx, qword [rdi]
movzx eax, word [rsp + 0xf8]
mov word [rdx + rcx], ax
mov byte [rdx + rcx + 2], bl
movsxd rcx, dword [rdi + 8]
lea eax, [rcx + 3]
mov dword [rdi + 8], eax
mov rax, qword [rdi]
jmp 0x140183023
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 3
jl 0x140183028
lea edx, [rcx + 4]
cmp r8d, edx
jg 0x140182f28
mov rcx, rdi
call fcn.140183fe0
nop
test eax, eax
js 0x140183028
movsxd rdx, dword [rdi + 8]
jmp 0x140182eda
cmp ebx, 0x110000
jae 0x140182e67
mov eax, ebx
shr eax, 0x12
and al, 7
or al, 0xf0
mov byte [rsp + 0x20], al
mov eax, ebx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x21], al
mov eax, ebx
shr eax, 6
and bl, 0x3f
and al, 0x3f
or bl, 0x80
or al, 0x80
mov byte [rsp + 0x23], bl
mov rbx, qword [r14 + 8]
mov byte [rsp + 0x22], al
mov r8d, dword [rbx + 0xc]
mov eax, r8d
movsxd rcx, dword [rbx + 8]
sub eax, ecx
cmp eax, 4
jle 0x140182f8a
mov rdx, rcx
jmp 0x140182fb9
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 4
jl 0x140183028
lea edx, ds:[rcx + 5]
cmp r8d, edx
jg 0x140182fb5
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x140183028
movsxd rdx, dword [rbx + 8]
mov rcx, qword [rbx]
mov eax, dword [rsp + 0x20]
mov dword [rdx + rcx], eax
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 4]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 4], 0
jmp 0x140183028
mov eax, 0x7ffffffe
sub eax, ecx
cmp eax, 3
jl 0x140183028
lea edx, [rcx + 4]
cmp r8d, edx
jg 0x140182ff9
mov rcx, rbx
call fcn.140183fe0
test eax, eax
js 0x140183028
movsxd rdx, dword [rbx + 8]
movzx eax, word [0x14023e8b4]
mov rcx, qword [rbx]
mov word [rdx + rcx], ax
movzx eax, byte [0x14023e8b6]
mov byte [rdx + rcx + 2], al
movsxd rcx, dword [rbx + 8]
lea eax, [rcx + 3]
mov dword [rbx + 8], eax
mov rax, qword [rbx]
mov byte [rcx + rax + 3], 0
movsxd rdx, dword ds:[r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rdx, 5
mov eax, dword [rdx + rcx + 4]
mov dword [rdx + rcx], eax
jmp 0x1401822ae
cmp r12b, 0x5d
jne 0x140183075
movsxd rcx, edx
shl rcx, 5
mov rcx, qword [rcx + r9 + 0x10]
call fcn.14017cf60
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 2
jmp 0x1401826ca
cmp r12b, 0x2c
jne 0x1401834bb
movsxd rax, edx
shl rax, 5
mov dword [rax + r9 + 4], 0x18
movsxd rcx, dword ds:[r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], r15d
jmp case.default.0x1401811ce
cmp r12b, 0x7d
jne 0x1401830d1
movsxd rax, edx
shl rax, 5
cmp dword [rax + r9], 0x19
jne 0x1401830c6
test byte ds:[r14 + 0x40], 1
jne case.0x1401812e0.42
mov dword [rax + r9 + 4], 2
jmp 0x14018308f
cmp r12b, 0x22
je 0x1401830ea
nop word [rax + rax]
cmp r12b, 0x27
jne 0x1401834c5
mov rcx, qword [r14 + 8]
mov byte [r14 + 0x30], r12b
mov rax, qword [rcx]
mov byte [rax], 0
mov dword [rcx + 8], r15d
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], 0x13
jmp case.default.0x1401811ce
movzx edx, byte ds:[r14 + 0x30]
mov r9, r10
cmp r12b, dl
je 0x1401831d9
nop dword [rax]
cmp r12b, 0x5c
je 0x14018320e
mov eax, dword [r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
test r12b, r12b
je 0x14018349d
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x14018347a
test byte [r14 + 0x40], 0x10
je 0x1401831cc
movzx ecx, byte [r10]
test r13d, r13d
jne 0x1401831b6
cmp cl, 0x80
jb 0x1401831cc
movzx eax, cl
and al, 0xe0
cmp al, 0xc0
jne 0x14018318f
mov r13d, 1
jmp 0x1401831cc
movzx eax, cl
and al, 0xf0
cmp al, 0xe0
jne 0x1401831a2
mov r13d, 2
jmp 0x1401831cc
and cl, 0xf8
cmp cl, 0xf0
jne 0x14018345b
mov r13d, 3
jmp 0x1401831cc
and cl, 0xc0
cmp cl, 0x80
jne 0x14018345b
dec r13d
movzx r12d, byte [r10]
cmp r12b, dl
jne 0x140183130
mov rbx, qword [r14 + 8]
mov edi, r10d
sub edi, r9d
mov rdx, r9
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, edi
jle 0x140183267
add rcx, qword [rbx]
movsxd r8, edi
call fcn.140188690
add dword [rbx + 8], edi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x140183272
mov rbx, qword [r14 + 8]
mov edi, r10d
sub edi, r9d
mov rdx, r9
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, edi
jle 0x140183243
add rcx, qword [rbx]
movsxd r8, edi
call fcn.140188690
add dword [rbx + 8], edi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x14018324e
mov r8d, edi
mov rcx, rbx
call fcn.140184060
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 0x13
jmp 0x1401828a9
mov r8d, edi
mov rcx, rbx
call fcn.140184060
mov rcx, qword [r14 + 8]
mov rcx, qword [rcx]
call fcn.140196114
movsxd rdx, dword [r14 + 0x14]
mov rcx, qword [r14 + 0x38]
shl rdx, 5
mov qword [rdx + rcx + 0x18], rax
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax + 4], 0x14
jmp 0x1401826ca
cmp r12b, 0x3a
jne 0x1401834cf
movsxd rax, edx
shl rax, 5
mov dword [rax + r9 + 4], 0x15
jmp 0x1401832da
cmp r12b, 0x7d
jne 0x140183305
movsxd rax, edx
shl rax, 5
mov dword [rax + r9 + 4], 2
movsxd rcx, dword [r14 + 0x14]
mov rax, qword [r14 + 0x38]
shl rcx, 5
mov dword [rcx + rax], r15d
mov eax, dword ds:[r14 + 0x20]
inc r10
inc eax
mov qword [rsp + 0xe8], r10
mov dword [r14 + 0x20], eax
jmp 0x140181126
cmp r12b, 0x2c
jne 0x1401834d9
movsxd rax, edx
shl rax, 5
mov dword [rax + r9 + 4], 0x19
jmp 0x1401832da
mov dword [r14 + 0x24], 0xe
jmp 0x140183505
mov dword [r14 + 0x24], 4
jmp 0x140183505
mov eax, 0xe
jmp 0x140183501
mov dword [r14 + 0x24], 5
jmp 0x140183505
mov dword ds:[r14 + 0x24], 6
jmp 0x140183505
mov dword [r14 + 0x24], 0xe
jmp 0x140183392
cmp dword [r14 + 0x14], 0
jne 0x140183389
mov rax, qword [r14 + 0x38]
cmp dword [rax], 0
jne 0x140183389
cmp dword [rax + 4], 2
jne 0x140183389
xor eax, eax
jmp 0x14018338e
mov eax, 1
mov dword [r14 + 0x24], eax
mov rbx, qword ds:[r14 + 8]
movsxd rcx, dword [rbx + 8]
mov eax, dword [rbx + 0xc]
sub eax, ecx
cmp eax, esi
jle 0x1401833c6
add rcx, qword [rbx]
lea r8, [rdx + 1]
mov rdx, r15
call fcn.140188690
add dword [rbx + 8], esi
movsxd rcx, dword [rbx + 8]
mov rax, qword [rbx]
mov byte [rcx + rax], 0
jmp 0x140183505
mov r8d, esi
mov rdx, r15
mov rcx, rbx
call fcn.140184060
jmp 0x140183505
mov dword [r14 + 0x24], 7
jmp 0x140183505
mov dword [r14 + 0x24], 2
jmp 0x140183505
mov dword ds:[r14 + 0x24], 0xd
jmp 0x140183505
mov rcx, qword [r14 + 8]
sub r10, rdx
mov r8, r10
mov dword [r14 + 0x24], 0xe
call fcn.140184100
nop dword [rax]
jmp 0x140183505
cmp dword [r14 + 0x14], 0
jne 0x14018343e
mov rax, qword [r14 + 0x38]
cmp dword [rax], 0
jne 0x14018343e
cmp dword [rax + 4], 2
mov eax, r15d
je 0x140183443
mov eax, 1
mov dword [r14 + 0x24], eax
mov rcx, qword [r14 + 8]
sub r10, rdx
mov r8, r10
call fcn.140184100
jmp 0x140183505
mov rcx, qword [r14 + 8]
sub r10, r9
mov r8, r10
mov dword [r14 + 0x24], 0xe
mov rdx, r9
call fcn.140184100
jmp 0x140183505
cmp dword ds:[r14 + 0x14], 0
jne 0x140183494
mov rax, qword [r14 + 0x38]
cmp dword [rax], 0
jne 0x140183494
cmp dword [rax + 4], 2
mov eax, r15d
je 0x140183499
mov eax, 1
mov dword [r14 + 0x24], eax
mov rcx, qword [r14 + 8]
sub r10, r9
mov r8, r10
mov rdx, r9
call fcn.140184100
jmp 0x140183505
mov dword [r14 + 0x24], 0xc
jmp 0x140183505
mov dword [r14 + 0x24], 8
jmp 0x140183505
mov dword [r14 + 0x24], 9
jmp 0x140183505
mov dword [r14 + 0x24], 0xa
jmp 0x140183505
mov dword [r14 + 0x24], 0xb
jmp 0x140183505
cmp dword [r14 + 0x14], 0
jne 0x1401834fc
mov rax, qword [r14 + 0x38]
cmp dword [rax], 0
jne 0x1401834fc
cmp dword [rax + 4], 2
mov eax, r15d
je 0x140183501
mov eax, 1
mov dword [r14 + 0x24], eax
mov edx, dword ds:[r14 + 0x40]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
test dl, 0x10
je 0x140183532
test r13d, r13d
je 0x140183532
mov dword [r14 + 0x24], 0xe
movsxd rcx, dword [r14 + 0x14]
mov rax, rcx
shl rax, 5
add rax, qword [r14 + 0x38]
test r12b, r12b
je 0x140183566
cmp dword [rax], 2
jne 0x14018355f
test ecx, ecx
jne 0x14018355f
and dl, 3
cmp dl, 1
jne 0x14018355f
mov dword [r14 + 0x24], 4
mov edx, ecx
mov rsi, rax
jmp 0x14018357e
cmp dword [rax], 2
mov edx, ecx
mov rsi, rax
je 0x14018357e
cmp dword [rax + 4], 2
je 0x14018357e
mov dword [r14 + 0x24], 3
cmp dword [r14 + 0x24], 0
jne 0x140183627
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x140183599
inc dword [rsi + 4]
mov edx, dword [r14 + 0x14]
movsxd rdi, edx
test edx, edx
js 0x1401835fb
mov rbx, rdi
shl rbx, 5
xor ebp, ebp
nop dword [rax]
mov rax, qword [r14 + 0x38]
mov dword [rbx + rax], ebp
mov rax, qword [r14 + 0x38]
mov dword [rbx + rax + 4], 1
mov rcx, qword [r14 + 0x38]
mov rcx, qword [rbx + rcx + 0x10]
call fcn.14017bb80
mov rcx, qword [r14 + 0x38]
mov qword [rbx + rcx + 0x10], rbp
mov rcx, qword [r14 + 0x38]
mov rcx, qword [rbx + rcx + 0x18]
call fcn.140190188
sub rdi, 1
mov rcx, qword [r14 + 0x38]
lea rbx, [rbx - 0x20]
mov qword [rbx + rcx + 0x38], rbp
jns 0x1401835b0
mov rax, rsi
mov rbp, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x98]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rsi
ret
xor eax, eax
jmp 0x1401835fe
mov dword [rcx + 0x24], 0xf
xor eax, eax
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rsi
ret