Function at 0x40a100
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 0x40a60f
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x40a60f
nop
cmp eax, 0x29
jne 0x40a145
cmp dword [esi + 0x10], 0
jne 0x40a60f
test dword [esi + 0x50], 0x10000000
je 0x40a61c
nop dword [eax]
jmp 0x40a59a
cmp eax, 0x2e
jne 0x40a1a5
push 5
lea ecx, [esi + 0x24]
call fcn.0040a640
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a5f0
cmp word [eax], 0x5c
jne 0x40a3a0
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a3a0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40a19a
movzx edx, word [ecx]
cmp edx, 0x28
je 0x40a39e
cmp edx, 0x29
je 0x40a39e
test bl, 0x10
jmp 0x40a38f
cmp eax, 0x5c
jne 0x40a2ea
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a1f2
cmp word [eax], 0x5c
jne 0x40a1ed
lea ecx, ds:[eax + 2]
cmp ecx, edx
je 0x40a1ed
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40a1d9
movzx edx, word [ecx]
cmp edx, 0x28
je 0x40a1eb
cmp edx, 0x29
je 0x40a1eb
test bl, 0x10
jne 0x40a1ed
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a1eb
cmp edx, 0x7d
jne 0x40a1ed
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004097a0
test byte ds:[esi + 0x50], 0x80
je 0x40a2dd
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x40a26f
push 4
lea ecx, [esi + 0x24]
call fcn.0040a640
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a263
cmp word [eax], 0x5c
jne 0x40a25e
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a25e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40a24a
movzx edx, word ds:[ecx]
cmp edx, 0x28
je 0x40a25c
cmp edx, 0x29
je 0x40a25c
test bl, 0x10
jne 0x40a25e
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a25c
cmp edx, 0x7d
jne 0x40a25e
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004097a0
jmp 0x40a601
cmp ecx, 0x42
jne 0x40a2dd
push 4
lea ecx, [esi + 0x24]
call fcn.0040a640
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a2d1
cmp word [eax], 0x5c
jne 0x40a2cc
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a2cc
mov edx, dword ds:[esi + 0x50]
test dl, 8
jne 0x40a2b4
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a2ca
cmp eax, 0x29
je 0x40a2ca
mov eax, dword [esi]
test dl, 0x10
jne 0x40a2cc
movzx edx, word ds:[ecx]
cmp edx, 0x7b
je 0x40a2ca
cmp edx, 0x7d
jne 0x40a2cc
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004097a0
jmp 0x40a601
mov ecx, esi
call fcn.0040aec0
jmp 0x40a5f7
cmp eax, 0x5b
jne 0x40a3aa
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a339
cmp word ds:[eax], 0x5c
jne 0x40a334
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a334
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a320
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a332
cmp eax, 0x29
je 0x40a332
mov eax, dword [esi]
test dl, 0x10
jne 0x40a334
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a332
cmp edx, 0x7d
jne 0x40a334
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004097a0
mov ecx, esi
call fcn.0040ad60
cmp dword [esi + 0x4c], 0x5d
jne 0x40a62c
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a5f0
cmp word [eax], 0x5c
jne 0x40a3a0
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a3a0
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a38c
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a39e
cmp eax, 0x29
je 0x40a39e
mov eax, dword [esi]
test dl, 0x10
jne 0x40a3a0
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a39e
cmp edx, 0x7d
jne 0x40a3a0
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x40a5f0
cmp eax, 0x28
jne 0x40a479
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a3f9
cmp word ds:[eax], 0x5c
jne 0x40a3f4
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a3f4
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a3e0
movzx eax, word [ecx]
cmp eax, 0x28
je 0x40a3f2
cmp eax, 0x29
je 0x40a3f2
mov eax, dword [esi]
test dl, 0x10
jne 0x40a3f4
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a3f2
cmp edx, 0x7d
jne 0x40a3f4
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004097a0
mov ecx, esi
call fcn.0040b040
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x40a61c
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x40a465
cmp word [eax], 0x5c
jne 0x40a460
lea ecx, [eax + 2]
cmp ecx, edx
je 0x40a460
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40a44c
movzx eax, word ds:[ecx]
cmp eax, 0x28
je 0x40a45e
cmp eax, 0x29
je 0x40a45e
mov eax, dword [esi]
test dl, 0x10
jne 0x40a460
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x40a45e
cmp edx, 0x7d
jne 0x40a460
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004097a0
test bl, bl
je 0x40a601
jmp 0x40a5f7
nop dword [eax]
cmp eax, 0x5e
jne 0x40a4e5
push 2
lea ecx, [esi + 0x24]
call fcn.0040a640
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40a4d7
cmp word ds:[eax], 0x5c
jne 0x40a4d4
add eax, 2
cmp eax, ecx
je 0x40a4d4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40a4be
movzx edx, word [eax]
cmp edx, 0x28
je 0x40a4d2
cmp edx, 0x29
je 0x40a4d2
nop
test cl, 0x10
jne 0x40a4d4
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40a4d2
cmp ecx, 0x7d
jne 0x40a4d4
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004097a0
nop
jmp 0x40a601
cmp eax, 0x24
jne 0x40a54d
push 3
lea ecx, [esi + 0x24]
call fcn.0040a640
mov eax, dword ds:[esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40a541
cmp word [eax], 0x5c
jne 0x40a53e
add eax, 2
cmp eax, ecx
je 0x40a53e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40a52a
movzx edx, word ds:[eax]
cmp edx, 0x28
je 0x40a53c
cmp edx, 0x29
je 0x40a53c
test cl, 0x10
jne 0x40a53e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40a53c
cmp ecx, 0x7d
jne 0x40a53e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004097a0
jmp 0x40a601
cmp eax, 0x2a
je 0x40a615
cmp eax, 0x2b
je 0x40a615
nop
cmp eax, 0x3f
je 0x40a615
cmp eax, 0x7b
je 0x40a615
cmp eax, 0x7d
jne 0x40a588
test dword ds:[esi + 0x50], 0x10000000
je 0x40a625
jmp 0x40a59a
cmp eax, 0x5d
jne 0x40a59a
test dword [esi + 0x50], 0x10000000
je 0x40a62c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040b500
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x40a5f0
cmp word [eax], 0x5c
jne 0x40a5ed
add eax, 2
cmp eax, ecx
je 0x40a5ed
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40a5d9
movzx edx, word [eax]
cmp edx, 0x28
je 0x40a5eb
cmp edx, 0x29
je 0x40a5eb
test cl, 0x10
jne 0x40a5ed
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40a5eb
cmp ecx, 0x7d
jne 0x40a5ed
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004097a0
mov ecx, esi
call fcn.0040b280
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40a116
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.00409780
push 5
call fcn.00409780
push 6
call fcn.00409780
push 4
call fcn.00409780
int3