Function at 0x14002d020
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
and byte [rcx + 0x30], 0x90
cmp dword [rcx + 8], 0xcf
mov r12, qword [rcx]
mov dword [rcx + 0x10], r9d
mov rbx, rcx
mov r13, rdx
mov r14, r8
mov dword [rsp + 0x5c], 0
mov ebp, r9d
mov dword [rcx + 0xc], 0
mov qword [rcx + 0x28], 0
jbe 0x14002dfb2
lea rdi, [r12 + 8]
mov rcx, r12
xor eax, eax
mov dword [rbx + 0xc], 0xd0
and rdi, 0xfffffffffffffff8
mov qword [r12], 0
mov qword [r12 + 0xc8], 0
sub rcx, rdi
add ecx, 0xd0
shr ecx, 3
rep stosq qword [rdi], rax
mov dword [r12 + 0x80], 0xf
cmp r14, 0xffffffffffffffff
je 0x14002d6d0
lea rcx, [r14 + 1]
mov qword [r12 + 8], rcx
shl rcx, 4
call sub.msvcrt.dll_malloc
mov qword [r12], rax
test r14, r14
je 0x14002e018
mov eax, 1
lea edx, [rax + rax]
mov rax, rdx
cmp r14, rdx
jae 0x14002d0e0
lea esi, [rdx - 1]
mov ecx, 0x10
call sub.msvcrt.dll_calloc
mov dword [r12 + 0x84], esi
mov qword [r12 + 0x40], rax
call qword [sym.imp.msvcrt.dll____mb_cur_max_func]
lea rcx, str.LC_ALL
mov dword [r12 + 0x9c], eax
call sub.msvcrt.dll_getenv
mov r15, rax
test rax, rax
je 0x14002d620
cmp byte [rax], 0
je 0x14002d620
mov edx, 0x2e
mov rcx, r15
call sub.msvcrt.dll_strchr
lea rdx, [rax + 1]
test rax, rax
cmovne r15, rdx
mov rsi, qword [sym.imp.msvcrt.dll__stricmp]
lea rdx, str.UTF_8
mov rcx, r15
call rsi
test eax, eax
jne 0x14002d706
or byte [r12 + 0x98], 4
movzx eax, byte [r12 + 0x98]
and eax, 0xfffffff7
cmp qword [r12], 0
mov byte [r12 + 0x98], al
je 0x14002d6d0
cmp qword [r12 + 0x40], 0
je 0x14002d6d0
mov r15, qword [rbx + 0x20]
mov edi, ebp
mov qword [rsp + 0xc8], 0
mov r8d, r14d
and edi, 0x400000
mov qword [rsp + 0xd0], 0
setne cl
test r15, r15
mov qword [rsp + 0xa0], 0
setne dl
mov byte [rsp + 0xc8], cl
shr al, 2
or edx, ecx
mov ecx, dword [r12 + 0x9c]
and eax, 1
mov qword [rsp + 0xb0], 0
mov dword [rsp + 0x5c], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0x80], r13
mov dword [rsp + 0xa8], r14d
mov dword [rsp + 0xa4], r14d
mov qword [rsp + 0xb8], r15
mov byte [rsp + 0xcb], dl
mov dword [rsp + 0xd0], ecx
mov byte [rsp + 0xc9], al
mov dword [rsp + 0xb0], r14d
mov dword [rsp + 0xac], r14d
test r14d, r14d
jg 0x14002d6b0
test dl, dl
jne 0x14002d590
mov eax, dword [rsp + 0x9c]
mov qword [rsp + 0x88], r13
lea r14, [rsp + 0x80]
mov dword [rsp + 0x94], eax
mov dword [rsp + 0x98], eax
mov r15, qword [rbx]
lea rsi, [rsp + 0x60]
mov r8d, ebp
mov rdx, r14
or r8d, 0x800000
mov qword [rbx + 0x28], 0
mov rcx, rsi
mov dword [r15 + 0xc0], ebp
mov qword [rsp + 0x30], rsi
call fcn.140025b60
mov rcx, r14
mov r9d, ebp
mov r8, rsi
add dword [rsp + 0xa0], eax
lea rax, [rsp + 0x5c]
mov rdx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
call fcn.14002ce80
mov r10d, dword [rsp + 0x5c]
mov r14, rax
test r10d, r10d
jne 0x14002e03a
lea rsi, [rsp + 0x70]
xor r8d, r8d
xor edx, edx
mov rcx, r15
mov r9, rsi
mov byte [rsp + 0x78], 2
call fcn.140023fc0
mov rdi, rax
test r14, r14
je 0x14002d35a
mov r8, rdi
mov r9, rsi
mov rdx, r14
mov rcx, r15
mov byte [rsp + 0x78], 0x10
call fcn.140023fc0
mov r8, rax
mov rax, rdi
mov rdi, r8
mov r13, qword [rbx]
test rax, rax
je 0x14002e024
test rdi, rdi
je 0x14002e024
mov qword [r12 + 0x68], rdi
mov rdi, qword [r13 + 8]
lea r14, [rdi*4]
shl rdi, 4
mov rcx, r14
call sub.msvcrt.dll_malloc
mov rcx, r14
mov r14, rdi
mov qword [r13 + 0x18], rax
mov rbp, rax
call sub.msvcrt.dll_malloc
mov rcx, rdi
mov qword [r13 + 0x20], rax
mov r15, rax
call sub.msvcrt.dll_malloc
mov rcx, r14
mov qword [r13 + 0x28], rax
mov rdi, rax
call sub.msvcrt.dll_malloc
mov qword [r13 + 0x30], rax
test rbp, rbp
je 0x14002d71f
test r15, r15
je 0x14002d71f
test rdi, rdi
je 0x14002d71f
test rax, rax
je 0x14002d71f
mov rbp, qword [rbx + 0x28]
lea rcx, [rbp*4]
call sub.msvcrt.dll_malloc
mov qword [r13 + 0xc8], rax
mov r8, rax
test rax, rax
je 0x14002d4ce
xor eax, eax
test rbp, rbp
je 0x14002d41d
nop
mov dword [r8 + rax*4], eax
add rax, 1
cmp rbp, rax
jne 0x14002d410
mov rdi, qword [r13 + 0x68]
mov r9d, 1
movzx ecx, byte [rdi + 0x30]
mov rax, rdi
mov rdx, qword [rax + 8]
cmp cl, 4
je 0x14002d455
cmp cl, 0x11
je 0x14002d688
test rdx, rdx
je 0x14002d478
movzx ecx, byte [rdx + 0x30]
mov rax, rdx
mov rdx, qword [rax + 8]
cmp cl, 4
jne 0x14002d437
movsxd rcx, dword [rax + 0x28]
mov r11d, r9d
mov ecx, dword [r8 + rcx*4]
mov dword [rax + 0x28], ecx
shl r11d, cl
or dword [r13 + 0x90], r11d
test rdx, rdx
jne 0x14002d445
nop word [rax + rax]
xor ecx, ecx
jmp 0x14002d483
mov rax, rdx
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x14002d491
cmp rdx, rcx
jne 0x14002d445
mov rdx, qword [rax]
mov rcx, rax
test rdx, rdx
jne 0x14002d480
xor eax, eax
test rbp, rbp
je 0x14002d4bb
nop dword [rax + rax]
cmp dword [r8 + rax*4], eax
jne 0x14002d78c
add rax, 1
cmp rbp, rax
jne 0x14002d4a8
mov rcx, r8
call sub.msvcrt.dll_free
mov qword [r13 + 0xc8], 0
mov rdi, qword [r13 + 0x68]
mov r8, rdi
nop dword [rax]
mov rbp, r8
mov r8, qword [r8 + 8]
test r8, r8
jne 0x14002d4d8
mov r8, qword [rbp + 0x10]
test r8, r8
jne 0x14002d4d8
jmp 0x14002d52e
mov r8, qword [rbp + 0x10]
test r8, r8
je 0x14002d50c
cmp byte [r8 + 0x30], 0x11
je 0x14002d570
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x14002dcc1
mov rax, qword [rbp]
test rax, rax
je 0x14002d812
mov r8, qword [rax + 0x10]
cmp rbp, r8
je 0x14002d527
test r8, r8
jne 0x14002d4d8
mov r8, qword [rax + 8]
mov rbp, rax
mov dword [rsp + 0x70], 0
test r8, r8
je 0x14002d4f0
cmp byte [r8 + 0x30], 0x11
jne 0x14002d4f0
mov rdx, rbx
mov rcx, rsi
call fcn.1400240a0
mov qword [rbp + 8], rax
test rax, rax
je 0x14002d559
mov qword [rax], rbp
mov r8, qword [rbp + 0x10]
test r8, r8
je 0x14002d500
cmp byte [r8 + 0x30], 0x11
jne 0x14002d500
nop dword [rax]
mov rdx, rbx
mov rcx, rsi
call fcn.1400240a0
mov qword [rbp + 0x10], rax
test rax, rax
je 0x14002d500
mov qword [rax], rbp
jmp 0x14002d500
mov rdx, qword [rsp + 0x88]
test edi, edi
jne 0x14002d668
mov eax, dword [rsp + 0x9c]
cmp r8d, eax
cmovg r8d, eax
test r8d, r8d
jle 0x14002e06d
movsxd r9, r8d
xor eax, eax
jmp 0x14002d5df
mov r13, qword [rsp + 0x80]
mov edi, dword [rsp + 0x90]
mov r15, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x88]
add edi, eax
movsxd rdi, edi
movzx ecx, byte [r13 + rdi]
movzx ecx, byte [r15 + rcx]
mov byte [rdx + rax], cl
add rax, 1
cmp r9, rax
jne 0x14002d5c0
mov dword [rsp + 0x94], r8d
lea r14, [rsp + 0x80]
mov dword [rsp + 0x98], r8d
mov dword [rsp + 0x5c], 0
jmp 0x14002d2ad
lea rcx, str.LC_CTYPE
call sub.msvcrt.dll_getenv
mov r15, rax
test rax, rax
je 0x14002d63d
cmp byte [rax], 0
jne 0x14002d134
lea rcx, str.LANG
call sub.msvcrt.dll_getenv
mov r15, rax
test rax, rax
jne 0x14002d134
lea r15, [0x1402c3d1d]
jmp 0x14002d14c
lea r14, [rsp + 0x80]
mov rcx, r14
call fcn.140024360
mov dword [rsp + 0x5c], 0
jmp 0x14002d2ad
test rdx, rdx
je 0x14002d478
movzx ecx, byte [rdx + 0x30]
mov r11, qword [rdx + 8]
cmp cl, 0x11
je 0x14002d7a0
mov rax, rdx
jmp 0x14002d42e
add r14d, 1
test dl, dl
jne 0x14002d7e1
mov dword [rsp + 0x9c], r14d
jmp 0x14002d280
mov dword [rsp + 0x5c], 0xc
mov rcx, r12
call fcn.1400244a0
mov qword [rbx], 0
mov eax, dword [rsp + 0x5c]
mov dword [rbx + 8], 0
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str.UTF8
mov rcx, r15
call rsi
test eax, eax
je 0x14002d167
jmp 0x14002d170
mov dword [rsp + 0x5c], 0xc
mov rsi, qword [r13 + 0x70]
test rsi, rsi
je 0x14002d740
mov rcx, rsi
mov rsi, qword [rsi]
call sub.msvcrt.dll_free
test rsi, rsi
jne 0x14002d730
mov qword [r13 + 0x70], 0
mov rcx, qword [r13 + 0x20]
mov dword [r13 + 0x80], 0xf
mov qword [r13 + 0x68], 0
call sub.msvcrt.dll_free
mov qword [r13 + 0x20], 0
cmp byte [rsp + 0xcb], 0
je 0x14002d6d8
mov rcx, qword [rsp + 0x88]
call sub.msvcrt.dll_free
jmp 0x14002d6d8
cmp rbp, rax
jne 0x14002d4d2
jmp 0x14002d4bb
mov ecx, dword [rdx + 0x28]
mov qword [rax + 8], r11
test r11, r11
je 0x14002d7af
mov qword [r11], rax
movsxd rdx, dword [rax + 0x28]
mov r14d, dword [r8 + rdx*4]
movsxd rdx, ecx
mov dword [r8 + rdx*4], r14d
mov rdx, r11
cmp ecx, 0x1f
ja 0x14002d440
mov r11d, r9d
shl r11d, cl
mov ecx, r11d
not ecx
and dword [r13 + 0x90], ecx
jmp 0x14002d440
movsxd rcx, r14d
mov byte [rsp + 0x38], dl
mov dword [rsp + 0x30], r8d
call sub.msvcrt.dll_malloc
test rax, rax
je 0x14002e075
mov qword [rsp + 0x88], rax
movzx edx, byte [rsp + 0x38]
mov r8d, dword [rsp + 0x30]
jmp 0x14002d6bc
lea r14, [rsp + 0x40]
nop word [rax + rax]
mov rbp, rdi
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x14002d820
mov rdi, qword [rbp + 0x10]
test rdi, rdi
jne 0x14002d820
jmp 0x14002d86c
mov rax, qword [rbp + 8]
mov rdx, qword [rax + 0x18]
mov eax, dword [rax + 0x38]
mov qword [rbp + 0x18], rdx
mov dword [rbp + 0x38], eax
mov rax, qword [rbp]
test rax, rax
je 0x14002d8ca
mov rdi, qword [rax + 0x10]
cmp rbp, rdi
je 0x14002d869
test rdi, rdi
jne 0x14002d820
mov rbp, rax
cmp byte [rbp + 0x30], 0x10
je 0x14002d840
mov qword [rbp + 0x18], rbp
movdqu xmm0, xmmword [rbp + 0x28]
mov rdx, r14
mov rcx, r13
movaps xmmword [rsp + 0x40], xmm0
call fcn.140023dd0
mov dword [rbp + 0x38], eax
cmp eax, 0xffffffff
je 0x14002dcb9
cmp byte [rbp + 0x30], 0xc
jne 0x14002d852
cdqe
mov ecx, dword [rbp + 0x28]
shl rax, 4
add rax, qword [r13]
mov edx, dword [rax + 8]
and ecx, 0x3ff
shl ecx, 8
and edx, 0xfffc00ff
or edx, ecx
mov dword [rax + 8], edx
mov rax, qword [rbp]
test rax, rax
jne 0x14002d85b
mov r15, qword [r13 + 0x68]
mov rax, r15
jmp 0x14002d8fe
test rdx, rdx
je 0x14002d8e5
mov rcx, qword [rax + 0x20]
mov qword [rdx + 0x20], rcx
mov r8, qword [rax + 0x10]
test r8, r8
je 0x14002d8f6
mov rcx, qword [rax + 0x20]
mov qword [r8 + 0x20], rcx
test rdx, rdx
je 0x14002d93a
mov rax, rdx
movzx ecx, byte [rax + 0x30]
mov rdx, qword [rax + 8]
cmp cl, 0xb
je 0x14002dba0
cmp cl, 0x10
jne 0x14002d8d8
mov rcx, qword [rax + 0x10]
mov r8, qword [rcx + 0x18]
mov qword [rdx + 0x20], r8
mov rax, qword [rax + 0x20]
mov qword [rcx + 0x20], rax
jmp 0x14002d8fb
mov r8, qword [rcx + 0x10]
mov rdx, rax
mov rax, rcx
cmp rdx, r8
je 0x14002d948
test r8, r8
jne 0x14002df79
mov rcx, qword [rax]
test rcx, rcx
jne 0x14002d930
movzx ecx, byte [r15 + 0x30]
mov r14d, dword [r15 + 0x38]
cmp cl, 0x10
ja case.0x14002d96f.0
lea r8, [0x1402c3e24]
movzx edx, cl
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
and ecx, 8
jne 0x14002df52
mov rdx, qword [r15 + 0x20]
movsxd rax, r14d
mov ecx, dword [rdx + 0x38]
mov rdx, qword [r13 + 0x18]
mov dword [rdx + rax*4], ecx
nop word [rax + rax]
mov rax, qword [r15 + 8]
test rax, rax
je 0x14002d9b3
mov r15, rax
jmp 0x14002d950
mov r15, rdx
mov rdx, qword [r15 + 0x10]
cmp rdx, rax
je 0x14002d9c5
test rdx, rdx
jne 0x14002df71
mov rdx, qword [r15]
mov rax, r15
test rdx, rdx
jne 0x14002d9b0
mov r15, qword [r13 + 0x10]
xor r14d, r14d
xor ebp, ebp
jmp 0x14002da27
shl rdi, 4
mov rax, qword [r13 + 0x30]
mov r9d, dword [rax + rdi + 4]
test r9d, r9d
jne 0x14002da24
mov r9d, 1
mov r8d, ebp
mov rdx, r13
mov rcx, rsi
call fcn.140027410
test eax, eax
jne 0x14002dec9
mov rax, qword [r13 + 0x30]
mov r8d, dword [rax + rdi + 4]
test r8d, r8d
je 0x14002dbb0
mov r15, qword [r13 + 0x10]
add ebp, 1
movsxd rdi, ebp
cmp r15, rdi
jne 0x14002d9e0
test r14d, r14d
je 0x14002dbdc
xor edi, edi
xor r14d, r14d
xor ebp, ebp
jmp 0x14002d9e4
mov rdx, qword [r15 + 0x20]
mov ecx, 4
movabs rax, 0x100000001
mov edi, dword [rdx + 0x38]
movsxd rdx, r14d
shl rdx, 4
add rdx, qword [r13 + 0x28]
mov qword [rdx], rax
mov r14, rdx
call sub.msvcrt.dll_malloc
mov qword [r14 + 8], rax
test rax, rax
je 0x14002e061
mov dword [rax], edi
jmp case.0x14002d96f.16
or byte [r13 + 0x98], 1
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x14002df9c
mov rdx, qword [rdx + 0x18]
mov edi, dword [rdx + 0x38]
mov rdx, qword [r15 + 0x10]
test rdx, rdx
je 0x14002df90
mov rdx, qword [rdx + 0x18]
mov ebp, dword [rdx + 0x38]
test edi, edi
js 0x14002dff9
test ebp, ebp
js 0x14002dfda
movsxd rdx, r14d
mov ecx, 8
shl rdx, 4
add rdx, qword [r13 + 0x28]
mov dword [rdx], 2
mov r14, rdx
call sub.msvcrt.dll_malloc
mov qword [r14 + 8], rax
test rax, rax
je 0x14002dcb9
cmp edi, ebp
je 0x14002df81
mov dword [r14 + 4], 2
jge 0x14002dfa8
mov dword [rax], edi
mov dword [rax + 4], ebp
jmp case.0x14002d96f.16
mov rdx, qword [r15 + 0x20]
movsxd rax, r14d
mov rcx, qword [r13 + 0x18]
mov r14d, dword [rdx + 0x38]
mov dword [rcx + rax*4], r14d
cmp byte [r15 + 0x30], 4
jne case.0x14002d96f.16
shl rax, 4
add rax, qword [r13 + 0x28]
mov ecx, 4
mov rdi, rax
movabs rax, 0x100000001
mov qword [rdi], rax
call sub.msvcrt.dll_malloc
mov qword [rdi + 8], rax
test rax, rax
je 0x14002e08c
mov dword [rax], r14d
jmp case.0x14002d96f.16
cmp qword [r15 + 0x20], 0
je case.0x14002d96f.16
mov r8d, 0x593
lea rdx, str.regcomp.c
lea rcx, str.node__next__NULL
call qword [sym.imp.msvcrt.dll__assert]
jmp case.0x14002d96f.16
mov qword [rdx + 0x20], rax
jmp 0x14002d8fb
mov rcx, qword [rsp + 0x78]
add ebp, 1
movsxd rdi, ebp
call sub.msvcrt.dll_free
mov r15, qword [r13 + 0x10]
cmp rdi, r15
je 0x14002debd
shl rdi, 4
mov r14d, 1
jmp 0x14002d9e4
test byte [rbx + 0x30], 0x10
jne 0x14002dbf8
cmp qword [rbx + 0x28], 0
je 0x14002dbf8
test byte [r13 + 0x98], 1
jne 0x14002dc07
nop dword [rax + rax]
mov ecx, dword [r13 + 0x8c]
test ecx, ecx
je 0x14002dce1
mov rcx, r15
shl rcx, 4
call sub.msvcrt.dll_malloc
mov qword [r13 + 0x38], rax
test rax, rax
je 0x14002e075
xor edx, edx
test r15, r15
jne 0x14002dc34
jmp 0x14002dce1
mov rax, qword [r13 + 0x38]
mov rcx, rdx
add rdx, 1
shl rcx, 4
mov qword [rax + rcx], 0
mov qword [rax + rcx + 8], 0
mov rax, qword [r13 + 0x10]
cmp rax, rdx
ja 0x14002dc30
test rax, rax
je 0x14002dce1
mov qword [rsp + 0x38], 0
mov rax, qword [r13 + 0x30]
mov rdi, qword [rsp + 0x38]
xor r15d, r15d
mov r14d, edi
shl rdi, 4
lea rdx, [rax + rdi]
mov rbp, qword [rdx + 8]
mov edx, dword [rdx + 4]
test edx, edx
jg 0x14002dc9f
jmp 0x14002dcd0
mov rax, qword [r13 + 0x30]
add r15, 1
cmp dword [rax + rdi + 4], r15d
jle 0x14002dcd0
movsxd rcx, dword [rbp + r15*4]
mov edx, r14d
shl rcx, 4
add rcx, qword [r13 + 0x38]
call fcn.140023d70
cmp eax, 0xffffffff
jne 0x14002dc90
mov r13, qword [rbx]
mov eax, 0xc
mov dword [rsp + 0x5c], eax
jmp 0x14002d727
add qword [rsp + 0x38], 1
mov rdi, qword [rsp + 0x38]
cmp qword [r13 + 0x10], rdi
ja 0x14002dc6f
mov rax, qword [r12 + 0x68]
mov rcx, rsi
mov dword [rsp + 0x5c], 0
mov rax, qword [rax + 0x18]
movsxd rdx, dword [rax + 0x38]
mov dword [r12 + 0x88], edx
shl rdx, 4
add rdx, qword [r12 + 0x30]
call fcn.1400257c0
mov dword [rsp + 0x60], eax
mov edi, eax
test eax, eax
jne 0x14002de3c
mov eax, dword [r12 + 0x8c]
test eax, eax
jle 0x14002ddf8
mov ebp, dword [rsp + 0x74]
test ebp, ebp
jle 0x14002ddf8
xor r11d, r11d
jmp 0x14002dd4d
add r11d, 1
cmp r11d, ebp
jge 0x14002ddf8
mov rcx, qword [rsp + 0x78]
movsxd rax, r11d
mov r8, qword [r12]
movsxd r9, dword [rcx + rax*4]
shl r9, 4
lea r14, [r8 + r9]
cmp byte [r14 + 8], 4
jne 0x14002dd40
test ebp, ebp
jle 0x14002dea6
lea r10d, [rbp + 1]
mov edx, 1
jmp 0x14002dd8f
mov eax, edx
add rdx, 1
cmp r10, rdx
je 0x14002deb0
movsxd rax, dword [rcx + rdx*4 - 4]
shl rax, 4
add rax, r8
cmp byte [rax + 8], 9
jne 0x14002dd80
mov r15d, dword [r14]
cmp dword [rax], r15d
jne 0x14002dd80
mov rax, qword [r12 + 0x28]
mov rcx, rsi
mov rax, qword [rax + r9 + 8]
movsxd rdx, dword [rax]
call fcn.1400237b0
test eax, eax
jne 0x14002dd40
shl rdx, 4
mov rcx, rsi
add rdx, qword [r12 + 0x30]
call fcn.140024f20
test eax, eax
jne 0x14002e085
mov ebp, dword [rsp + 0x74]
mov r11d, 1
cmp r11d, ebp
jl 0x14002dd4d
nop word [rax + rax]
mov rcx, qword [rsp + 0x30]
xor r9d, r9d
mov r8, rsi
mov rdx, r12
call fcn.140026530
mov qword [r12 + 0x48], rax
test rax, rax
je 0x14002df49
cmp byte [rax + 0x50], 0
js 0x14002dee0
mov qword [r12 + 0x60], rax
mov qword [r12 + 0x58], rax
mov qword [r12 + 0x50], rax
mov rcx, qword [rsp + 0x78]
call sub.msvcrt.dll_free
mov dword [rsp + 0x5c], edi
mov rdi, qword [rbx]
mov rsi, qword [rdi + 0x70]
test rsi, rsi
je 0x14002de60
nop dword [rax]
mov rcx, rsi
mov rsi, qword [rsi]
call sub.msvcrt.dll_free
test rsi, rsi
jne 0x14002de50
mov qword [rdi + 0x70], 0
mov rcx, qword [rdi + 0x20]
mov dword [rdi + 0x80], 0xf
mov qword [rdi + 0x68], 0
call sub.msvcrt.dll_free
mov qword [rdi + 0x20], 0
cmp byte [rsp + 0xcb], 0
jne 0x14002ded1
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x14002d6f2
jmp 0x14002d6d8
xor eax, eax
nop dword [rax + rax]
cmp eax, ebp
jne 0x14002dda9
jmp 0x14002dd40
xor r14d, r14d
xor ebp, ebp
xor edi, edi
jmp 0x14002d9e4
mov r13, qword [rbx]
jmp 0x14002dcc1
mov rcx, qword [rsp + 0x88]
call sub.msvcrt.dll_free
jmp 0x14002de95
mov r14, qword [rsp + 0x30]
mov r9d, 1
mov r8, rsi
mov rdx, r12
mov rcx, r14
call fcn.140026530
mov r8, rsi
mov rdx, r12
mov rcx, r14
mov qword [r12 + 0x50], rax
mov r9d, 2
call fcn.140026530
mov r8, rsi
mov rdx, r12
mov rcx, r14
mov qword [r12 + 0x58], rax
mov r9d, 6
call fcn.140026530
cmp qword [r12 + 0x50], 0
mov qword [r12 + 0x60], rax
je 0x14002df49
cmp qword [r12 + 0x58], 0
je 0x14002df49
test rax, rax
jne 0x14002de32
mov edi, dword [rsp + 0x60]
jmp 0x14002de3c
mov r8d, 0x5b6
lea rdx, str.regcomp.c
lea rcx, str._IS_EPSILON_NODE__node__token.type_
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x14002d981
mov rax, rdx
jmp 0x14002d9a1
mov rdx, r8
jmp 0x14002d8fb
mov dword [r14 + 4], 1
mov dword [rax], edi
jmp case.0x14002d96f.16
mov rdx, qword [r15 + 0x20]
mov ebp, dword [rdx + 0x38]
jmp 0x14002dac0
mov rdx, qword [r15 + 0x20]
mov edi, dword [rdx + 0x38]
jmp 0x14002daac
mov dword [rax], ebp
mov dword [rax + 4], edi
jmp case.0x14002d96f.16
mov rcx, r12
mov edx, 0xd0
call sub.msvcrt.dll_realloc
mov r12, rax
test rax, rax
je 0x14002e0b1
mov dword [rbx + 8], 0xd0
mov qword [rbx], rax
jmp 0x14002d06e
mov r8d, 0x5a4
lea rdx, str.regcomp.c
lea rcx, str.right____1
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x14002dad0
mov r8d, 0x5a3
lea rdx, str.regcomp.c
lea rcx, str.left____1
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x14002dac8
xor esi, esi
mov edx, 1
jmp 0x14002d0ee
mov dword [rsp + 0x5c], 0xc
mov qword [r12 + 0x68], 0
jmp 0x14002d727
test rax, rax
je 0x14002e0a0
lea rsi, [rsp + 0x70]
xor r8d, r8d
xor edx, edx
mov rcx, r15
mov r9, rsi
mov byte [rsp + 0x78], 2
call fcn.140023fc0
mov rdi, rax
jmp 0x14002d33b
mov qword [r14], 0
jmp 0x14002dcb9
xor r8d, r8d
jmp 0x14002d5fb
mov dword [rsp + 0x5c], 0xc
mov r13, qword [rbx]
jmp 0x14002d727
mov edi, eax
jmp 0x14002de3c
mov qword [rdi], 0
mov r13, qword [rbx]
mov eax, 0xc
jmp 0x14002dcc1
mov qword [r12 + 0x68], 0
mov r13, qword [rbx]
jmp 0x14002d727
mov eax, 0xc
jmp 0x14002d6f2