Function at 0x401270
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
sub esp, 0x1c
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ecx, ecx
push edi
cmp edx, ecx
jne 0x40128f
mov eax, 0x80004005
call fcn.00401000
cmp esi, ecx
jne 0x40129d
mov eax, 0x80004005
call fcn.00401000
cmp edx, esi
jne 0x4012ab
mov eax, 0x80004005
call fcn.00401000
mov bl, byte [edx]
xor edi, edi
lea eax, [esi + 0x7d0]
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], 1
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], eax
test bl, bl
je 0x40154d
inc edx
mov dword [ebp + 8], edx
cmp edi, 0x7d0
jne 0x4012e9
mov dword [ebp - 4], 0
cmp bl, 0x3a
jne 0x401356
test cl, cl
jns 0x401491
cmp dword [ebp - 0xc], 0
jne 0x401423
cmp dword [ebp - 4], 0
je 0x40134b
mov ecx, esi
sub ecx, edi
mov byte [esi], 0
cmp ecx, dword [ebp - 0x1c]
jb 0x401285
cmp ecx, eax
ja 0x401285
sub eax, ecx
inc eax
call fcn.00401020
cmp edi, 4
jne 0x401348
push edi
lea eax, [esi - 4]
push eax
push 0x40f210
call 0x402e41
add esp, 0xc
test eax, eax
jne 0x401348
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 8]
lea edx, [edi + 1]
mov dword [ebp - 0xc], edx
jmp 0x401423
cmp bl, 0x25
jne 0x40140e
test cl, 4
je 0x401423
mov al, byte [edx]
test al, al
je 0x40153f
lea ebx, [eax - 0x30]
cmp bl, 9
ja 0x401383
movzx eax, al
sub ax, 0x30
jmp 0x4013a7
lea ebx, [eax - 0x41]
cmp bl, 5
ja 0x401394
movzx eax, al
sub ax, 0x37
jmp 0x4013a7
lea ebx, [eax - 0x61]
cmp bl, 5
ja 0x401536
movzx eax, al
sub ax, 0x57
movzx eax, ax
test ax, ax
js 0x401536
shl al, 4
mov bl, al
mov al, byte [edx + 1]
test al, al
je 0x40153f
add edx, 2
mov dword [ebp + 8], edx
lea edx, [eax - 0x30]
cmp dl, 9
ja 0x4013da
movzx eax, al
sub ax, 0x30
jmp 0x4013fe
lea edx, [eax - 0x41]
cmp dl, 5
ja 0x4013eb
movzx eax, al
sub ax, 0x37
jmp 0x4013fe
lea edx, [eax - 0x61]
cmp dl, 5
ja 0x401536
movzx eax, al
sub ax, 0x57
movzx eax, ax
test ax, ax
js 0x401536
add bl, al
jmp 0x401423
cmp bl, 0x3f
je 0x401418
cmp bl, 0x23
jne 0x401423
test cl, 0x20
je 0x401423
or ecx, 2
mov dword [ebp - 8], ecx
test cl, cl
jns 0x401491
test cl, 2
jne 0x401491
cmp bl, 0x5c
jne 0x401454
cmp dword [ebp - 0xc], 0
jne 0x40143f
test ecx, 0x100
je 0x401491
cmp dword [ebp - 4], 0
je 0x401491
cmp dword [ebp - 0x14], 0
je 0x401450
cmp edi, 7
jae 0x401491
mov bl, 0x2f
jmp 0x401491
cmp bl, 0x2e
jne 0x401491
test edi, edi
je 0x401491
test cl, 8
jne 0x401491
mov edx, dword [ebp - 0xc]
push edx
push ecx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp + 0xc]
push edx
lea ecx, [esi - 1]
mov edx, edi
call fcn.00401170
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
add esp, 0x14
test eax, eax
jne 0x401525
movzx edx, bl
lea eax, [edx - 0x20]
cmp eax, 0x5d
ja case.0x4014a3.33
movzx eax, byte [eax + 0x401580]
jmp dword [eax*4 + 0x401578]
lea eax, [ebx - 0x20]
cmp al, 0x5e
jbe 0x401515
test cl, 2
jne 0x401515
test cl, 0x10
je 0x4014c0
cmp bl, 0x20
jne 0x401515
test cl, 8
je 0x4014ca
cmp bl, 0x2e
je 0x401515
test cl, 0x40
jne 0x4014d4
cmp bl, 0x25
je 0x401515
cmp edi, 0x7cd
jb 0x4014e8
mov dword [ebp - 4], 0
add edi, 2
jmp 0x401521
cmp dword [ebp - 4], 0
je 0x401510
mov byte [esi], 0x25
lea ecx, [esi + 1]
cmp bl, 0x10
jae 0x4014fd
mov byte [ecx], 0x30
inc ecx
mov eax, dword [ebp - 0x18]
sub eax, ecx
call fcn.004010c0
mov ecx, dword [ebp - 8]
add esi, 3
mov dword [ebp + 0xc], esi
add edi, 2
jmp 0x401521
cmp dword [ebp - 4], 0
je 0x401521
mov byte [esi], bl
inc esi
mov dword [ebp + 0xc], esi
inc edi
mov dword [ebp - 0x10], edi
mov edx, dword [ebp + 8]
mov bl, byte [edx]
test bl, bl
je 0x40153f
mov eax, dword [ebp - 0x18]
jmp 0x4012d6
mov dword [ebp - 4], 0
jmp 0x401550
cmp dword [ebp - 4], 0
je 0x401550
cmp edi, 0x7d0
jae 0x401550
mov byte [esi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40155c
lea ecx, [edi + 1]
mov dword [eax], ecx
inc edi
cmp edi, 0x7d0
pop edi
pop esi
pop ebx
jbe 0x40156f
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret