Function at 0x4074ab
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
and dword [ebp - 4], 0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
jmp 0x4078c9
movzx eax, byte [esi]
push eax
call fcn.00406d33
test eax, eax
pop ecx
je 0x407500
inc esi
movzx eax, byte [esi]
push eax
call fcn.00406d33
test eax, eax
pop ecx
jne 0x4074cd
mov ecx, dword [ebp + 0xc]
call fcn.004071d3
mov ebx, eax
push ebx
call fcn.00406d33
test eax, eax
pop ecx
jne 0x4074dc
mov eax, dword [ebp + 0xc]
push ebx
call fcn.004071f6
pop ecx
jmp 0x4078c9
cmp byte [esi], 0x25
jne 0x4078b7
lea eax, [esi + 1]
cmp byte [eax], 0x25
je 0x4078b7
xor edi, edi
and dword [ebp - 8], edi
and dword [ebp + 8], edi
mov esi, eax
cmp byte [esi], 0x2a
push 4
pop ecx
jne 0x40752a
inc esi
jmp 0x407536
add dword [ebp + 0x10], ecx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax - 4]
mov dword [ebp + 8], eax
movzx eax, byte [esi]
lea edx, [eax - 0x30]
cmp edx, 0xa
jae 0x407558
lea edx, [edi + edi*4]
inc esi
lea edi, [eax + edx*2 - 0x30]
movzx eax, byte [esi]
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x407541
test edi, edi
jne 0x40755b
or edi, 0xffffffff
movzx eax, byte [esi]
inc esi
sub eax, 0x49
je 0x40769d
push 3
pop edx
sub eax, edx
je 0x407691
sub eax, 0x1c
je 0x407674
dec eax
dec eax
je 0x407668
dec eax
dec eax
je 0x407653
sub eax, 8
je 0x407647
push 6
pop ecx
sub eax, ecx
je 0x407660
dec esi
mov al, byte [esi]
cmp al, 0x5b
je 0x4075dd
cmp al, 0x63
je 0x4075dd
cmp al, 0x6e
je 0x4075ff
mov ecx, dword [ebp + 0xc]
call fcn.004071d3
mov ebx, eax
push ebx
call fcn.00406d33
test eax, eax
pop ecx
jne 0x4075af
mov eax, dword [ebp + 0xc]
push ebx
call fcn.004071f6
cmp dword [ebp - 4], 0
pop ecx
jne 0x4075dd
cmp ebx, 0xffffffff
je 0x4078e1
cmp byte [esi], 0x6e
je 0x4075ff
mov ecx, dword [ebp + 0xc]
call fcn.004071d3
mov ebx, eax
mov eax, dword [ebp + 0xc]
push ebx
call fcn.004071f6
cmp ebx, 0xffffffff
pop ecx
je 0x4078da
movzx eax, byte [esi]
inc esi
cmp eax, 0x67
jg 0x4077cf
cmp eax, 0x65
jge 0x4077bb
cmp eax, 0x5b
jg 0x407744
je 0x4076b4
cmp eax, 0x41
je 0x4077bb
cmp eax, 0x44
jle 0x4078d2
cmp eax, 0x47
jle 0x4077bb
cmp eax, 0x58
jmp 0x4077f3
mov dword [ebp - 8], 7
jmp 0x4075a1
cmp byte [esi], 0x6c
mov dword [ebp - 8], edx
jne 0x4075a1
inc esi
mov dword [ebp - 8], ecx
jmp 0x4075a1
mov dword [ebp - 8], 5
jmp 0x4075a1
cmp byte [esi], 0x68
mov dword [ebp - 8], 1
jne 0x4075a1
inc esi
mov dword [ebp - 8], 2
jmp 0x4075a1
mov dword [ebp - 8], 8
jmp 0x4075a1
cmp byte [esi], 0x36
jne 0x4075a0
cmp byte [esi + 1], 0x34
jne 0x4075a0
inc esi
inc esi
jmp 0x407660
xor edi, edi
cmp byte [esi], 0x5e
mov ebx, esi
mov dword [ebp - 8], edi
jne 0x4076c6
lea ebx, [esi + 1]
inc edi
mov esi, ebx
cmp byte [esi], 0x5d
jne 0x4076d2
jmp 0x4076d1
cmp al, 0x5d
je 0x40770b
inc esi
mov al, byte [esi]
test al, al
jne 0x4076cd
jmp 0x40770b
cmp ebx, esi
mov ecx, ebx
jae 0x4076ec
movzx edx, byte [ecx]
cmp eax, edx
je 0x4076ec
inc ecx
cmp ecx, esi
jb 0x4076e0
test edi, edi
je 0x4076f6
cmp ecx, esi
jne 0x407718
jmp 0x4076fa
cmp ecx, esi
je 0x407718
cmp dword [ebp + 8], 0
je 0x407708
mov ecx, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [ecx], al
inc dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.004071d3
cmp eax, 0xffffffff
jne 0x4076da
push eax
mov eax, dword [ebp + 0xc]
call fcn.004071f6
cmp byte [esi], 0x5d
pop ecx
jne 0x407728
inc esi
cmp dword [ebp - 8], 0
je 0x4078d2
cmp dword [ebp + 8], 0
je 0x4078c9
mov eax, dword [ebp + 8]
mov byte [eax], 0
jmp 0x407779
sub eax, 0x61
je 0x4077bb
dec eax
dec eax
je 0x40778b
dec eax
jne 0x4078d2
push dword [ebp + 8]
push dword [ebp - 8]
push edi
push 0xa
push dword [ebp + 0xc]
call fcn.004073d7
add esp, 0x14
cmp eax, 0xffffffff
je 0x4078da
test eax, eax
je 0x4078d2
cmp dword [ebp + 8], 0
je 0x4078c9
inc dword [ebp - 4]
jmp 0x4078c9
cmp edi, 0xffffffff
jne 0x4077b5
xor edi, edi
inc edi
jmp 0x4077b5
mov ecx, dword [ebp + 0xc]
dec edi
call fcn.004071d3
cmp eax, 0xffffffff
je 0x4078e6
cmp dword [ebp + 8], 0
je 0x4077b5
mov ecx, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [ecx], al
test edi, edi
jne 0x407795
jmp 0x407779
push dword [ebp + 8]
push dword [ebp - 8]
push edi
push dword [ebp + 0xc]
call fcn.00407217
add esp, 0x10
jmp 0x407768
sub eax, 0x69
je 0x407754
sub eax, 5
je 0x40785e
dec eax
je 0x407850
dec eax
je 0x407842
sub eax, 3
je 0x40782a
dec eax
dec eax
je 0x407754
sub eax, 3
jne 0x4078d2
push dword [ebp + 8]
push dword [ebp - 8]
push edi
jmp 0x407849
mov ecx, dword [ebp + 0xc]
dec edi
call fcn.004071d3
mov ebx, eax
cmp ebx, 0xffffffff
je 0x407833
push ebx
call fcn.00406d33
test eax, eax
pop ecx
jne 0x407833
cmp dword [ebp + 8], eax
je 0x40782a
mov eax, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [eax], bl
test edi, edi
jne 0x407802
jmp 0x407732
mov eax, dword [ebp + 0xc]
push ebx
call fcn.004071f6
pop ecx
jmp 0x407732
push dword [ebp + 8]
push 0
push 8
push 0x10
jmp 0x40775d
push dword [ebp + 8]
push dword [ebp - 8]
push edi
push 8
jmp 0x40775d
cmp dword [ebp + 8], 0
je 0x4078c9
mov eax, dword [ebp - 8]
dec dword [ebp - 4]
dec eax
je 0x4078a5
dec eax
je 0x407895
dec eax
dec eax
mov eax, dword [ebp + 0xc]
je 0x407884
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jmp 0x407779
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 8]
and dword [eax + 4], 0
mov dword [eax], ecx
jmp 0x407779
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 8]
mov ecx, dword [ebp + 8]
mov byte [ecx], al
jmp 0x407779
mov eax, dword [ebp + 0xc]
mov ax, word [eax + 8]
mov ecx, dword [ebp + 8]
mov word [ecx], ax
jmp 0x407779
mov ecx, dword [ebp + 0xc]
call fcn.004071d3
mov ebx, eax
movzx eax, byte [esi]
cmp eax, ebx
jne 0x4078f3
inc esi
cmp byte [esi], 0
jne 0x4074bf
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4078d5
or eax, 0xffffffff
jmp 0x4078d5
mov eax, dword [ebp + 0xc]
push 0xffffffffffffffff
call fcn.004071f6
pop ecx
jmp 0x4078da
mov eax, dword [ebp + 0xc]
push ebx
call fcn.004071f6
mov eax, dword [ebp - 4]
test eax, eax
pop ecx
jne 0x4078d5
cmp ebx, 0xffffffff
jmp 0x4078df