Function at 0x408080
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x4084b4
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x4084b2
cmp eax, 0x29
jne 0x4080c0
cmp dword [esi + 0x10], 0
jne 0x4084b2
test dword [esi + 0x50], 0x10000000
je 0x4084c1
jmp 0x40844b
cmp eax, 0x2e
jne 0x408116
push 5
lea ecx, [esi + 0x24]
call fcn.0040a8a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408493
cmp byte [eax], 0x5c
jne 0x40810e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40810e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4080fb
mov dl, byte [ecx]
cmp dl, 0x28
je 0x40810c
cmp dl, 0x29
je 0x40810c
test bl, 0x10
jne 0x40810e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40810c
cmp dl, 0x7d
jne 0x40810e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x408493
cmp eax, 0x5c
jne 0x408234
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40815d
cmp byte [eax], 0x5c
jne 0x40815a
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40815a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x408147
mov dl, byte [ecx]
cmp dl, 0x28
je 0x408158
cmp dl, 0x29
je 0x408158
test bl, 0x10
jne 0x40815a
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x408158
cmp dl, 0x7d
jne 0x40815a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040adf0
test byte [esi + 0x50], 0x80
je 0x408228
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x4081c9
push 4
lea ecx, [esi + 0x24]
call fcn.0040a8a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4081bd
cmp byte [eax], 0x5c
jne 0x4081ba
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4081ba
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4081a7
mov dl, byte [ecx]
cmp dl, 0x28
je 0x4081b8
cmp dl, 0x29
je 0x4081b8
test bl, 0x10
jne 0x4081ba
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4081b8
cmp dl, 0x7d
jne 0x4081ba
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040adf0
jmp 0x4084a4
cmp al, 0x42
jne 0x408228
push 4
lea ecx, [esi + 0x24]
call fcn.0040a8a0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40821c
cmp byte [eax], 0x5c
jne 0x408219
lea ecx, [eax + 1]
cmp ecx, edx
je 0x408219
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x408206
mov al, byte [ecx]
cmp al, 0x28
je 0x408217
cmp al, 0x29
je 0x408217
mov eax, dword [esi]
test dl, 0x10
jne 0x408219
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x408217
cmp dl, 0x7d
jne 0x408219
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040adf0
jmp 0x4084a4
mov ecx, esi
call fcn.004084e0
jmp 0x40849a
cmp eax, 0x5b
jne 0x4082de
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40827b
cmp byte [eax], 0x5c
jne 0x408278
lea ecx, [eax + 1]
cmp ecx, edx
je 0x408278
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x408265
mov al, byte [ecx]
cmp al, 0x28
je 0x408276
cmp al, 0x29
je 0x408276
mov eax, dword [esi]
test dl, 0x10
jne 0x408278
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x408276
cmp dl, 0x7d
jne 0x408278
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040adf0
lea ecx, [esi + 0x24]
call fcn.00407930
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x4082a3
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0040a910
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x4082c1
cmp eax, 0x5d
jne 0x4082c1
push eax
lea ecx, [esi + 0x24]
call fcn.004078c0
mov ecx, esi
call fcn.0040a910
mov ecx, esi
call fcn.00408d90
cmp dword [esi + 0x4c], 0x5d
jne 0x4084d3
mov ecx, esi
call fcn.0040a910
jmp 0x40849a
cmp eax, 0x28
jne 0x40834f
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408321
cmp byte [eax], 0x5c
jne 0x40831e
lea ecx, [eax + 1]
cmp ecx, edx
je 0x40831e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40830b
mov al, byte [ecx]
cmp al, 0x28
je 0x40831c
cmp al, 0x29
je 0x40831c
mov eax, dword [esi]
test dl, 0x10
jne 0x40831e
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x40831c
cmp dl, 0x7d
jne 0x40831e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040adf0
mov ecx, esi
call fcn.0040aff0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4084c1
mov ecx, esi
call fcn.0040a910
test bl, bl
je 0x4084a4
jmp 0x40849a
cmp eax, 0x5e
jne 0x4083a8
push 2
lea ecx, [esi + 0x24]
call fcn.0040a8a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40839c
cmp byte [eax], 0x5c
jne 0x408399
lea ecx, [eax + 1]
cmp ecx, edx
je 0x408399
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x408386
mov al, byte [ecx]
cmp al, 0x28
je 0x408397
cmp al, 0x29
je 0x408397
mov eax, dword [esi]
test dl, 0x10
jne 0x408399
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x408397
cmp dl, 0x7d
jne 0x408399
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040adf0
jmp 0x4084a4
cmp eax, 0x24
jne 0x408401
push 3
lea ecx, [esi + 0x24]
call fcn.0040a8a0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4083f5
cmp byte [eax], 0x5c
jne 0x4083f2
lea ecx, [eax + 1]
cmp ecx, edx
je 0x4083f2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4083df
mov al, byte [ecx]
cmp al, 0x28
je 0x4083f0
cmp al, 0x29
je 0x4083f0
mov eax, dword [esi]
test dl, 0x10
jne 0x4083f2
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x4083f0
cmp dl, 0x7d
jne 0x4083f2
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0040adf0
jmp 0x4084a4
cmp eax, 0x2a
je 0x4084b8
cmp eax, 0x2b
je 0x4084b8
cmp eax, 0x3f
je 0x4084b8
cmp eax, 0x7b
je 0x4084b8
cmp eax, 0x7d
jne 0x408439
test dword [esi + 0x50], 0x10000000
je 0x4084ca
jmp 0x40844b
cmp eax, 0x5d
jne 0x40844b
test dword [esi + 0x50], 0x10000000
je 0x4084d3
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00407710
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408493
cmp byte [eax], 0x5c
jne 0x408491
inc eax
cmp eax, ecx
je 0x408491
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40847e
mov dl, byte [eax]
cmp dl, 0x28
je 0x40848f
cmp dl, 0x29
je 0x40848f
test cl, 0x10
jne 0x408491
mov cl, byte [eax]
cmp cl, 0x7b
je 0x40848f
cmp cl, 0x7d
jne 0x408491
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.0040adf0
mov ecx, esi
call fcn.0040a970
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x408096
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.00409bc0
push 5
mov ecx, esi
call fcn.00409bc0
push 6
mov ecx, esi
call fcn.00409bc0
push 4
mov ecx, esi
call fcn.00409bc0
int3