Function at 0x4081f0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x4086d5
lea edi, [esi + 8]
nop word [eax + eax]
cmp eax, 0x7c
je 0x4086d5
cmp eax, 0x29
jne 0x40823a
cmp dword [esi + 0x10], 0
jne 0x4086d5
test dword [esi + 0x50], 0x10000000
je 0x4086e5
jmp 0x40866f
cmp eax, 0x2e
jne 0x4082a9
push 5
lea ecx, [esi + 0x24]
call fcn.00408700
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4086b6
cmp byte [eax], 0x5c
jne 0x4084ab
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x40829f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40827f
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x408294
cmp cl, 0x29
je 0x408294
mov ecx, eax
test bl, 0x10
jne 0x40829f
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x408294
mov edx, ecx
cmp bl, 0x7d
jne 0x40829f
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x4086b6
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x4086b6
cmp eax, 0x5c
jne 0x4083f8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4082fe
cmp byte [eax], 0x5c
jne 0x4082fb
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x4082f9
test byte [esi + 0x50], 8
jne 0x4082de
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x4082f4
cmp cl, 0x29
je 0x4082f4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4082f9
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x4082f4
mov edx, ecx
cmp bl, 0x7d
jne 0x4082f9
lea eax, [edx + 1]
jmp 0x4082fb
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00407540
test byte [esi + 0x50], 0x80
je 0x4083ec
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x408385
push 4
lea ecx, [esi + 0x24]
call fcn.00408700
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408379
cmp byte [eax], 0x5c
jne 0x408376
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x408374
test byte [esi + 0x50], 8
jne 0x40834c
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x408362
cmp cl, 0x29
je 0x408362
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x408374
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x408362
mov edx, ecx
cmp bl, 0x7d
jne 0x408374
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.00407540
jmp 0x4086c7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00407540
jmp 0x4086c7
cmp al, 0x42
jne 0x4083ec
push 4
lea ecx, [esi + 0x24]
call fcn.00408700
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4083e0
cmp byte [eax], 0x5c
jne 0x4083dd
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x4083dd
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4083c7
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x4083da
cmp dl, 0x29
je 0x4083da
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4083dd
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x4083da
cmp dl, 0x7d
jne 0x4083dd
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00407540
jmp 0x4086c7
mov ecx, esi
call fcn.00409080
jmp 0x4086bd
cmp eax, 0x5b
jne 0x4084b3
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408449
cmp byte [eax], 0x5c
jne 0x408446
lea edx, [eax + 1]
cmp edx, ecx
je 0x408446
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x408430
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x408443
cmp byte [ebp - 1], 0x29
je 0x408443
test bl, 0x10
jne 0x408446
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x408443
cmp dl, 0x7d
jne 0x408446
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00407540
mov ecx, esi
call fcn.00408f40
cmp dword [esi + 0x4c], 0x5d
jne 0x4086f3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4086b6
cmp byte [eax], 0x5c
jne 0x4084ab
lea edx, [eax + 1]
cmp edx, ecx
je 0x4084ab
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x408495
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x4084a8
cmp byte [ebp - 1], 0x29
je 0x4084a8
test bl, 0x10
jne 0x4084ab
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4084a8
cmp dl, 0x7d
jne 0x4084ab
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x4086b6
cmp eax, 0x28
jne 0x408577
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408502
cmp byte [eax], 0x5c
jne 0x4084ff
lea edx, [eax + 1]
cmp edx, ecx
je 0x4084ff
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4084e9
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x4084fc
cmp bl, 0x29
je 0x4084fc
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4084ff
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4084fc
cmp dl, 0x7d
jne 0x4084ff
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00407540
mov ecx, esi
call fcn.004091d0
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x4086e5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x408563
cmp byte [eax], 0x5c
jne 0x408560
lea edx, [eax + 1]
cmp edx, ecx
je 0x408560
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40854a
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x40855d
cmp bl, 0x29
je 0x40855d
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x408560
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40855d
cmp dl, 0x7d
jne 0x408560
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00407540
test bh, bh
je 0x4086c7
jmp 0x4086bd
cmp eax, 0x5e
jne 0x4085ce
push 2
lea ecx, [esi + 0x24]
call fcn.00408700
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4085c2
cmp byte [eax], 0x5c
jne 0x4085c0
inc eax
cmp eax, ecx
je 0x4085c0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4085af
mov dl, byte [eax]
cmp dl, 0x28
je 0x4085be
cmp dl, 0x29
je 0x4085be
test cl, 0x10
jne 0x4085c0
mov al, byte [eax]
cmp al, 0x7b
je 0x4085be
cmp al, 0x7d
jne 0x4085c0
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00407540
jmp 0x4086c7
cmp eax, 0x24
jne 0x408625
push 3
lea ecx, [esi + 0x24]
call fcn.00408700
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408619
cmp byte [eax], 0x5c
jne 0x408617
inc eax
cmp eax, ecx
je 0x408617
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408606
mov dl, byte [eax]
cmp dl, 0x28
je 0x408615
cmp dl, 0x29
je 0x408615
test cl, 0x10
jne 0x408617
mov al, byte [eax]
cmp al, 0x7b
je 0x408615
cmp al, 0x7d
jne 0x408617
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00407540
jmp 0x4086c7
cmp eax, 0x2a
je 0x4086de
cmp eax, 0x2b
je 0x4086de
cmp eax, 0x3f
je 0x4086de
cmp eax, 0x7b
je 0x4086de
cmp eax, 0x7d
jne 0x40865d
test dword [esi + 0x50], 0x10000000
je 0x4086ec
jmp 0x40866f
cmp eax, 0x5d
jne 0x40866f
test dword [esi + 0x50], 0x10000000
je 0x4086f3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00409670
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4086b6
cmp byte [eax], 0x5c
jne 0x4086b4
inc eax
cmp eax, ecx
je 0x4086b4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4086a3
mov dl, byte [eax]
cmp dl, 0x28
je 0x4086b2
cmp dl, 0x29
je 0x4086b2
test cl, 0x10
jne 0x4086b4
mov al, byte [eax]
cmp al, 0x7b
je 0x4086b2
cmp al, 0x7d
jne 0x4086b4
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00407540
mov ecx, esi
call fcn.00409440
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x408210
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00407530
push 5
call fcn.00407530
push 6
call fcn.00407530
push 4
call fcn.00407530
int3