Function at 0x4c9790
Capabilities:
Parse credit card information

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x90]
cmp rax, qword [rcx + 0x10]
jbe 0x4cab37
sub rsp, 0x110
mov qword [rsp + 0x108], rbp
lea rbp, [rsp + 0x108]
movzx eax, word [rsp + 0x128]
test ax, 2
jne 0x4caa62
lea rax, [0x0054bfa0]
mov qword [rsp], rax
call dbg.runtime.newobject
mov rax, qword [rsp + 8]
mov qword [rsp + 0xe0], rax
movzx ecx, word [rsp + 0x128]
mov word [rax], cx
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x38], rcx
mov edx, dword [0x006313e0]
lea rbx, [rax + 0x30]
test edx, edx
jne 0x4caa2f
mov rdx, qword [rsp + 0x118]
mov qword [rax + 0x30], rdx
mov rbx, rdx
mov rsi, rcx
xor edi, edi
xor r8d, r8d
xor r9d, r9d
jmp 0x4c9860
mov edi, edx
mov r8, rsi
mov r9, rbx
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x120]
mov rdx, rax
mov rax, qword [rsp + 0xe0]
test rcx, rcx
je 0x4ca8ad
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xa0], rcx
mov byte [rsp + 0x77], dil
movzx r10d, byte [rdx]
cmp r10b, 0x2e
ja 0x4c9c82
cmp r10b, 0x28
ja 0x4c9a98
cmp r10b, 0x24
jne 0x4c990b
movzx r8d, word [rax]
test r8w, 0x10
je 0x4c98fb
mov qword [rsp], rax
mov byte [rsp + 8], 0xa
call dbg.regexp/syntax.(*parser).op
mov rax, qword [rsp + 0x10]
movzx ecx, word [rax + 2]
or ecx, 0x100
mov word [rax + 2], cx
mov rax, qword [rsp + 0xa0]
dec rax
mov rcx, rax
neg rax
sar rax, 0x3f
and rax, 1
mov rdx, qword [rsp + 0xf0]
add rax, rdx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp], rax
mov byte [rsp + 8], 8
call dbg.regexp/syntax.(*parser).op
jmp 0x4c98c9
cmp r10b, 0x28
jne 0x4c9a04
movzx r8d, word [rax]
test r8w, 0x40
je 0x4c9932
cmp rcx, 2
jl 0x4c9932
movzx r8d, byte [rdx + 1]
cmp r8b, 0x3f
je 0x4c9995
mov rcx, qword [rax + 0x28]
inc rcx
mov qword [rax + 0x28], rcx
mov qword [rsp], rax
mov byte [rsp + 8], pe_nt_image_headers64
call dbg.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]
dec rax
mov rdx, rax
neg rax
sar rax, 0x3f
and rax, 1
mov rbx, qword [rsp + 0xf0]
add rax, rbx
mov rcx, rdx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
call dbg.regexp/syntax.(*parser).parsePerlFlags
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
test rdx, rdx
jne 0x4c99d8
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
mov rdi, rcx
mov rcx, rax
mov rax, rdi
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rdx
mov qword [rsp + 0x140], rbx
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
call dbg.regexp/syntax.nextRune
mov eax, dword [rsp + 0x10]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x18]
test rdx, rdx
jne 0x4c9a6c
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 dbg.regexp/syntax.(*parser).literal
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0xb0]
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rdx
mov qword [rsp + 0x140], rcx
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
cmp r10b, 0x29
je 0x4c9c07
lea r11d, [r10 - 0x2a]
cmp r11b, 1
jbe 0x4c9b17
cmp r10b, 0x2e
jne 0x4c9a04
movzx r8d, word [rax]
test r8w, 8
je 0x4c9b07
mov qword [rsp], rax
mov byte [rsp + 8], 6
call dbg.regexp/syntax.(*parser).op
mov r8, qword [rsp + 0xa0]
lea rcx, [r8 - 1]
mov r8, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
mov r9, qword [rsp + 0xf0]
lea rax, [r9 + rcx]
mov rcx, r8
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp], rax
mov byte [rsp + 8], 5
call dbg.regexp/syntax.(*parser).op
jmp 0x4c9ad0
cmp r10b, 0x2a
jne 0x4c9be3
mov edi, 0xe
mov byte [rsp + 0x77], dil
mov qword [rsp], rax
mov byte [rsp + 8], dil
mov qword [rsp + 0x10], 0
mov qword [rsp + 0x18], 0
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 dbg.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 0x4c9bb7
mov rcx, rdx
mov rax, rbx
movzx edx, byte [rsp + 0x77]
mov rbx, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xa0]
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
cmp r10b, 0x2b
jne 0x4c9bf3
mov edi, 0xf
jmp 0x4c9b26
cmp r10b, 0x3f
jne 0x4c9b26
mov edi, 0x10
jmp 0x4c9b26
mov qword [rsp], rax
call dbg.regexp/syntax.(*parser).parseRightParen
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
test rcx, rcx
jne 0x4c9c56
mov r8, qword [rsp + 0xa0]
lea rcx, [r8 - 1]
mov r8, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
mov r9, qword [rsp + 0xf0]
lea rax, [r9 + rcx]
mov rcx, r8
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
cmp r10b, 0x5c
ja 0x4ca540
cmp r10b, 0x3f
je 0x4c9b17
cmp r10b, 0x5b
je 0x4ca4d4
cmp r10b, 0x5c
jne 0x4c9a04
movzx r8d, word [rax]
test r8w, 0x40
je 0x4c9ce9
cmp rcx, 2
jl 0x4c9ce9
movzx r8d, byte [rdx + 1]
cmp r8b, 0x43
ja 0x4ca2a2
cmp r8b, 0x41
je 0x4ca258
cmp r8b, 0x42
je 0x4ca20e
cmp r8b, 0x43
je 0x4ca13e
mov r8, qword [rax + 0x20]
lea r9, [rax + 0x20]
mov qword [rsp + 0x100], r9
test r8, r8
je 0x4ca0ee
mov r10d, dword [0x006313e0]
mov r11, qword [r8 + 0x20]
test r10d, r10d
jne 0x4ca078
mov qword [rax + 0x20], r11
mov r10d, edi
mov rdi, r8
xorps xmm0, xmm0
add rdi, 0xfffffffffffffff0
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0045644d
mov rbp, qword [rbp]
mov qword [rsp + 0xd8], r8
mov byte [r8], 4
movzx edi, word [rax]
mov word [r8 + 2], di
cmp rcx, 2
jl 0x4c9d6c
movzx edi, byte [rdx + 1]
cmp dil, 0x70
je 0x4c9f48
cmp dil, 0x50
je 0x4c9f48
lea rbx, [r8 + 0x40]
test byte [rbx], al
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 2
call dbg.regexp/syntax.(*parser).parsePerlClassEscape
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
test rax, rax
je 0x4c9e38
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x88], rsi
mov rdi, qword [rsp + 0xd8]
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x38], rdx
mov ecx, dword [0x006313e0]
lea rdx, [rdi + 0x28]
test ecx, ecx
jne 0x4c9e20
mov qword [rdi + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
mov qword [rsp + 8], rdi
call dbg.regexp/syntax.(*parser).push
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0xc8]
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp], rdx
mov qword [rsp + 8], rax
call dbg.runtime.writebarrierptr
mov rdi, qword [rsp + 0xd8]
jmp 0x4c9dec
mov eax, dword [0x006313e0]
mov rcx, qword [rsp + 0xd8]
lea rdx, [rcx + 0x20]
mov rbx, qword [rsp + 0xe0]
mov rsi, qword [rbx + 0x20]
test eax, eax
jne 0x4c9f0f
mov qword [rcx + 0x20], rsi
mov qword [rbx + 0x20], rcx
mov qword [rsp], rbx
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x10], rax
call dbg.regexp/syntax.(*parser).parseEscape
mov eax, dword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
test rbx, rbx
jne 0x4c9ee3
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0x78], rdx
mov rcx, qword [rsp + 0xe0]
mov qword [rsp], rcx
mov dword [rsp + 8], eax
call dbg.regexp/syntax.(*parser).literal
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0xb0]
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rbx
mov qword [rsp + 0x140], rsi
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov qword [rsp], rdx
mov qword [rsp + 8], rsi
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0x100]
mov qword [rsp], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 8], rax
call dbg.runtime.writebarrierptr
mov rbx, qword [rsp + 0xe0]
jmp 0x4c9e66
lea rbx, [r8 + 0x40]
test byte [rbx], al
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 2
call dbg.regexp/syntax.(*parser).parseUnicodeClass
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
test rax, rax
jne 0x4ca04c
test rdi, rdi
je 0x4ca027
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xc0], rdx
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x30], rsi
mov qword [rax + 0x38], r8
mov ebx, dword [0x006313e0]
lea rsi, [rax + 0x28]
test ebx, ebx
jne 0x4ca00f
mov qword [rax + 0x28], rdi
mov rcx, qword [rsp + 0xe0]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call dbg.regexp/syntax.(*parser).push
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0xc0]
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp], rsi
mov qword [rsp + 8], rdi
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xd8]
jmp 0x4c9fdb
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xd8]
jmp 0x4c9d6c
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rbx
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov qword [rsp + 0xd0], r8
mov qword [rsp], r9
mov qword [rsp + 8], r11
call dbg.runtime.writebarrierptr
lea rax, [0x00551720]
mov qword [rsp], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 8], rax
call dbg.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 + 0x120]
mov r8, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x100]
movzx r10d, byte [rsp + 0x77]
jmp 0x4c9d3a
lea rax, [0x00551720]
mov qword [rsp], rax
call dbg.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 + 0x120]
mov r9, qword [rsp + 0x100]
movzx r10d, byte [rsp + 0x77]
jmp 0x4c9d3a
lea rax, [0x0053dd20]
mov qword [rsp], rax
call dbg.runtime.newobject
mov rax, qword [rsp + 8]
mov qword [rsp + 0xf8], rax
mov qword [rax + 8], 0x17
mov ecx, dword [0x006313e0]
test ecx, ecx
jne 0x4ca1ec
lea rcx, [0x0056105a]
mov qword [rax], rcx
mov qword [rax + 0x18], 2
mov ecx, dword [0x006313e0]
lea rdx, [rax + 0x10]
test ecx, ecx
jne 0x4ca1cc
mov rcx, qword [rsp + 0xf0]
mov qword [rax + 0x10], rcx
mov qword [rsp + 0x130], 0
lea rcx, [0x005fe780]
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov qword [rsp], rdx
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 8], rax
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xf8]
jmp 0x4ca199
mov qword [rsp], rax
lea rcx, [0x0056105a]
mov qword [rsp + 8], rcx
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xf8]
jmp 0x4ca177
mov qword [rsp], rax
mov byte [rsp + 8], 0xc
call dbg.regexp/syntax.(*parser).op
mov rax, qword [rsp + 0xa0]
lea rcx, [rax - 2]
mov rax, rcx
neg rcx
sar rcx, 0x3f
and rcx, 2
mov rdx, qword [rsp + 0xf0]
add rcx, rdx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
mov rdi, rcx
mov rcx, rax
mov rax, rdi
jmp 0x4c983d
mov qword [rsp], rax
mov byte [rsp + 8], 9
call dbg.regexp/syntax.(*parser).op
mov rax, qword [rsp + 0xa0]
lea rcx, [rax - 2]
mov rax, rcx
neg rcx
sar rcx, 0x3f
and rcx, 2
mov rdx, qword [rsp + 0xf0]
add rcx, rdx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
mov rdi, rcx
mov rcx, rax
mov rax, rdi
jmp 0x4c983d
cmp r8b, 0x51
je 0x4ca350
cmp r8b, 0x62
je 0x4ca306
cmp r8b, 0x7a
jne 0x4c9ce9
mov qword [rsp], rax
mov byte [rsp + 8], 0xa
call dbg.regexp/syntax.(*parser).op
mov rax, qword [rsp + 0xa0]
lea rcx, [rax - 2]
mov rax, rcx
neg rcx
sar rcx, 0x3f
and rcx, 2
mov rdx, qword [rsp + 0xf0]
add rcx, rdx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
mov rdi, rcx
mov rcx, rax
mov rax, rdi
jmp 0x4c983d
mov qword [rsp], rax
mov byte [rsp + 8], 0xb
call dbg.regexp/syntax.(*parser).op
mov rax, qword [rsp + 0xa0]
lea rcx, [rax - 2]
mov rax, rcx
neg rcx
sar rcx, 0x3f
and rcx, 2
mov rdx, qword [rsp + 0xf0]
add rcx, rdx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
mov rdi, rcx
mov rcx, rax
mov rax, rdi
jmp 0x4c983d
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
lea rax, [0x0055cbc2]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], 2
call dbg.strings.Index
mov rax, qword [rsp + 0x20]
test rax, rax
jge 0x4ca46b
mov rax, qword [rsp + 0xa0]
add rax, 0xfffffffffffffffe
mov rcx, rax
neg rax
sar rax, 0x3f
and rax, 2
mov rdx, qword [rsp + 0xf0]
add rax, rdx
xor edx, edx
xor ebx, ebx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0xb0], rbx
jmp 0x4ca3fb
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x80], rsi
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
mov dword [rsp + 8], ecx
call dbg.regexp/syntax.(*parser).literal
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0xb8]
test rcx, rcx
je 0x4ca457
mov qword [rsp], rax
mov qword [rsp + 8], rcx
call dbg.regexp/syntax.nextRune
mov rax, qword [rsp + 0x18]
mov ecx, dword [rsp + 0x10]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
test rbx, rbx
je 0x4ca3b9
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rbx
mov qword [rsp + 0x140], rdx
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov rcx, rdx
mov rax, rbx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
cmp rax, 2
jb 0x4cab29
mov rcx, qword [rsp + 0xa0]
cmp rax, rcx
ja 0x4cab29
lea rdx, [rax - 2]
mov rbx, rdx
neg rdx
sar rdx, 0x3f
and rdx, 2
mov rsi, qword [rsp + 0xf0]
add rdx, rsi
add rax, 2
cmp rax, rcx
ja 0x4cab22
sub rcx, rax
mov r8, rcx
neg rcx
sar rcx, 0x3f
and rcx, rax
add rsi, rcx
mov rcx, rbx
mov rax, rdx
mov rdx, r8
mov rbx, rsi
jmp 0x4ca3aa
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
call dbg.regexp/syntax.(*parser).parseClass
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x18]
test rcx, rcx
jne 0x4ca514
mov rcx, rdx
mov rax, rbx
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
cmp r10b, 0x5e
jne 0x4ca5a7
movzx r8d, word [rax]
test r8w, 0x10
je 0x4ca597
mov qword [rsp], rax
mov byte [rsp + 8], 9
call dbg.regexp/syntax.(*parser).op
mov r8, qword [rsp + 0xa0]
lea rcx, [r8 - 1]
mov r8, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
mov r9, qword [rsp + 0xf0]
lea rax, [r9 + rcx]
mov rcx, r8
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp], rax
mov byte [rsp + 8], 7
call dbg.regexp/syntax.(*parser).op
jmp 0x4ca560
cmp r10b, 0x7b
je 0x4ca636
cmp r10b, 0x7c
jne 0x4c9a04
mov qword [rsp], rax
call dbg.regexp/syntax.(*parser).parseVerticalBar
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
test rcx, rcx
jne 0x4ca60a
mov r8, qword [rsp + 0xa0]
lea rcx, [r8 - 1]
mov r8, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
mov r9, qword [rsp + 0xf0]
lea rax, [r9 + rcx]
mov rcx, r8
movzx edx, byte [rsp + 0x77]
xor ebx, ebx
xor esi, esi
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
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 dbg.regexp/syntax.(*parser).parseRepeat
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x20]
movzx ebx, byte [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
test bl, bl
jne 0x4ca6cb
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
mov dword [rsp + 8], 0x7b
call dbg.regexp/syntax.(*parser).literal
mov rax, qword [rsp + 0xa0]
lea rcx, [rax - 1]
mov rax, rcx
neg rcx
sar rcx, 0x3f
and rcx, 1
mov rdx, qword [rsp + 0xf0]
add rcx, rdx
mov edx, 0x11
xor ebx, ebx
xor esi, esi
mov rdi, rcx
mov rcx, rax
mov rax, rdi
jmp 0x4c983d
cmp rcx, 0x3e8
ja 0x4ca7b6
cmp rdx, 0x3e8
jg 0x4ca7b6
test rdx, rdx
jl 0x4ca6f3
cmp rcx, rdx
jg 0x4ca7b6
mov rbx, qword [rsp + 0xe0]
mov qword [rsp], rbx
mov byte [rsp + 8], 0x11
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdx
mov rcx, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rcx
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rsi
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x48], rax
call dbg.regexp/syntax.(*parser).repeat
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
test rcx, rcx
jne 0x4ca78a
mov rcx, rbx
mov rax, rdx
mov edx, 0x11
mov rbx, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xa0]
jmp 0x4c983d
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov rax, qword [rsp + 0xa0]
mov rcx, rax
sub rax, rsi
cmp rax, rcx
ja 0x4cab30
mov qword [rsp + 0xa8], rax
lea rax, [0x0053dd20]
mov qword [rsp], rax
call dbg.runtime.newobject
mov rax, qword [rsp + 8]
mov qword [rsp + 0xf8], rax
mov qword [rax + 8], 0x14
mov ecx, dword [0x006313e0]
test ecx, ecx
jne 0x4ca88b
lea rcx, [0x005601df]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xa8]
mov qword [rax + 0x18], rcx
mov ecx, dword [0x006313e0]
lea rdx, [rax + 0x10]
test ecx, ecx
jne 0x4ca86b
mov rcx, qword [rsp + 0xf0]
mov qword [rax + 0x10], rcx
mov qword [rsp + 0x130], 0
lea rcx, [0x005fe780]
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov qword [rsp], rdx
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 8], rax
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xf8]
jmp 0x4ca838
mov qword [rsp], rax
lea rcx, [0x005601df]
mov qword [rsp + 8], rcx
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xf8]
jmp 0x4ca812
mov qword [rsp], rax
call dbg.regexp/syntax.(*parser).concat
mov rax, qword [rsp + 0xe0]
mov qword [rsp], rax
call dbg.regexp/syntax.(*parser).swapVerticalBar
movzx eax, byte [rsp + 8]
test al, al
je 0x4caa22
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
dec rcx
cmp rcx, rdx
ja 0x4cab1b
mov qword [rax + 0x10], rcx
mov qword [rsp], rax
call dbg.regexp/syntax.(*parser).alternate
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rax + 8]
mov rax, qword [rax + 0x10]
cmp rax, 1
je 0x4ca9ef
lea rax, [0x0053dd20]
mov qword [rsp], rax
call dbg.runtime.newobject
mov rax, qword [rsp + 8]
mov qword [rsp + 0xf8], rax
mov qword [rax + 8], 0x11
mov ecx, dword [0x006313e0]
test ecx, ecx
jne 0x4ca9cd
lea rcx, [0x0055f478]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x18], rcx
mov ecx, dword [0x006313e0]
lea rdx, [rax + 0x10]
test ecx, ecx
jne 0x4ca9ad
mov rcx, qword [rsp + 0x118]
mov qword [rax + 0x10], rcx
mov qword [rsp + 0x130], 0
lea rcx, [0x005fe780]
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x140], rax
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov qword [rsp], rdx
mov rax, qword [rsp + 0x118]
mov qword [rsp + 8], rax
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xf8]
jmp 0x4ca97a
mov qword [rsp], rax
lea rcx, [0x0055f478]
mov qword [rsp + 8], rcx
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xf8]
jmp 0x4ca954
mov rax, qword [rcx]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov rax, qword [rsp + 0xe0]
jmp 0x4ca8f4
mov qword [rsp], rbx
mov rax, qword [rsp + 0x118]
mov qword [rsp + 8], rax
call dbg.runtime.writebarrierptr
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x118]
jmp 0x4c982d
mov rax, qword [rsp + 0x118]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 8], rcx
call dbg.regexp/syntax.checkUTF8
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
test rax, rax
je 0x4caabb
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rcx
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
mov rax, qword [rsp + 0x118]
mov qword [rsp], rax
mov rax, qword [rsp + 0x120]
mov qword [rsp + 8], rax
movzx eax, word [rsp + 0x128]
mov word [rsp + 0x10], ax
call dbg.regexp/syntax.literalRegexp
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
ret
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.morestack_noctxt
jmp dbg.regexp/syntax.Parse