Function at 0x4062b0
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 0x40677a
cmp eax, 0x7c
je 0x40677a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x4062f4
cmp dword [esi + 0x10], 0
jne 0x406778
test dword [esi + 0x50], 0x10000000
je 0x40678a
jmp 0x406704
cmp eax, 0x2e
jne 0x406354
push 5
lea ecx, [esi + 0x24]
call fcn.00408f00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x406754
cmp word [eax], 0x5c
jne 0x40634a
lea edx, [eax + 2]
cmp edx, ecx
je 0x40634a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406333
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x406347
cmp edi, 0x29
je 0x406347
test bl, 0x10
jne 0x40634a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x406347
cmp edx, 0x7d
jne 0x40634a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x406754
cmp eax, 0x5c
jne 0x4064b7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4063ac
cmp word [eax], 0x5c
jne 0x4063a7
lea edx, [eax + 2]
cmp edx, ecx
je 0x4063a7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406390
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x4063a4
cmp word [ebp - 4], 0x29
je 0x4063a4
test bl, 0x10
jne 0x4063a7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4063a4
cmp edx, 0x7d
jne 0x4063a7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409600
test byte [esi + 0x50], 0x80
je 0x4064ab
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x406429
push 4
lea ecx, [esi + 0x24]
call fcn.00408f00
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40641d
cmp word [eax], 0x5c
jne 0x406418
lea edx, [eax + 2]
cmp edx, ecx
je 0x406418
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x406401
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x406415
cmp ebx, 0x29
je 0x406415
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x406418
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x406415
cmp edx, 0x7d
jne 0x406418
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409600
jmp 0x406765
cmp ecx, 0x42
jne 0x4064ab
push 4
lea ecx, [esi + 0x24]
call fcn.00408f00
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x40649f
cmp word [eax], 0x5c
jne 0x40649a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x406498
test byte [esi + 0x50], 8
jne 0x40646d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x406484
cmp ecx, 0x29
je 0x406484
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x406498
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x406484
mov edx, ecx
cmp ebx, 0x7d
jne 0x406498
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.00409600
jmp 0x406765
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409600
jmp 0x406765
mov ecx, esi
call fcn.004067b0
jmp 0x40675b
cmp eax, 0x5b
jne 0x4065c8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x406515
cmp word [eax], 0x5c
jne 0x40650d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x40650b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4064f0
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x406506
cmp ecx, 0x29
je 0x406506
mov ecx, eax
test bl, 0x10
jne 0x40650b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x406506
mov edx, ecx
cmp edi, 0x7d
jne 0x40650b
lea eax, [edx + 2]
jmp 0x40650d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.00409600
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.00405af0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x406594
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40658a
cmp word [eax], 0x5c
jne 0x406582
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x406580
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406565
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x40657b
cmp ecx, 0x29
je 0x40657b
mov ecx, eax
test bl, 0x10
jne 0x406580
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x40657b
mov edx, ecx
cmp edi, 0x7d
jne 0x406580
lea eax, [edx + 2]
jmp 0x406582
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.00409600
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x4065b1
cmp eax, 0x5d
jne 0x4065b1
push eax
mov ecx, ebx
call fcn.00405a70
mov ecx, esi
call fcn.00408f70
mov ecx, esi
call fcn.00407230
push 4
push 0x5d
mov ecx, esi
call fcn.004083c0
jmp 0x40675b
cmp eax, 0x28
jne 0x406646
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40661e
cmp word [eax], 0x5c
jne 0x406619
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x406617
test byte [esi + 0x50], 8
jne 0x4065fb
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x406612
cmp ecx, 0x29
je 0x406612
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x406617
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x406612
mov edx, ecx
cmp ebx, 0x7d
jne 0x406617
lea eax, [edx + 2]
jmp 0x406619
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409600
mov ecx, esi
call fcn.00409810
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.004083c0
test bl, bl
je 0x406765
jmp 0x40675b
cmp eax, 0x5e
jne 0x40665a
push 2
lea ecx, [esi + 0x24]
call fcn.00408f00
jmp 0x40643f
cmp eax, 0x24
jne 0x4066ba
push 3
lea ecx, [esi + 0x24]
call fcn.00408f00
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4066ae
cmp word [eax], 0x5c
jne 0x4066ab
add eax, 2
cmp eax, ecx
je 0x4066ab
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x406696
movzx edx, word [eax]
cmp edx, 0x28
je 0x4066a8
cmp edx, 0x29
je 0x4066a8
test cl, 0x10
jne 0x4066ab
movzx eax, word [eax]
cmp eax, 0x7b
je 0x4066a8
cmp eax, 0x7d
jne 0x4066ab
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00409600
jmp 0x406765
cmp eax, 0x2a
je 0x406781
cmp eax, 0x2b
je 0x406781
cmp eax, 0x3f
je 0x406781
cmp eax, 0x7b
je 0x406781
cmp eax, 0x7d
jne 0x4066f2
test dword [esi + 0x50], 0x10000000
je 0x406793
jmp 0x406704
cmp eax, 0x5d
jne 0x406704
test dword [esi + 0x50], 0x10000000
je 0x40679c
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 0x406754
cmp word [eax], 0x5c
jne 0x406751
add eax, 2
cmp eax, ecx
je 0x406751
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40673c
movzx edx, word [eax]
cmp edx, 0x28
je 0x40674e
cmp edx, 0x29
je 0x40674e
test cl, 0x10
jne 0x406751
movzx eax, word [eax]
cmp eax, 0x7b
je 0x40674e
cmp eax, 0x7d
jne 0x406751
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.00409600
mov ecx, esi
call fcn.004090a0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x406778
cmp eax, 0x7c
jne 0x4062d3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.004083b0
push 5
mov ecx, esi
call fcn.004083b0
push 6
mov ecx, esi
call fcn.004083b0
push 4
mov ecx, esi
call fcn.004083b0
int3