Function at 0x1001a310
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1001a3d0
nop dword [eax + eax]
cmp eax, 0x7c
je 0x1001a3d0
cmp eax, 0x29
jne 0x1001a3d8
cmp dword [esi + 0x10], 0
jne 0x1001a3d0
test dword [esi + 0x50], 0x10000000
je 0x1001a7af
cmp eax, 0x5d
jne 0x1001a36b
test dword [esi + 0x50], 0x10000000
je 0x1001a7a1
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1001b580
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x1001a3b4
cmp byte [eax], 0x5c
jne 0x1001a3b2
inc eax
cmp eax, ecx
je 0x1001a3b2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001a39f
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001a3b0
cmp dl, 0x29
je 0x1001a3b0
test cl, 0x10
jne 0x1001a3b2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001a3b0
cmp cl, 0x7d
jne 0x1001a3b2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100196e0
mov ecx, esi
call fcn.1001b350
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1001a330
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x2e
jne 0x1001a438
push 0x14
call fcn.10029ef9
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x1001a42d
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
jmp 0x1001a378
cmp eax, 0x5c
jne 0x1001a5a4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001a47d
cmp byte [eax], 0x5c
jne 0x1001a47b
inc eax
cmp eax, ecx
je 0x1001a47b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001a468
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001a479
cmp dl, 0x29
je 0x1001a479
test cl, 0x10
jne 0x1001a47b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001a479
cmp cl, 0x7d
jne 0x1001a47b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100196e0
test byte [esi + 0x50], 0x80
je 0x1001a598
cmp byte [esi + 0x48], 0x62
jne 0x1001a531
push 0x14
call fcn.10029ef9
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x1001a4e8
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001a763
cmp byte [eax], 0x5c
jne 0x1001a761
inc eax
cmp eax, ecx
je 0x1001a761
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1001a529
mov cl, byte [eax]
cmp cl, 0x28
je 0x1001a75f
cmp cl, 0x29
je 0x1001a75f
test dl, 0x10
jmp 0x1001a751
cmp byte [esi + 0x48], 0x42
jne 0x1001a598
push 0x14
call fcn.10029ef9
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x1001a587
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x1001a4ee
mov ecx, esi
call fcn.1001b040
jmp 0x1001a3bb
cmp eax, 0x5b
jne 0x1001a602
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001a5e5
cmp byte [eax], 0x5c
jne 0x1001a5e3
inc eax
cmp eax, ecx
je 0x1001a5e3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001a5d0
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001a5e1
cmp dl, 0x29
je 0x1001a5e1
test cl, 0x10
jne 0x1001a5e3
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001a5e1
cmp cl, 0x7d
jne 0x1001a5e3
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100196e0
mov ecx, esi
call fcn.1001af20
cmp dword [esi + 0x4c], 0x5d
jne 0x1001a7a1
jmp 0x1001a378
cmp eax, 0x28
jne 0x1001a6b1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001a647
cmp byte [eax], 0x5c
jne 0x1001a645
inc eax
cmp eax, ecx
je 0x1001a645
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001a632
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001a643
cmp dl, 0x29
je 0x1001a643
test cl, 0x10
jne 0x1001a645
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001a643
cmp cl, 0x7d
jne 0x1001a645
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100196e0
mov ecx, esi
call fcn.1001b190
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1001a7af
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001a69d
cmp byte [eax], 0x5c
jne 0x1001a69b
inc eax
cmp eax, ecx
je 0x1001a69b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001a688
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001a699
cmp dl, 0x29
je 0x1001a699
test cl, 0x10
jne 0x1001a69b
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001a699
cmp cl, 0x7d
jne 0x1001a69b
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100196e0
test bl, bl
je 0x1001a3c2
jmp 0x1001a3bb
cmp eax, 0x5e
jne 0x1001a6c8
push 0x14
call fcn.10029ef9
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1001a6e1
cmp eax, 0x24
jne 0x1001a76f
push 0x14
call fcn.10029ef9
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 4], ecx
mov edx, dword [eax + 0xc]
test edx, edx
je 0x1001a721
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x1001a763
cmp byte [eax], 0x5c
jne 0x1001a761
inc eax
cmp eax, ecx
je 0x1001a761
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001a74e
mov dl, byte [eax]
cmp dl, 0x28
je 0x1001a75f
cmp dl, 0x29
je 0x1001a75f
test cl, 0x10
jne 0x1001a761
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1001a75f
cmp cl, 0x7d
jne 0x1001a761
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100196e0
jmp 0x1001a3c2
cmp eax, 0x2a
je 0x1001a79a
cmp eax, 0x2b
je 0x1001a79a
cmp eax, 0x3f
je 0x1001a79a
cmp eax, 0x7b
je 0x1001a79a
cmp eax, 0x7d
jne 0x1001a359
test dword [esi + 0x50], 0x10000000
je 0x1001a7a8
jmp 0x1001a36b
push 0xa
call fcn.100196d0
push 4
call fcn.100196d0
push 6
call fcn.100196d0
push 5
call fcn.100196d0
int3