Function at 0x4b9f60
Capabilities:
Parse credit card information

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x4ba9fe
push rbp
mov rbp, rsp
sub rsp, 0xa8
mov qword [rsp + 0xb8], rax
jmp 0x4b9f87
mov rax, rdx
mov rdx, qword [rax + 0x68]
test rdx, rdx
jne 0x4ba8a6
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 0x4ba970
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 0x4ba7d9
mov edx, dword [rsp + 0x3c]
lea ebx, [rdx - 0x30]
cmp ebx, 9
jbe 0x4ba7b1
cmp edx, 0x2e
jne 0x4ba034
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rax + 0x50]
mov rsi, qword [rax + 0x20]
cmp rsi, rbx
jle 0x4ba022
jbe 0x4ba965
mov rsi, qword [rax + 0x18]
movzx ebx, byte [rsi + rbx]
jmp 0x4ba024
xor ebx, ebx
movzx ebx, bl
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x4ba03c
jmp 0x4ba7b9
mov rax, qword [rsp + 0xb8]
nop dword [rax]
call sym.go_scanner._Scanner_.next
mov ecx, dword [rsp + 0x3c]
cmp ecx, 0x2e
jle 0x4ba3a6
cmp ecx, 0x5b
jg 0x4ba269
nop dword [rax + rax]
cmp ecx, 0x3b
jg 0x4ba173
cmp ecx, 0x2f
jne 0x4ba113
mov rax, qword [rsp + 0xb8]
mov edx, dword [rax + 0x40]
nop dword [rax]
cmp edx, 0x2f
je 0x4ba08a
cmp edx, 0x2a
jne 0x4ba0ea
call sym.go_scanner._Scanner_.scanComment
mov rdx, qword [rsp + 0xb8]
movzx esi, byte [rdx + 0x60]
nop dword [rax + rax]
test sil, sil
je 0x4ba0c8
test rcx, rcx
je 0x4ba0c8
mov rsi, qword [rdx]
cmp qword [rsi + 0x18], rcx
jl 0x4ba8d3
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 0x4b9f84
mov ecx, 2
mov rdi, rax
mov rax, rdx
mov rdx, rdi
jmp 0x4ba880
cmp edx, 0x3d
je 0x4ba0f6
mov ecx, 0xf
jmp 0x4ba108
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x1a
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x3a
jne 0x4ba14a
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4ba12d
mov ecx, 0x3a
jmp 0x4ba13f
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x2f
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x3b
jne 0x4ba4c5
mov rax, qword [rsp + 0xb8]
xor esi, esi
mov ebx, 1
mov ecx, 0x39
lea rdx, [0x0050a6c4]
jmp 0x4ba880
cmp ecx, 0x3d
jg 0x4ba206
nop dword [rax]
cmp ecx, 0x3c
jne 0x4ba1d4
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x2d
jne 0x4ba19f
call sym.go_scanner._Scanner_.next
mov eax, 0x24
jmp 0x4ba1be
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 0x4ba880
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4ba1e9
mov ecx, 0x2a
jmp 0x4ba1fb
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x27
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x3e
je 0x4ba22c
cmp ecx, 0x5b
jne 0x4ba4c5
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x32
xor edx, edx
jmp 0x4ba880
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 0x4ba880
cmp ecx, 0x60
jg 0x4ba2f9
cmp ecx, 0x5d
jne 0x4ba292
mov rax, qword [rsp + 0xb8]
mov esi, 1
xor ebx, ebx
mov ecx, 0x37
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x5e
jne 0x4ba2c9
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4ba2ac
mov ecx, 0x13
jmp 0x4ba2be
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x1e
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x60
jne 0x4ba4c5
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 0x4ba880
cmp ecx, 0x7c
jg 0x4ba365
nop
cmp ecx, 0x7b
jne 0x4ba320
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x33
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x7c
jne 0x4ba4c5
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 0x4ba880
cmp ecx, 0x7d
jne 0x4ba385
mov rax, qword [rsp + 0xb8]
mov esi, 1
xor ebx, ebx
mov ecx, 0x38
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x7e
jne 0x4ba4c5
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x58
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x27
jg 0x4ba62c
cmp ecx, 0x21
jg 0x4ba470
cmp ecx, 0xffffffff
jne 0x4ba401
mov rdx, qword [rsp + 0xb8]
cmp byte [rdx + 0x60], 0
jne 0x4ba3de
mov rax, rdx
xor esi, esi
xor ebx, ebx
mov ecx, 1
xor edx, edx
jmp 0x4ba880
mov byte [rdx + 0x60], 0
mov rax, qword [rsp + 0x58]
mov ebx, 0x39
lea rcx, [0x00534778]
mov edi, 1
add rsp, 0xa8
pop rbp
ret
cmp ecx, 0xa
je 0x4ba445
cmp ecx, 0x21
jne 0x4ba4c5
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4ba424
mov ecx, 0x2b
jmp 0x4ba436
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 0x4ba880
mov rdx, qword [rsp + 0xb8]
mov byte [rdx + 0x60], 0
mov rax, qword [rsp + 0x58]
mov ebx, 0x39
lea rcx, [0x00534778]
mov edi, 1
add rsp, 0xa8
pop rbp
ret
cmp ecx, 0x25
jg 0x4ba595
nop dword [rax]
cmp ecx, 0x22
je 0x4ba56e
cmp ecx, 0x25
jne 0x4ba4c5
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4ba4a3
mov ecx, 0x10
jmp 0x4ba4b5
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 0x4ba880
cmp ecx, 0xfeff
je 0x4ba53d
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, [0x004e9580]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
lea rcx, [0x0050e38f]
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 0x4ba880
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 0x4ba880
cmp ecx, 0x26
jne 0x4ba605
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x5e
jne 0x4ba5d6
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4ba5c2
mov ecx, 0x16
jmp 0x4ba5fa
call sym.go_scanner._Scanner_.next
mov rax, qword [rsp + 0xb8]
mov ecx, 0x21
jmp 0x4ba5fa
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 0x4ba880
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 0x4ba880
cmp ecx, 0x2a
jg 0x4ba6a5
cmp ecx, 0x28
jne 0x4ba64e
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x31
xor edx, edx
jmp 0x4ba880
cmp ecx, 0x29
jne 0x4ba66e
mov rax, qword [rsp + 0xb8]
mov esi, 1
xor ebx, ebx
mov ecx, 0x36
xor edx, edx
jmp 0x4ba880
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x3d
je 0x4ba683
mov ecx, 0xe
jmp 0x4ba695
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 0x4ba880
cmp ecx, 0x2c
jg 0x4ba705
cmp ecx, 0x2b
je 0x4ba6c7
mov rax, qword [rsp + 0xb8]
xor esi, esi
xor ebx, ebx
mov ecx, 0x34
xor edx, edx
jmp 0x4ba880
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 0x4ba880
cmp ecx, 0x2d
je 0x4ba774
mov rax, qword [rsp + 0xb8]
cmp dword [rax + 0x40], 0x2e
jne 0x4ba764
mov rdx, qword [rax + 0x50]
mov rcx, qword [rax + 0x20]
cmp rcx, rdx
jle 0x4ba735
jbe 0x4ba8cb
mov rsi, qword [rax + 0x18]
movzx edx, byte [rsi + rdx]
jmp 0x4ba737
xor edx, edx
cmp dl, 0x2e
je 0x4ba743
mov ecx, 0x35
jmp 0x4ba769
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 0x4ba769
mov ecx, 0x35
xor esi, esi
xor ebx, ebx
xor edx, edx
jmp 0x4ba880
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 0x4ba880
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 0x4ba880
mov rax, qword [rsp + 0xb8]
call sym.go_scanner._Scanner_.scanIdentifier
cmp rbx, 1
jg 0x4ba7f8
mov ecx, 1
mov edx, 4
jmp 0x4ba870
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x48], rbx
mov rdx, qword [0x005e2480]
mov rcx, rax
mov rdi, rbx
lea rax, [0x004ee300]
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 0x4ba848
cmp rdx, 4
je 0x4ba85a
nop dword [rax]
cmp rdx, 0x3d
je 0x4ba85a
jmp 0x4ba862
cmp rdx, 0x41
je 0x4ba85a
cmp rdx, 0x45
je 0x4ba85a
cmp rdx, 0x50
jne 0x4ba862
mov eax, 1
nop
jmp 0x4ba864
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 0x4ba88f
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, [0x00534778]
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, [0x004e9500]
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, [0x004e9500]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
lea rax, [0x0051300a]
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, [0x004e9380]
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, [0x004e9500]
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, [0x004e9500]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
lea rax, [0x0051300a]
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, [0x004e9380]
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