Function at 0x4c35a0
Capabilities:
Parse credit card information

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x4c403e
push rbp
mov rbp, rsp
sub rsp, 0xa8
mov qword [rsp + 0xb8], rax
jmp 0x4c35c7
mov rax, rdx
mov rdx, qword [rax + 0x68]
test rdx, rdx
jne 0x4c3ee6
call sym.go_scanner._Scanner_.skipWhitespace
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rcx]
mov rax, qword [rcx + 0x48]
cmp qword [rdx + 0x18], rax
jl 0x4c3fb0
mov qword [rsp + 0x40], rax
mov eax, dword [rcx + 0x40]
mov dword [rsp + 0x3c], eax
mov rdx, qword [rdx + 0x10]
mov qword [rsp + 0x58], rdx
call sym.go_scanner.isLetter
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
add rcx, rdx
mov qword [rsp + 0x58], rcx
nop
test al, al
jne 0x4c3e19
mov edx, dword [rsp + 0x3c]
lea ebx, [rdx - 0x30]
cmp ebx, 9
jbe 0x4c3df1
cmp edx, 0x2e
jne 0x4c3674
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rax + 0x50]
mov rsi, qword [rax + 0x20]
cmp rsi, rbx
jle 0x4c3662
jbe 0x4c3fa5
mov rsi, qword [rax + 0x18]
movzx ebx, byte [rsi + rbx]
jmp 0x4c3664
xor ebx, ebx
movzx ebx, bl
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x4c367c
jmp 0x4c3df9
mov rax, qword [rsp + 0xb8]
nop dword [rax]
call sym.go_scanner._Scanner_.next
mov ecx, dword [rsp + 0x3c]
cmp ecx, 0x2e
jle 0x4c39e6
cmp ecx, 0x5b
jg 0x4c38a9
nop dword [rax + rax]
cmp ecx, 0x3b
jg 0x4c37b3
cmp ecx, 0x2f
jne 0x4c3753
mov rax, qword [rsp + 0xb8]
mov edx, dword [rax + 0x40]
nop dword [rax]
cmp edx, 0x2f
je 0x4c36ca
cmp edx, 0x2a
jne 0x4c372a
call sym.go_scanner._Scanner_.scanComment
mov rdx, qword [rsp + 0xb8]
movzx esi, byte [rdx + 0x60]
nop dword [rax + rax]
test sil, sil
je 0x4c3708
test rcx, rcx
je 0x4c3708
mov rsi, qword [rdx]
cmp qword [rsi + 0x18], rcx
jl 0x4c3f13
mov r8, qword [rsi + 0x10]
add r8, rcx
mov qword [rdx + 0x68], r8
mov byte [rdx + 0x60], 0
xor esi, esi
mov r8, qword [rdx + 0x38]
bt r8d, 0
jae 0x4c35c4
mov ecx, 2
mov rdi, rax
mov rax, rdx
mov rdx, rdi
jmp 0x4c3ec0
cmp edx, 0x3d
je 0x4c3736
mov ecx, 0xf
jmp 0x4c3748
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x1a
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x3a
jne 0x4c378a
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4c376d
mov ecx, 0x3a
jmp 0x4c377f
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x2f
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x3b
jne 0x4c3b05
mov rax, qword [rsp + 0xb8]
xor esi, esi
mov ebx, 1
mov ecx, 0x39
lea rdx, [0x0055ad62]
jmp 0x4c3ec0
cmp ecx, 0x3d
jg 0x4c3846
nop dword [rax]
cmp ecx, 0x3c
jne 0x4c3814
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x2d
jne 0x4c37df
call sym.go_scanner._Scanner_.next
mov eax, 0x24
jmp 0x4c37fe
mov ebx, 0x28
mov ecx, 0x2d
mov edi, 0x3c
mov esi, 0x14
mov r8d, 0x1f
call sym.go_scanner._Scanner_.switch4
xor esi, esi
xor ebx, ebx
mov rcx, rax
xor edx, edx
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4c3829
mov ecx, 0x2a
jmp 0x4c383b
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x27
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x3e
je 0x4c386c
cmp ecx, 0x5b
jne 0x4c3b05
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x32
xor edx, edx
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
mov ebx, 0x29
mov ecx, 0x2e
mov edi, 0x3e
mov esi, 0x15
mov r8d, 0x20
call sym.go_scanner._Scanner_.switch4
xor esi, esi
xor ebx, ebx
mov rcx, rax
xor edx, edx
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
cmp ecx, 0x60
jg 0x4c3939
cmp ecx, 0x5d
jne 0x4c38d2
mov rax, qword [rsp + 0xb8]
mov esi, 1
xor ebx, ebx
mov ecx, 0x37
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x5e
jne 0x4c3909
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4c38ec
mov ecx, 0x13
jmp 0x4c38fe
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x1e
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x60
jne 0x4c3b05
mov rax, qword [rsp + 0xb8]
call sym.go_scanner._Scanner_.scanRawString
mov esi, 1
mov ecx, 9
mov rdx, rax
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
cmp ecx, 0x7c
jg 0x4c39a5
nop
cmp ecx, 0x7b
jne 0x4c3960
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x33
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x7c
jne 0x4c3b05
mov rax, qword [rsp + 0xb8]
mov ebx, 0x12
mov ecx, 0x1d
mov edi, 0x7c
mov esi, 0x23
call sym.go_scanner._Scanner_.switch3
xor esi, esi
xor ebx, ebx
mov rcx, rax
xor edx, edx
mov rax, qword [rsp + 0xb8]
nop dword [rax + rax]
jmp 0x4c3ec0
cmp ecx, 0x7d
jne 0x4c39c5
mov rax, qword [rsp + 0xb8]
mov esi, 1
xor ebx, ebx
mov ecx, 0x38
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x7e
jne 0x4c3b05
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x58
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x27
jg 0x4c3c6c
cmp ecx, 0x21
jg 0x4c3ab0
cmp ecx, 0xffffffff
jne 0x4c3a41
mov rdx, qword [rsp + 0xb8]
cmp byte [rdx + 0x60], 0
jne 0x4c3a1e
mov rax, rdx
xor esi, esi
xor ebx, ebx
mov ecx, 1
xor edx, edx
jmp 0x4c3ec0
mov byte [rdx + 0x60], 0
mov rax, qword [rsp + 0x58]
mov ebx, 0x39
lea rcx, [0x0058d4f0]
mov edi, 1
add rsp, 0xa8
pop rbp
ret
cmp ecx, 0xa
je 0x4c3a85
cmp ecx, 0x21
jne 0x4c3b05
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4c3a64
mov ecx, 0x2b
jmp 0x4c3a76
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x2c
xor esi, esi
xor ebx, ebx
xor edx, edx
nop dword [rax]
jmp 0x4c3ec0
mov rdx, qword [rsp + 0xb8]
mov byte [rdx + 0x60], 0
mov rax, qword [rsp + 0x58]
mov ebx, 0x39
lea rcx, [0x0058d4f0]
mov edi, 1
add rsp, 0xa8
pop rbp
ret
cmp ecx, 0x25
jg 0x4c3bd5
nop dword [rax]
cmp ecx, 0x22
je 0x4c3bae
cmp ecx, 0x25
jne 0x4c3b05
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4c3ae3
mov ecx, 0x10
jmp 0x4c3af5
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x1b
xor esi, esi
xor ebx, ebx
xor edx, edx
nop dword [rax + rax]
jmp 0x4c3ec0
cmp ecx, 0xfeff
je 0x4c3b7d
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
mov rbx, qword [rsp + 0x58]
nop dword [rax]
call sym.go_token._File_.Offset
mov qword [rsp + 0x50], rax
movups xmmword [rsp + 0x78], xmm15
mov eax, dword [rsp + 0x3c]
call sym.runtime.convT32
lea rcx, [0x00531920]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
lea rcx, [0x0055f73d]
mov edi, 0x15
lea rsi, [rsp + 0x78]
mov r8d, 1
mov r9, r8
call sym.go_scanner._Scanner_.errorf
mov ecx, dword [rsp + 0x3c]
movsxd rbx, ecx
mov rcx, qword [rsp + 0xb8]
movzx edx, byte [rcx + 0x60]
mov byte [rsp + 0x3b], dl
xor eax, eax
call sym.runtime.intstring
movzx esi, byte [rsp + 0x3b]
xor ecx, ecx
mov rdx, rax
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
call sym.go_scanner._Scanner_.scanString
mov esi, 1
mov ecx, 9
mov rdx, rax
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
cmp ecx, 0x26
jne 0x4c3c45
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x5e
jne 0x4c3c16
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4c3c02
mov ecx, 0x16
jmp 0x4c3c3a
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x21
jmp 0x4c3c3a
mov ebx, 0x11
mov ecx, 0x1c
mov edi, 0x26
mov esi, 0x22
call sym.go_scanner._Scanner_.switch3
mov rcx, rax
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
call sym.go_scanner._Scanner_.scanRune
mov esi, 1
mov ecx, 8
mov rdx, rax
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
cmp ecx, 0x2a
jg 0x4c3ce5
cmp ecx, 0x28
jne 0x4c3c8e
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x31
xor edx, edx
jmp 0x4c3ec0
cmp ecx, 0x29
jne 0x4c3cae
mov rax, qword [rsp + 0xb8]
mov esi, 1
xor ebx, ebx
mov ecx, 0x36
xor edx, edx
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4c3cc3
mov ecx, 0xe
jmp 0x4c3cd5
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x19
xor esi, esi
xor ebx, ebx
xor edx, edx
nop dword [rax + rax]
jmp 0x4c3ec0
cmp ecx, 0x2c
jg 0x4c3d45
cmp ecx, 0x2b
je 0x4c3d07
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x34
xor edx, edx
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
mov ebx, 0xc
mov ecx, 0x17
mov edi, 0x2b
mov esi, 0x25
call sym.go_scanner._Scanner_.switch3
cmp rax, 0x25
sete sil
xor ebx, ebx
mov rcx, rax
xor edx, edx
mov rax, qword [rsp + 0xb8]
nop
jmp 0x4c3ec0
cmp ecx, 0x2d
je 0x4c3db4
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x2e
jne 0x4c3da4
mov rdx, qword [rax + 0x50]
mov rcx, qword [rax + 0x20]
cmp rdx, rcx
jge 0x4c3d75
jae 0x4c3f0b
mov rsi, qword [rax + 0x18]
movzx edx, byte [rsi + rdx]
jmp 0x4c3d77
xor edx, edx
cmp dl, 0x2e
je 0x4c3d83
mov ecx, 0x35
jmp 0x4c3da9
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x30
jmp 0x4c3da9
mov ecx, 0x35
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
mov ebx, 0xd
mov ecx, 0x18
mov edi, 0x2d
mov esi, 0x26
call sym.go_scanner._Scanner_.switch3
cmp rax, 0x26
sete sil
xor ebx, ebx
mov rcx, rax
xor edx, edx
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
call sym.go_scanner._Scanner_.scanNumber
mov esi, 1
mov rdx, rbx
mov rbx, rcx
mov rcx, rax
mov rax, qword [rsp + 0xb8]
jmp 0x4c3ec0
mov rax, qword [rsp + 0xb8]
call sym.go_scanner._Scanner_.scanIdentifier
cmp rbx, 1
jg 0x4c3e38
mov ecx, 1
mov edx, 4
jmp 0x4c3eb0
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x60], rax
mov rdx, qword [0x00668e78]
mov rcx, rax
mov rdi, rbx
lea rax, [0x005380c0]
mov rbx, rdx
call sym.runtime.mapaccess2_faststr
movzx edx, bl
mov rsi, qword [rax]
test rdx, rdx
mov edx, 4
cmovne rdx, rsi
cmp rdx, 0x3d
jg 0x4c3e88
cmp rdx, 4
je 0x4c3e9a
nop dword [rax]
cmp rdx, 0x3d
je 0x4c3e9a
jmp 0x4c3ea2
cmp rdx, 0x41
je 0x4c3e9a
cmp rdx, 0x45
je 0x4c3e9a
cmp rdx, 0x50
jne 0x4c3ea2
mov eax, 1
nop
jmp 0x4c3ea4
xor eax, eax
mov rbx, qword [rsp + 0x48]
mov ecx, eax
mov rax, qword [rsp + 0x60]
mov esi, ecx
mov rcx, rdx
mov rdx, rax
mov rax, qword [rsp + 0xb8]
mov r8, qword [rax + 0x38]
bt r8d, 1
jb 0x4c3ecf
mov byte [rax + 0x60], sil
mov rax, qword [rsp + 0x58]
mov rdi, rbx
mov rbx, rcx
mov rcx, rdx
add rsp, 0xa8
pop rbp
ret
mov qword [rax + 0x68], 0
mov rax, rdx
mov ebx, 0x39
lea rcx, [0x0058d4f0]
mov edi, 1
add rsp, 0xa8
pop rbp
ret
mov rax, rdx
call sym.runtime.panicIndex
mov qword [rsp + 0x68], rsi
movups xmmword [rsp + 0x88], xmm15
movups xmmword [rsp + 0x98], xmm15
mov rax, rcx
call sym.runtime.convT64
lea rcx, [0x005318a0]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0x68]
mov rax, qword [rdx + 0x18]
call sym.runtime.convT64
lea rcx, [0x005318a0]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
lea rax, [0x00564f85]
mov ebx, 0x28
lea rcx, [rsp + 0x88]
mov edi, 2
mov rsi, rdi
call sym.fmt.Sprintf
call sym.runtime.convTstring
mov rbx, rax
lea rax, [0x00531720]
nop
call sym.runtime.gopanic
mov rax, rbx
mov rcx, rsi
call sym.runtime.panicIndex
mov qword [rsp + 0x70], rdx
movups xmmword [rsp + 0x88], xmm15
movups xmmword [rsp + 0x98], xmm15
call sym.runtime.convT64
lea rcx, [0x005318a0]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0x70]
mov rax, qword [rdx + 0x18]
call sym.runtime.convT64
lea rcx, [0x005318a0]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
lea rax, [0x00564f85]
mov ebx, 0x28
lea rcx, [rsp + 0x88]
mov edi, 2
mov rsi, rdi
call sym.fmt.Sprintf
call sym.runtime.convTstring
mov rbx, rax
lea rax, [0x00531720]
call sym.runtime.gopanic
nop
mov qword [rsp + 8], rax
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
jmp sym.go_scanner._Scanner_.Scan