Function at 0x40a460
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40a96f
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x40a96f
nop
cmp eax, 0x29
jne 0x40a4a5
cmp dword [esi + 0x10], 0
jne 0x40a96f
test dword [esi + 0x50], 0x10000000
je 0x40a97c
nop dword [eax]
jmp 0x40a8fa
cmp eax, 0x2e
jne 0x40a505
push 5
lea ecx, [esi + 0x24]
call fcn.0040a9a0
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a950
cmp word [eax], 0x5c
jne 0x40a700
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a700
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40a4fa
movzx edx, word [ecx]
cmp edx, 0x28
je 0x40a6fe
cmp edx, 0x29
je 0x40a6fe
test bl, 0x10
jmp 0x40a6ef
cmp eax, 0x5c
jne 0x40a64a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a552
cmp word [eax], 0x5c
jne 0x40a54d
lea ecx, ds:[eax + 2]
cmp ecx, edx
je 0x40a54d
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40a539
movzx edx, word [ecx]
cmp edx, 0x28
je 0x40a54b
cmp edx, 0x29
je 0x40a54b
test bl, 0x10
jne 0x40a54d
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a54b
cmp edx, 0x7d
jne 0x40a54d
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409b00
test byte ds:[esi + 0x50], 0x80
je 0x40a63d
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x40a5cf
push 4
lea ecx, [esi + 0x24]
call fcn.0040a9a0
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a5c3
cmp word [eax], 0x5c
jne 0x40a5be
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a5be
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40a5aa
movzx edx, word ds:[ecx]
cmp edx, 0x28
je 0x40a5bc
cmp edx, 0x29
je 0x40a5bc
test bl, 0x10
jne 0x40a5be
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a5bc
cmp edx, 0x7d
jne 0x40a5be
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409b00
jmp 0x40a961
cmp ecx, 0x42
jne 0x40a63d
push 4
lea ecx, [esi + 0x24]
call fcn.0040a9a0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a631
cmp word [eax], 0x5c
jne 0x40a62c
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a62c
mov edx, dword ds:[esi + 0x50]
test dl, 8
jne 0x40a614
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a62a
cmp eax, 0x29
je 0x40a62a
mov eax, dword [esi]
test dl, 0x10
jne 0x40a62c
movzx edx, word ds:[ecx]
cmp edx, 0x7b
je 0x40a62a
cmp edx, 0x7d
jne 0x40a62c
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409b00
jmp 0x40a961
mov ecx, esi
call fcn.0040b220
jmp 0x40a957
cmp eax, 0x5b
jne 0x40a70a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a699
cmp word ds:[eax], 0x5c
jne 0x40a694
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a694
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a680
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a692
cmp eax, 0x29
je 0x40a692
mov eax, dword [esi]
test dl, 0x10
jne 0x40a694
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a692
cmp edx, 0x7d
jne 0x40a694
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409b00
mov ecx, esi
call fcn.0040b0c0
cmp dword [esi + 0x4c], 0x5d
jne 0x40a98c
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a950
cmp word [eax], 0x5c
jne 0x40a700
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a700
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a6ec
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a6fe
cmp eax, 0x29
je 0x40a6fe
mov eax, dword [esi]
test dl, 0x10
jne 0x40a700
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a6fe
cmp edx, 0x7d
jne 0x40a700
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x40a950
cmp eax, 0x28
jne 0x40a7d9
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a759
cmp word ds:[eax], 0x5c
jne 0x40a754
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a754
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a740
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a752
cmp eax, 0x29
je 0x40a752
mov eax, dword [esi]
test dl, 0x10
jne 0x40a754
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a752
cmp edx, 0x7d
jne 0x40a754
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409b00
mov ecx, esi
call fcn.0040b3a0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40a97c
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a7c5
cmp word [eax], 0x5c
jne 0x40a7c0
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a7c0
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a7ac
movzx eax, word ds:[ecx]
cmp eax, 0x28
je 0x40a7be
cmp eax, 0x29
je 0x40a7be
mov eax, dword [esi]
test dl, 0x10
jne 0x40a7c0
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a7be
cmp edx, 0x7d
jne 0x40a7c0
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409b00
test bl, bl
je 0x40a961
jmp 0x40a957
nop dword [eax]
cmp eax, 0x5e
jne 0x40a845
push 2
lea ecx, [esi + 0x24]
call fcn.0040a9a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40a837
cmp word ds:[eax], 0x5c
jne 0x40a834
add eax, 2
cmp eax, ecx
je 0x40a834
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40a81e
movzx edx, word [eax]
cmp edx, 0x28
je 0x40a832
cmp edx, 0x29
je 0x40a832
nop
test cl, 0x10
jne 0x40a834
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40a832
cmp ecx, 0x7d
jne 0x40a834
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00409b00
nop
jmp 0x40a961
cmp eax, 0x24
jne 0x40a8ad
push 3
lea ecx, [esi + 0x24]
call fcn.0040a9a0
mov eax, dword ds:[esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40a8a1
cmp word [eax], 0x5c
jne 0x40a89e
add eax, 2
cmp eax, ecx
je 0x40a89e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40a88a
movzx edx, word ds:[eax]
cmp edx, 0x28
je 0x40a89c
cmp edx, 0x29
je 0x40a89c
test cl, 0x10
jne 0x40a89e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40a89c
cmp ecx, 0x7d
jne 0x40a89e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00409b00
jmp 0x40a961
cmp eax, 0x2a
je 0x40a975
cmp eax, 0x2b
je 0x40a975
nop
cmp eax, 0x3f
je 0x40a975
cmp eax, 0x7b
je 0x40a975
cmp eax, 0x7d
jne 0x40a8e8
test dword ds:[esi + 0x50], 0x10000000
je 0x40a985
jmp 0x40a8fa
cmp eax, 0x5d
jne 0x40a8fa
test dword [esi + 0x50], 0x10000000
je 0x40a98c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040b9a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40a950
cmp word [eax], 0x5c
jne 0x40a94d
add eax, 2
cmp eax, ecx
je 0x40a94d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40a939
movzx edx, word [eax]
cmp edx, 0x28
je 0x40a94b
cmp edx, 0x29
je 0x40a94b
test cl, 0x10
jne 0x40a94d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40a94b
cmp ecx, 0x7d
jne 0x40a94d
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00409b00
mov ecx, esi
call fcn.0040b720
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40a476
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.00409ae0
push 5
call fcn.00409ae0
push 6
call fcn.00409ae0
push 4
call fcn.00409ae0
int3