Function at 0x4062c0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40678a
cmp eax, 0x7c
je 0x40678a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x406304
cmp dword [esi + 0x10], 0
jne 0x406788
test dword [esi + 0x50], 0x10000000
je 0x40679a
jmp 0x406714
cmp eax, 0x2e
jne 0x406364
push 5
lea ecx, [esi + 0x24]
call fcn.00408f10
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x406764
cmp word [eax], 0x5c
jne 0x40635a
lea edx, [eax + 2]
cmp edx, ecx
je 0x40635a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406343
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x406357
cmp edi, 0x29
je 0x406357
test bl, 0x10
jne 0x40635a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x406357
cmp edx, 0x7d
jne 0x40635a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x406764
cmp eax, 0x5c
jne 0x4064c7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4063bc
cmp word [eax], 0x5c
jne 0x4063b7
lea edx, [eax + 2]
cmp edx, ecx
je 0x4063b7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4063a0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x4063b4
cmp word [ebp - 4], 0x29
je 0x4063b4
test bl, 0x10
jne 0x4063b7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4063b4
cmp edx, 0x7d
jne 0x4063b7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409610
test byte [esi + 0x50], 0x80
je 0x4064bb
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x406439
push 4
lea ecx, [esi + 0x24]
call fcn.00408f10
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40642d
cmp word [eax], 0x5c
jne 0x406428
lea edx, [eax + 2]
cmp edx, ecx
je 0x406428
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x406411
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x406425
cmp ebx, 0x29
je 0x406425
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x406428
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x406425
cmp edx, 0x7d
jne 0x406428
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409610
jmp 0x406775
cmp ecx, 0x42
jne 0x4064bb
push 4
lea ecx, [esi + 0x24]
call fcn.00408f10
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x4064af
cmp word [eax], 0x5c
jne 0x4064aa
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x4064a8
test byte [esi + 0x50], 8
jne 0x40647d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x406494
cmp ecx, 0x29
je 0x406494
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4064a8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x406494
mov edx, ecx
cmp ebx, 0x7d
jne 0x4064a8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.00409610
jmp 0x406775
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409610
jmp 0x406775
mov ecx, esi
call fcn.004067c0
jmp 0x40676b
cmp eax, 0x5b
jne 0x4065d8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x406525
cmp word [eax], 0x5c
jne 0x40651d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x40651b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406500
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x406516
cmp ecx, 0x29
je 0x406516
mov ecx, eax
test bl, 0x10
jne 0x40651b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x406516
mov edx, ecx
cmp edi, 0x7d
jne 0x40651b
lea eax, [edx + 2]
jmp 0x40651d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.00409610
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.00405af0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x4065a4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40659a
cmp word [eax], 0x5c
jne 0x406592
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x406590
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406575
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x40658b
cmp ecx, 0x29
je 0x40658b
mov ecx, eax
test bl, 0x10
jne 0x406590
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x40658b
mov edx, ecx
cmp edi, 0x7d
jne 0x406590
lea eax, [edx + 2]
jmp 0x406592
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.00409610
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x4065c1
cmp eax, 0x5d
jne 0x4065c1
push eax
mov ecx, ebx
call fcn.00405a70
mov ecx, esi
call fcn.00408f80
mov ecx, esi
call fcn.00407240
push 4
push 0x5d
mov ecx, esi
call fcn.004083d0
jmp 0x40676b
cmp eax, 0x28
jne 0x406656
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40662e
cmp word [eax], 0x5c
jne 0x406629
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x406627
test byte [esi + 0x50], 8
jne 0x40660b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x406622
cmp ecx, 0x29
je 0x406622
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x406627
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x406622
mov edx, ecx
cmp ebx, 0x7d
jne 0x406627
lea eax, [edx + 2]
jmp 0x406629
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409610
mov ecx, esi
call fcn.00409820
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.004083d0
test bl, bl
je 0x406775
jmp 0x40676b
cmp eax, 0x5e
jne 0x40666a
push 2
lea ecx, [esi + 0x24]
call fcn.00408f10
jmp 0x40644f
cmp eax, 0x24
jne 0x4066ca
push 3
lea ecx, [esi + 0x24]
call fcn.00408f10
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4066be
cmp word [eax], 0x5c
jne 0x4066bb
add eax, 2
cmp eax, ecx
je 0x4066bb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4066a6
movzx edx, word [eax]
cmp edx, 0x28
je 0x4066b8
cmp edx, 0x29
je 0x4066b8
test cl, 0x10
jne 0x4066bb
movzx eax, word [eax]
cmp eax, 0x7b
je 0x4066b8
cmp eax, 0x7d
jne 0x4066bb
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00409610
jmp 0x406775
cmp eax, 0x2a
je 0x406791
cmp eax, 0x2b
je 0x406791
cmp eax, 0x3f
je 0x406791
cmp eax, 0x7b
je 0x406791
cmp eax, 0x7d
jne 0x406702
test dword [esi + 0x50], 0x10000000
je 0x4067a3
jmp 0x406714
cmp eax, 0x5d
jne 0x406714
test dword [esi + 0x50], 0x10000000
je 0x4067ac
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004058a0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x406764
cmp word [eax], 0x5c
jne 0x406761
add eax, 2
cmp eax, ecx
je 0x406761
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40674c
movzx edx, word [eax]
cmp edx, 0x28
je 0x40675e
cmp edx, 0x29
je 0x40675e
test cl, 0x10
jne 0x406761
movzx eax, word [eax]
cmp eax, 0x7b
je 0x40675e
cmp eax, 0x7d
jne 0x406761
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00409610
mov ecx, esi
call fcn.004090b0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x406788
cmp eax, 0x7c
jne 0x4062e3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.004083c0
push 5
mov ecx, esi
call fcn.004083c0
push 6
mov ecx, esi
call fcn.004083c0
push 4
mov ecx, esi
call fcn.004083c0
int3