Function at 0x4cb530
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x4cc468
sub esp, 0xbc
movzx eax, word [esp + 0xc8]
test ax, 2
jne 0x4cc3d3
lea ecx, [0x61f880]
mov dword [esp], ecx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
movzx ecx, word [esp + 0xc8]
mov word [eax], cx
mov ecx, dword [esp + 0xc4]
mov dword [eax + 0x1c], ecx
mov edx, dword [0x7e38e0]
lea ebx, [eax + 0x18]
test edx, edx
jne 0x4cc3a9
mov edx, dword [esp + 0xc0]
mov dword [eax + 0x18], edx
mov ebx, edx
mov ebp, ecx
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x4c], ecx
mov ecx, ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x50], ecx
xchg esi, eax
mov byte [esp + 0x3b], al
xchg esi, eax
mov dword [esp + 0x70], edi
test ecx, ecx
je 0x4cc27a
movzx ebx, byte [edx]
cmp bl, 0x2e
ja 0x4cb92b
cmp bl, 0x28
ja 0x4cb795
cmp bl, 0x24
jne 0x4cb663
movzx ebx, word [eax]
test bx, 0x10
je 0x4cb654
mov dword [esp], eax
mov byte [esp + 4], 0xa
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 8]
movzx ecx, word [eax + 2]
or ecx, 0x100
mov word [eax + 2], cx
mov ecx, dword [esp + 0x50]
lea edx, [ecx - 2]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 1
mov ebx, dword [esp + 0x74]
add edx, ebx
dec ecx
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
mov esi, eax
mov edi, ebp
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc4]
jmp 0x4cb5b8
mov dword [esp], eax
mov byte [esp + 4], 8
call dbg.regexp/syntax.(*parser).op
jmp 0x4cb615
cmp bl, 0x28
jne 0x4cb723
movzx ebx, word [eax]
test bx, 0x40
je 0x4cb684
cmp ecx, 2
jl 0x4cb684
movzx ebx, byte [edx + 1]
cmp bl, 0x3f
je 0x4cb6cd
mov ebx, dword [eax + 0x14]
inc ebx
mov dword [eax + 0x14], ebx
mov dword [esp], eax
mov byte [esp + 4], pe_nt_image_headers32
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x30], edx
mov eax, dword [esp + 0x50]
lea edx, [eax - 2]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 1
mov ebx, dword [esp + 0x74]
add edx, ebx
dec eax
mov ecx, eax
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call dbg.regexp/syntax.(*parser).parsePerlFlags
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test eax, eax
jne 0x4cb703
mov ecx, edx
movzx eax, byte [esp + 0x3b]
xor ebp, ebp
mov edx, ebx
xor ebx, ebx
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xbc
ret
mov dword [esp], edx
mov dword [esp + 4], ecx
call dbg.regexp/syntax.nextRune
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x58], ebp
test edx, edx
jne 0x4cb775
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dbg.regexp/syntax.(*parser).literal
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ecx
add esp, 0xbc
ret
cmp bl, 0x29
je 0x4cb8d0
lea ebp, [ebx - 0x2a]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jbe 0x4cb806
cmp bl, 0x2e
jne 0x4cb7fa
movzx ebx, word [eax]
test bx, 8
je 0x4cb7eb
mov dword [esp], eax
mov byte [esp + 4], 6
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], eax
mov byte [esp + 4], 5
call dbg.regexp/syntax.(*parser).op
jmp 0x4cb7c4
mov ebp, dword [esp + 0xc4]
jmp 0x4cb723
cmp bl, 0x2a
jne 0x4cb8ab
mov ebx, 0xe
mov byte [esp + 0x3b], bl
mov dword [esp], eax
mov byte [esp + 4], bl
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
lea ebp, [ecx - 2]
sar ebp, 0x1f
xor ebp, 0xffffffff
and ebp, 1
add ebp, edx
mov dword [esp + 0x18], ebp
lea ebp, [ecx - 1]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x24], ebp
call dbg.regexp/syntax.(*parser).repeat
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test edx, edx
jne 0x4cb88b
mov edx, eax
mov ecx, ebx
movzx eax, byte [esp + 0x3b]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x74]
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], ecx
add esp, 0xbc
ret
cmp bl, 0x2b
jne 0x4cb8ba
mov ebx, 0xf
jmp 0x4cb814
cmp bl, 0x3f
jne 0x4cb8c9
mov ebx, 0x10
jmp 0x4cb814
mov ebx, esi
jmp 0x4cb814
mov dword [esp], eax
call dbg.regexp/syntax.(*parser).parseRightParen
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x4cb90b
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
cmp bl, 0x5c
ja 0x4cbff7
cmp bl, 0x3f
je 0x4cb806
cmp bl, 0x5b
je 0x4cbfa1
cmp bl, 0x5c
jne 0x4cb723
movzx ebx, word [eax]
test bx, 0x40
je 0x4cb986
cmp ecx, 2
jl 0x4cb986
movzx ebx, byte [edx + 1]
cmp bl, 0x43
ja 0x4cbdf8
cmp bl, 0x41
je 0x4cbdc4
cmp bl, 0x42
je 0x4cbd90
cmp bl, 0x43
je 0x4cbcf2
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x68], ebx
test ebx, ebx
je 0x4cbcd5
mov edi, ebp
mov ebp, dword [0x7e38e0]
mov edx, dword [ebx + 0x10]
lea ecx, [eax + 0x10]
test ebp, ebp
jne 0x4cbcb0
mov dword [eax + 0x10], edx
lea edi, [esp + 0x80]
mov edx, eax
xor eax, eax
call fcn.00449e61
mov ecx, dword [0x7e38e0]
test ecx, ecx
jne 0x4cbc84
mov edi, ebx
lea esi, [esp + 0x80]
call fcn.0044a2ea
mov dword [esp + 0x6c], ebx
mov byte [ebx], 4
movzx ecx, word [edx]
mov word [ebx + 2], cx
mov ecx, dword [esp + 0x50]
cmp ecx, 2
jl 0x4cbc7b
mov ebp, dword [esp + 0x74]
movzx esi, byte [ebp + 1]
xchg esi, eax
cmp al, 0x70
xchg esi, eax
je 0x4cbb95
xchg esi, eax
cmp al, 0x50
xchg esi, eax
je 0x4cbb95
lea esi, [ebx + 0x20]
test byte [esi], al
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 2
call dbg.regexp/syntax.(*parser).parsePerlClassEscape
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x64], edx
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x4cbab6
mov esi, dword [esp + 0x6c]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebx
mov eax, dword [0x7e38e0]
lea ebx, [esi + 0x14]
test eax, eax
jne 0x4cba9c
mov dword [esi + 0x14], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], esi
call dbg.regexp/syntax.(*parser).push
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], ebx
mov dword [esp + 4], ebp
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
jmp 0x4cba76
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 0x10]
mov edx, dword [0x7e38e0]
mov ebx, dword [esp + 0x6c]
lea ebp, [ebx + 0x10]
test edx, edx
jne 0x4cbb7c
mov dword [ebx + 0x10], ecx
mov ecx, dword [0x7e38e0]
lea edx, [eax + 0x10]
test ecx, ecx
jne 0x4cbb67
mov dword [eax + 0x10], ebx
mov dword [esp], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call dbg.regexp/syntax.(*parser).parseEscape
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x1c]
test ecx, ecx
jne 0x4cbb47
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dbg.regexp/syntax.(*parser).literal
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], ebp
add esp, 0xbc
ret
mov dword [esp], edx
mov dword [esp + 4], ebx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x7c]
jmp 0x4cbae9
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x6c]
jmp 0x4cbad5
lea esi, [ebx + 0x20]
test byte [esi], al
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 2
call dbg.regexp/syntax.(*parser).parseUnicodeClass
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x5c], ebx
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
test ecx, ecx
jne 0x4cbc5b
test esi, esi
je 0x4cbc44
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], ebp
mov ecx, dword [0x7e38e0]
lea ebp, [eax + 0x14]
test ecx, ecx
jne 0x4cbc2a
mov dword [eax + 0x14], esi
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dbg.regexp/syntax.(*parser).push
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], ebp
mov dword [esp + 4], esi
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
jmp 0x4cbc04
xor eax, eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x74]
jmp 0x4cba13
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov ebp, dword [esp + 0x74]
jmp 0x4cba13
lea ecx, [0x626c60]
mov dword [esp], ecx
mov dword [esp + 4], ebx
lea ecx, [esp + 0x80]
mov dword [esp + 8], ecx
call dbg.runtime.typedmemmove
xor eax, eax
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x68]
jmp 0x4cb9da
mov dword [esp], ecx
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x68]
movzx esi, byte [esp + 0x3b]
mov edi, dword [esp + 0xc4]
jmp 0x4cb9ae
lea ebx, [0x626c60]
mov dword [esp], ebx
call dbg.runtime.newobject
mov ebx, dword [esp + 4]
xor eax, eax
mov edx, dword [esp + 0x7c]
jmp 0x4cb9da
lea eax, [0x60cd40]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [eax + 4], 0x17
mov ecx, dword [0x7e38e0]
test ecx, ecx
jne 0x4cbd78
lea ecx, [0x63dfa7]
mov dword [eax], ecx
mov dword [eax + 0xc], 2
mov ecx, dword [0x7e38e0]
lea edx, [eax + 8]
test ecx, ecx
jne 0x4cbd62
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov dword [esp + 0xcc], 0
lea ecx, [0x724ed0]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x78]
jmp 0x4cbd3c
mov dword [esp], eax
lea ecx, [0x63dfa7]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x78]
jmp 0x4cbd21
mov dword [esp], eax
mov byte [esp + 4], 0xc
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], eax
mov byte [esp + 4], 9
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
cmp bl, 0x51
je 0x4cbe74
cmp bl, 0x62
je 0x4cbe40
cmp bl, 0x7a
je 0x4cbe0c
jmp 0x4cb986
mov dword [esp], eax
mov byte [esp + 4], 0xa
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], eax
mov byte [esp + 4], 0xb
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 0x50]
lea ecx, [eax - 3]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 2
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 2]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ebx, [0x637cc9]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
call dbg.strings.Index
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x4cbf49
mov ecx, dword [esp + 0x50]
lea edx, [ecx - 3]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 2
mov ebx, dword [esp + 0x74]
add edx, ebx
add ecx, 0xfffffffe
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ebx
test ecx, ecx
je 0x4cbf17
mov dword [esp], edx
mov dword [esp + 4], ecx
call dbg.regexp/syntax.nextRune
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 8]
test ecx, ecx
jne 0x4cbf29
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebp
call dbg.regexp/syntax.(*parser).literal
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x60]
test ecx, ecx
jne 0x4cbec7
mov edx, eax
mov ecx, ebx
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
cmp eax, 2
jb 0x4cbf9a
mov ecx, dword [esp + 0x50]
cmp eax, ecx
ja 0x4cbf9a
lea edx, [eax - 3]
sar edx, 0x1f
xor edx, 0xffffffff
and edx, 2
mov ebx, dword [esp + 0x74]
add edx, ebx
lea ebp, [eax - 2]
mov esi, edx
lea edx, [eax + 2]
cmp edx, ecx
ja 0x4cbf93
sub ecx, edx
mov eax, ebp
lea ebp, [ecx - 1]
sar ebp, 0x1f
xor ebp, 0xffffffff
and edx, ebp
lea ebp, [edx + ebx]
mov ebx, ecx
mov ecx, eax
mov edx, esi
mov eax, ebp
jmp 0x4cbebb
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call dbg.regexp/syntax.(*parser).parseClass
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test ecx, ecx
jne 0x4cbfd7
mov ecx, edx
movzx eax, byte [esp + 0x3b]
xor ebp, ebp
mov edx, ebx
xor ebx, ebx
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
cmp bl, 0x5e
jne 0x4cc049
movzx ebx, word [eax]
test bx, 0x10
je 0x4cc03a
mov dword [esp], eax
mov byte [esp + 4], 9
call dbg.regexp/syntax.(*parser).op
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp], eax
mov byte [esp + 4], 7
call dbg.regexp/syntax.(*parser).op
jmp 0x4cc013
cmp bl, 0x7b
je 0x4cc0b3
cmp bl, 0x7c
je 0x4cc058
jmp 0x4cb723
mov dword [esp], eax
call dbg.regexp/syntax.(*parser).parseVerticalBar
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test ecx, ecx
jne 0x4cc093
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
movzx eax, byte [esp + 0x3b]
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call dbg.regexp/syntax.(*parser).parseRepeat
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
test dl, dl
jne 0x4cc117
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], 0x7b
call dbg.regexp/syntax.(*parser).literal
mov eax, dword [esp + 0x50]
lea ecx, [eax - 2]
sar ecx, 0x1f
xor ecx, 0xffffffff
and ecx, 1
mov edx, dword [esp + 0x74]
add edx, ecx
lea ecx, [eax - 1]
mov eax, 0x11
xor ebx, ebx
xor ebp, ebp
jmp 0x4cb635
cmp eax, 0x3e8
ja 0x4cc1c1
cmp ecx, 0x3e8
jg 0x4cc1c1
test ecx, ecx
jl 0x4cc13a
cmp eax, ecx
jg 0x4cc1c1
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
mov byte [esp + 4], 0x11
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x24], ebx
call dbg.regexp/syntax.(*parser).repeat
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
test eax, eax
jne 0x4cc1a1
mov eax, 0x11
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x74]
jmp 0x4cb635
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ebx
add esp, 0xbc
ret
mov eax, dword [esp + 0x50]
mov ecx, eax
sub eax, ebx
mov dword [esp + 0x54], eax
cmp eax, ecx
ja 0x4cc273
lea ecx, [0x60cd40]
mov dword [esp], ecx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [eax + 4], 0x14
mov ecx, dword [0x7e38e0]
test ecx, ecx
jne 0x4cc25b
lea ecx, [0x63cd16]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x7e38e0]
lea edx, [eax + 8]
test ecx, ecx
jne 0x4cc245
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov dword [esp + 0xcc], 0
lea ecx, [0x724ed0]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x78]
jmp 0x4cc21f
mov dword [esp], eax
lea ecx, [0x63cd16]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x78]
jmp 0x4cc204
call dbg.runtime.panicslice
ud2
mov dword [esp], eax
call dbg.regexp/syntax.(*parser).concat
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call dbg.regexp/syntax.(*parser).swapVerticalBar
movzx eax, byte [esp + 4]
test al, al
je 0x4cc3a0
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
dec ecx
cmp ecx, edx
ja 0x4cc399
mov dword [eax + 8], ecx
mov dword [esp], eax
call dbg.regexp/syntax.(*parser).alternate
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
cmp ecx, 1
je 0x4cc373
lea eax, [0x60cd40]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [eax + 4], 0x11
mov ecx, dword [0x7e38e0]
test ecx, ecx
jne 0x4cc35b
lea ecx, [0x63bae3]
mov dword [eax], ecx
mov ecx, dword [esp + 0xc4]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x7e38e0]
lea edx, [eax + 8]
test ecx, ecx
jne 0x4cc342
mov ecx, dword [esp + 0xc0]
mov dword [eax + 8], ecx
mov dword [esp + 0xcc], 0
lea ecx, [0x724ed0]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov dword [esp], edx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x78]
jmp 0x4cc31c
mov dword [esp], eax
lea ecx, [0x63bae3]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x78]
jmp 0x4cc2fb
mov eax, dword [eax]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
add esp, 0xbc
ret
call dbg.runtime.panicslice
ud2
mov eax, dword [esp + 0x7c]
jmp 0x4cc2b1
mov dword [esp], ebx
mov edx, dword [esp + 0xc0]
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
jmp 0x4cb5a8
mov ecx, dword [esp + 0xc0]
mov dword [esp], ecx
mov edx, dword [esp + 0xc4]
mov dword [esp + 4], edx
call dbg.regexp/syntax.checkUTF8
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x4cc419
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
add esp, 0xbc
ret
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
movzx eax, word [esp + 0xc8]
mov word [esp + 8], ax
call dbg.regexp/syntax.literalRegexp
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
add esp, 0xbc
ret
call dbg.runtime.morestack_noctxt
jmp dbg.regexp/syntax.Parse