Function at 0x516d80
Capabilities:
Parse credit card information

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x88]
cmp rax, qword [rcx + 0x10]
jbe 0x518047
sub rsp, 0x108
mov qword [rsp + 0x100], rbp
lea rbp, [rsp + 0x100]
movzx eax, word [rsp + 0x120]
test ax, 2
jne 0x517f76
lea rax, [0x00641400]
mov qword [rsp], rax
call sym.a.out.exe_runtime.newobject
mov rax, qword [rsp + 8]
movzx ecx, word [rsp + 0x120]
mov word [rax], cx
mov rcx, qword [rsp + 0x118]
mov qword [rax + 0x38], rcx
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517f52
mov rdx, qword [rsp + 0x110]
mov qword [rax + 0x30], rdx
mov qword [rsp + 0xe0], rax
mov rbx, rcx
mov rsi, rdx
xor edi, edi
xor r8d, r8d
xor r9d, r9d
jmp 0x516e54
mov r10, qword [rsp + 0xe0]
mov edi, eax
mov r8, rbx
mov r9, rsi
mov rax, r10
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x110]
mov r11, rcx
mov rcx, rdx
mov rdx, r11
test rcx, rcx
je 0x517e05
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xf0], rdx
mov byte [rsp + 0x77], dil
movzx r10d, byte [rdx]
cmp r10b, 0x2e
ja 0x517259
cmp r10b, 0x28
ja 0x51707c
cmp r10b, 0x24
jne 0x516efd
movzx r8d, word [rax]
test r8w, 0x10
je 0x516eed
mov qword [rsp], rax
mov byte [rsp + 8], 0xa
call sym.a.out.exe_regexp_syntax._parser_.op
mov rax, qword [rsp + 0x10]
movzx ecx, word [rax + 2]
bts ecx, 8
mov word [rax + 2], cx
mov rcx, qword [rsp + 0xa0]
dec rcx
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
mov rbx, qword [rsp + 0xf0]
add rcx, rbx
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp], rax
mov byte [rsp + 8], 8
call sym.a.out.exe_regexp_syntax._parser_.op
jmp 0x516ebb
cmp r10b, 0x28
jne 0x516fe8
movzx r8d, word [rax]
test r8w, 0x40
je 0x516f1f
cmp rcx, 2
jl 0x516f1f
cmp byte [rdx + 1], 0x3f
je 0x516f7f
inc qword [rax + 0x28]
mov qword [rsp], rax
mov byte [rsp + 8], pe_nt_image_headers64
call sym.a.out.exe_regexp_syntax._parser_.op
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rcx + 0x28]
mov qword [rax + 0x58], rdx
mov rax, qword [rsp + 0xa0]
lea rdx, [rax - 1]
mov rax, rdx
neg rdx
sar rdx, 0x3f
and rdx, 1
mov rbx, qword [rsp + 0xf0]
add rdx, rbx
mov rcx, rdx
mov rdx, rax
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
call sym.a.out.exe_regexp_syntax._parser_.parsePerlFlags
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x18]
test rcx, rcx
jne 0x516fbc
mov rcx, rbx
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rax
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
call sym.a.out.exe_regexp_syntax.nextRune
mov eax, dword [rsp + 0x10]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x18]
test rcx, rcx
jne 0x517050
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0xb0], rsi
mov rcx, qword [rsp + 0xe0]
mov qword [rsp], rcx
mov dword [rsp + 8], eax
call sym.a.out.exe_regexp_syntax._parser_.literal
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x78]
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rdx
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
cmp r10b, 0x29
je 0x5171de
lea r11d, [r10 - 0x2a]
cmp r11b, 1
jbe 0x5170fb
cmp r10b, 0x2e
jne 0x516fe8
movzx r8d, word [rax]
test r8w, 8
je 0x5170eb
mov qword [rsp], rax
mov byte [rsp + 8], 6
call sym.a.out.exe_regexp_syntax._parser_.op
mov r8, qword [rsp + 0xa0]
lea rdx, [r8 - 1]
mov r8, rdx
neg rdx
sar rdx, 0x3f
and rdx, 1
mov r9, qword [rsp + 0xf0]
lea rcx, [r9 + rdx]
mov rdx, r8
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp], rax
mov byte [rsp + 8], 5
call sym.a.out.exe_regexp_syntax._parser_.op
jmp 0x5170b4
cmp r10b, 0x2a
jne 0x5171ba
mov edi, 0xe
mov byte [rsp + 0x77], dil
mov qword [rsp], rax
mov byte [rsp + 8], dil
xorps xmm0, xmm0
movups xmmword [rsp + 0x10], xmm0
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rcx
lea rbx, [rcx - 1]
mov rsi, rbx
neg rbx
sar rbx, 0x3f
and rbx, 1
add rbx, rdx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x48], r8
call sym.a.out.exe_regexp_syntax._parser_.repeat
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
test rcx, rcx
jne 0x51718e
mov rcx, rbx
movzx eax, byte [rsp + 0x77]
mov rbx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xf0]
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rax
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
cmp r10b, 0x2b
jne 0x5171ca
mov edi, 0xf
jmp 0x51710a
cmp r10b, 0x3f
jne 0x51710a
mov edi, 0x10
jmp 0x51710a
mov qword [rsp], rax
call sym.a.out.exe_regexp_syntax._parser_.parseRightParen
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
test rcx, rcx
jne 0x51722d
mov r8, qword [rsp + 0xa0]
lea rdx, [r8 - 1]
mov r8, rdx
neg rdx
sar rdx, 0x3f
and rdx, 1
mov r9, qword [rsp + 0xf0]
lea rcx, [r9 + rdx]
mov rdx, r8
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rax
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
cmp r10b, 0x5c
ja 0x517aa7
cmp r10b, 0x3f
je 0x5170fb
cmp r10b, 0x5b
je 0x517a3e
cmp r10b, 0x5c
jne 0x516fe8
movzx r8d, word [rax]
test r8w, 0x40
je 0x5172c0
cmp rcx, 2
jl 0x5172c0
movzx r8d, byte [rdx + 1]
cmp r8b, 0x43
ja 0x517818
cmp r8b, 0x41
je 0x5177d4
cmp r8b, 0x42
je 0x517790
cmp r8b, 0x43
je 0x5176e3
nop
mov r8, qword [rax + 0x20]
lea r9, [rax + 0x20]
mov qword [rsp + 0xf8], r9
test r8, r8
je 0x517693
mov r10, qword [r8 + 0x20]
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517628
mov qword [rax + 0x20], r10
mov r10d, edi
mov rdi, r8
xorps xmm0, xmm0
lea rdi, [rdi - 0x10]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0045baad
mov rbp, qword [rbp]
mov qword [rsp + 0xd0], r8
mov byte [r8], 4
movzx edi, word [rax]
mov word [r8 + 2], di
cmp rcx, 2
jl 0x517345
movzx edi, byte [rdx + 1]
cmp dil, 0x70
jne 0x51761b
mov edi, 1
test dil, dil
jne 0x5174f9
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
lea rbx, [r8 + 0x40]
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 2
call sym.a.out.exe_regexp_syntax._parser_.parsePerlClassEscape
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
test rsi, rsi
je 0x517400
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xc0], rcx
mov r8, qword [rsp + 0xd0]
mov qword [r8 + 0x30], rbx
mov qword [r8 + 0x38], rdx
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x5173f2
mov qword [r8 + 0x28], rsi
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
mov qword [rsp + 8], r8
call sym.a.out.exe_regexp_syntax._parser_.push
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0x90]
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
lea rdi, [r8 + 0x28]
mov rax, rsi
call sym.a.out.exe_runtime.gcWriteBarrier
jmp 0x5173be
nop
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rcx + 0x20]
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x5174d3
mov rdx, qword [rsp + 0xd0]
mov qword [rdx + 0x20], rax
mov qword [rcx + 0x20], rdx
mov qword [rsp], rcx
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x10], rax
call sym.a.out.exe_regexp_syntax._parser_.parseEscape
mov eax, dword [rsp + 0x18]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
test rdx, rdx
jne 0x5174a7
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0xb0], rsi
mov rcx, qword [rsp + 0xe0]
mov qword [rsp], rcx
mov dword [rsp + 8], eax
call sym.a.out.exe_regexp_syntax._parser_.literal
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x78]
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x138], rcx
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rdx, qword [rsp + 0xd0]
lea rdi, [rdx + 0x20]
call sym.a.out.exe_runtime.gcWriteBarrier
mov rdi, qword [rsp + 0xf8]
mov rax, rdx
call sym.a.out.exe_runtime.gcWriteBarrier
jmp 0x51742a
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
lea rbx, [r8 + 0x40]
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 2
call sym.a.out.exe_regexp_syntax._parser_.parseUnicodeClass
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x48]
test rsi, rsi
jne 0x5175ef
test rdx, rdx
je 0x5175ca
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0xb8], r8
mov rbx, qword [rsp + 0xd0]
mov qword [rbx + 0x30], rcx
mov qword [rbx + 0x38], rax
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x5175b9
mov qword [rbx + 0x28], rdx
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
mov qword [rsp + 8], rbx
call sym.a.out.exe_regexp_syntax._parser_.push
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
lea rcx, [rbx + 0x28]
mov rdi, rcx
mov rax, rdx
call sym.a.out.exe_runtime.gcWriteBarrier
jmp 0x517585
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xd0]
jmp 0x517345
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rsi
mov qword [rsp + 0x138], rbx
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
cmp dil, 0x50
sete dil
jmp 0x51733c
mov qword [rsp + 0xd8], r8
mov rdi, r9
mov rax, r10
call sym.a.out.exe_runtime.gcWriteBarrier
lea rcx, [0x0064c7a0]
mov qword [rsp], rcx
mov qword [rsp + 8], r8
call sym.a.out.exe_runtime.typedmemclr
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x110]
mov r8, qword [rsp + 0xd8]
mov r9, qword [rsp + 0xf8]
movzx r10d, byte [rsp + 0x77]
jmp 0x51730f
lea rax, [0x0064c7a0]
mov qword [rsp], rax
call sym.a.out.exe_runtime.newobject
mov r8, qword [rsp + 8]
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x110]
mov r9, qword [rsp + 0xf8]
movzx r10d, byte [rsp + 0x77]
jmp 0x51730f
lea rax, [0x00628120]
mov qword [rsp], rax
call sym.a.out.exe_runtime.newobject
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 0x17
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517782
lea rcx, [0x00664787]
mov qword [rdi], rcx
mov qword [rdi + 0x18], 2
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517763
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x10], rax
mov qword [rsp + 0x128], 0
lea rax, sym.a.out.exe_go.itab.regexp_syntax.Error_error
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rdi
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
lea rcx, [rdi + 0x10]
mov rax, rdi
mov rdi, rcx
mov rdx, rax
mov rax, qword [rsp + 0xf0]
call sym.a.out.exe_runtime.gcWriteBarrier
mov rdi, rdx
jmp 0x517730
lea rax, [0x00664787]
call sym.a.out.exe_runtime.gcWriteBarrier
jmp 0x517713
mov qword [rsp], rax
mov byte [rsp + 8], 0xc
call sym.a.out.exe_regexp_syntax._parser_.op
mov rax, qword [rsp + 0xa0]
lea rdx, [rax - 2]
mov rax, rdx
neg rdx
sar rdx, 0x3f
and rdx, 2
mov rcx, qword [rsp + 0xf0]
add rcx, rdx
mov rdx, rax
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp], rax
mov byte [rsp + 8], 9
call sym.a.out.exe_regexp_syntax._parser_.op
mov rax, qword [rsp + 0xa0]
lea rdx, [rax - 2]
mov rax, rdx
neg rdx
sar rdx, 0x3f
and rdx, 2
mov rcx, qword [rsp + 0xf0]
add rcx, rdx
mov rdx, rax
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
cmp r8b, 0x51
je 0x5178ba
cmp r8b, 0x62
je 0x517876
cmp r8b, 0x7a
jne 0x5172c0
mov qword [rsp], rax
mov byte [rsp + 8], 0xa
call sym.a.out.exe_regexp_syntax._parser_.op
mov rax, qword [rsp + 0xa0]
lea rdx, [rax - 2]
mov rax, rdx
neg rdx
sar rdx, 0x3f
and rdx, 2
mov rcx, qword [rsp + 0xf0]
add rcx, rdx
mov rdx, rax
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp], rax
mov byte [rsp + 8], 0xb
call sym.a.out.exe_regexp_syntax._parser_.op
mov rax, qword [rsp + 0xa0]
lea rdx, [rax - 2]
mov rax, rdx
neg rdx
sar rdx, 0x3f
and rdx, 2
mov rcx, qword [rsp + 0xf0]
add rcx, rdx
mov rdx, rax
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
lea rax, [0x0065e95c]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], 2
call sym.a.out.exe_strings.Index
mov rcx, qword [rsp + 0x20]
test rcx, rcx
jge 0x5179d5
mov rcx, qword [rsp + 0xa0]
add rcx, 0xfffffffffffffffe
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and rcx, 2
mov rbx, qword [rsp + 0xf0]
add rcx, rbx
xor eax, eax
xor ebx, ebx
mov qword [rsp + 0x78], rax
mov qword [rsp + 0xb0], rbx
jmp 0x517965
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0xc8], rdx
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
mov dword [rsp + 8], esi
call sym.a.out.exe_regexp_syntax._parser_.literal
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xc8]
test rdx, rdx
je 0x5179c1
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
call sym.a.out.exe_regexp_syntax.nextRune
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x28]
mov esi, dword [rsp + 0x10]
test rbx, rbx
je 0x517923
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], rax
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rcx, rbx
mov rdx, rax
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov rdx, qword [rsp + 0xa0]
cmp rcx, rdx
ja 0x518039
cmp rcx, 2
jb 0x51802f
lea rbx, [rcx - 2]
mov rsi, rbx
neg rbx
sar rbx, 0x3f
and rbx, 2
mov r8, qword [rsp + 0xf0]
add rbx, r8
lea rax, [rcx + 2]
cmp rax, rdx
ja 0x518027
sub rdx, rax
mov r9, rdx
neg rdx
sar rdx, 0x3f
and rdx, rax
add r8, rdx
mov rax, r9
mov rdx, rsi
mov rcx, rbx
mov rbx, r8
jmp 0x517914
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
call sym.a.out.exe_regexp_syntax._parser_.parseClass
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
test rbx, rbx
jne 0x517a7b
mov rdx, rax
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], rdx
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
cmp r10b, 0x5e
jne 0x517b0e
movzx r8d, word [rax]
test r8w, 0x10
je 0x517afe
mov qword [rsp], rax
mov byte [rsp + 8], 9
call sym.a.out.exe_regexp_syntax._parser_.op
mov r8, qword [rsp + 0xa0]
lea rdx, [r8 - 1]
mov r8, rdx
neg rdx
sar rdx, 0x3f
and rdx, 1
mov r9, qword [rsp + 0xf0]
lea rcx, [r9 + rdx]
mov rdx, r8
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp], rax
mov byte [rsp + 8], 7
call sym.a.out.exe_regexp_syntax._parser_.op
jmp 0x517ac7
cmp r10b, 0x7b
je 0x517b9d
cmp r10b, 0x7c
jne 0x516fe8
mov qword [rsp], rax
call sym.a.out.exe_regexp_syntax._parser_.parseVerticalBar
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
test rcx, rcx
jne 0x517b71
mov r8, qword [rsp + 0xa0]
lea rdx, [r8 - 1]
mov r8, rdx
neg rdx
sar rdx, 0x3f
and rdx, 1
mov r9, qword [rsp + 0xf0]
lea rcx, [r9 + rdx]
mov rdx, r8
movzx eax, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rax
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov qword [rsp + 0x98], r8
mov qword [rsp + 0xe8], r9
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
call sym.a.out.exe_regexp_syntax._parser_.parseRepeat
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
cmp byte [rsp + 0x38], 0
jne 0x517c2a
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
mov dword [rsp + 8], 0x7b
call sym.a.out.exe_regexp_syntax._parser_.literal
mov rax, qword [rsp + 0xa0]
lea rdx, [rax - 1]
mov rax, rdx
neg rdx
sar rdx, 0x3f
and rdx, 1
mov rcx, qword [rsp + 0xf0]
add rcx, rdx
mov rdx, rax
mov eax, 0x11
xor ebx, ebx
xor esi, esi
jmp 0x516e28
test rax, rax
jl 0x517d2b
cmp rax, 0x3e8
jg 0x517d2b
cmp rcx, 0x3e8
jg 0x517d2b
test rcx, rcx
jl 0x517dfe
cmp rax, rcx
setg sil
test sil, sil
jne 0x517d2b
mov rsi, qword [rsp + 0xe0]
mov qword [rsp], rsi
mov byte [rsp + 8], 0x11
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rcx
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x40], rdx
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x48], rdx
call sym.a.out.exe_regexp_syntax._parser_.repeat
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x68]
test rax, rax
jne 0x517cff
mov eax, 0x11
mov rbx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xf0]
mov rdi, rcx
mov rcx, rdx
mov rdx, rdi
jmp 0x516e28
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rbx
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rcx, qword [rsp + 0xa0]
mov rax, rcx
sub rcx, rdx
cmp rcx, rax
ja 0x51803e
mov qword [rsp + 0xa8], rcx
lea rax, [0x00628120]
mov qword [rsp], rax
call sym.a.out.exe_runtime.newobject
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 0x14
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517ded
lea rcx, [0x006632cc]
mov qword [rdi], rcx
mov rcx, qword [rsp + 0xa8]
mov qword [rdi + 0x18], rcx
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517dce
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x10], rax
mov qword [rsp + 0x128], 0
lea rax, sym.a.out.exe_go.itab.regexp_syntax.Error_error
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rdi
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
lea rcx, [rdi + 0x10]
mov rax, rdi
mov rdi, rcx
mov rdx, rax
mov rax, qword [rsp + 0xf0]
call sym.a.out.exe_runtime.gcWriteBarrier
mov rdi, rdx
jmp 0x517d9b
lea rax, [0x006632cc]
call sym.a.out.exe_runtime.gcWriteBarrier
jmp 0x517d7a
xor esi, esi
jmp 0x517c5c
mov qword [rsp], rax
call sym.a.out.exe_regexp_syntax._parser_.concat
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
call sym.a.out.exe_regexp_syntax._parser_.swapVerticalBar
cmp byte [rsp + 8], 0
je 0x517f45
mov rax, qword [rsp + 0xe0]
mov rdx, qword [rax + 0x18]
mov rbx, qword [rax + 0x10]
lea rcx, [rbx - 1]
cmp rcx, rdx
ja 0x518022
mov qword [rax + 0x10], rcx
mov qword [rsp], rax
call sym.a.out.exe_regexp_syntax._parser_.alternate
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rax + 8]
cmp qword [rax + 0x10], 1
je 0x517f1f
lea rax, [0x00628120]
mov qword [rsp], rax
call sym.a.out.exe_runtime.newobject
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 0x11
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517f0e
lea rcx, [0x00661ee0]
mov qword [rdi], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rdi + 0x18], rcx
cmp dword [sym.a.out.exe_runtime.writeBarrier], 0
jne 0x517eef
mov rax, qword [rsp + 0x110]
mov qword [rdi + 0x10], rax
mov qword [rsp + 0x128], 0
lea rax, sym.a.out.exe_go.itab.regexp_syntax.Error_error
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rdi
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
lea rcx, [rdi + 0x10]
mov rax, rdi
mov rdi, rcx
mov rdx, rax
mov rax, qword [rsp + 0x110]
call sym.a.out.exe_runtime.gcWriteBarrier
mov rdi, rdx
jmp 0x517ebc
lea rax, [0x00661ee0]
call sym.a.out.exe_runtime.gcWriteBarrier
jmp 0x517e9b
mov rax, qword [rcx]
mov qword [rsp + 0x128], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x130], xmm0
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rax, qword [rsp + 0xe0]
jmp 0x517e4b
lea rdi, [rax + 0x30]
mov rdx, rax
mov rax, qword [rsp + 0x110]
call sym.a.out.exe_runtime.gcWriteBarrier
mov rax, rdx
mov rdx, qword [rsp + 0x110]
jmp 0x516e10
mov rax, qword [rsp + 0x110]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x118]
mov qword [rsp + 8], rcx
call sym.a.out.exe_regexp_syntax.checkUTF8
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x10]
test rcx, rcx
je 0x517fcf
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rax
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rax, qword [rsp + 0x110]
mov qword [rsp], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 8], rax
movzx eax, word [rsp + 0x120]
mov word [rsp + 0x10], ax
call sym.a.out.exe_regexp_syntax.literalRegexp
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x128], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x130], xmm0
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
call sym.a.out.exe_runtime.panicSliceAcap
mov rcx, rdx
call sym.a.out.exe_runtime.panicSliceB
mov eax, 2
call sym.a.out.exe_runtime.panicSliceB
call sym.a.out.exe_runtime.panicSliceAlen
mov rdx, rax
call sym.a.out.exe_runtime.panicSliceAlen
nop
call sym.a.out.exe_runtime.morestack_noctxt
jmp sym.a.out.exe_regexp_syntax.Parse