Function at 0x409a00
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 0x409f0f
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x409f0f
nop
cmp eax, 0x29
jne 0x409a45
cmp dword [esi + 0x10], 0
jne 0x409f0f
test dword [esi + 0x50], 0x10000000
je 0x409f1c
nop dword [eax]
jmp 0x409e9a
cmp eax, 0x2e
jne 0x409aa5
push 5
lea ecx, [esi + 0x24]
call fcn.00409f40
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409ef0
cmp word [eax], 0x5c
jne 0x409ca0
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409ca0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409a9a
movzx edx, word [ecx]
cmp edx, 0x28
je 0x409c9e
cmp edx, 0x29
je 0x409c9e
test bl, 0x10
jmp 0x409c8f
cmp eax, 0x5c
jne 0x409bea
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409af2
cmp word [eax], 0x5c
jne 0x409aed
lea ecx, ds:[eax + 2]
cmp ecx, edx
je 0x409aed
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409ad9
movzx edx, word [ecx]
cmp edx, 0x28
je 0x409aeb
cmp edx, 0x29
je 0x409aeb
test bl, 0x10
jne 0x409aed
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409aeb
cmp edx, 0x7d
jne 0x409aed
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409020
test byte ds:[esi + 0x50], 0x80
je 0x409bdd
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x409b6f
push 4
lea ecx, [esi + 0x24]
call fcn.00409f40
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409b63
cmp word [eax], 0x5c
jne 0x409b5e
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409b5e
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409b4a
movzx edx, word ds:[ecx]
cmp edx, 0x28
je 0x409b5c
cmp edx, 0x29
je 0x409b5c
test bl, 0x10
jne 0x409b5e
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409b5c
cmp edx, 0x7d
jne 0x409b5e
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409020
jmp 0x409f01
cmp ecx, 0x42
jne 0x409bdd
push 4
lea ecx, [esi + 0x24]
call fcn.00409f40
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409bd1
cmp word [eax], 0x5c
jne 0x409bcc
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409bcc
mov edx, dword ds:[esi + 0x50]
test dl, 8
jne 0x409bb4
movzx eax, word [ecx]
cmp eax, 0x28
je 0x409bca
cmp eax, 0x29
je 0x409bca
mov eax, dword [esi]
test dl, 0x10
jne 0x409bcc
movzx edx, word ds:[ecx]
cmp edx, 0x7b
je 0x409bca
cmp edx, 0x7d
jne 0x409bcc
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409020
jmp 0x409f01
mov ecx, esi
call fcn.0040a7c0
jmp 0x409ef7
cmp eax, 0x5b
jne 0x409caa
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409c39
cmp word ds:[eax], 0x5c
jne 0x409c34
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409c34
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409c20
movzx eax, word [ecx]
cmp eax, 0x28
je 0x409c32
cmp eax, 0x29
je 0x409c32
mov eax, dword [esi]
test dl, 0x10
jne 0x409c34
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409c32
cmp edx, 0x7d
jne 0x409c34
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409020
mov ecx, esi
call fcn.0040a660
cmp dword [esi + 0x4c], 0x5d
jne 0x409f2c
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409ef0
cmp word [eax], 0x5c
jne 0x409ca0
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409ca0
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409c8c
movzx eax, word [ecx]
cmp eax, 0x28
je 0x409c9e
cmp eax, 0x29
je 0x409c9e
mov eax, dword [esi]
test dl, 0x10
jne 0x409ca0
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409c9e
cmp edx, 0x7d
jne 0x409ca0
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x409ef0
cmp eax, 0x28
jne 0x409d79
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409cf9
cmp word ds:[eax], 0x5c
jne 0x409cf4
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409cf4
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409ce0
movzx eax, word [ecx]
cmp eax, 0x28
je 0x409cf2
cmp eax, 0x29
je 0x409cf2
mov eax, dword [esi]
test dl, 0x10
jne 0x409cf4
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409cf2
cmp edx, 0x7d
jne 0x409cf4
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409020
mov ecx, esi
call fcn.0040a940
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x409f1c
mov eax, dword ds:[esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409d65
cmp word [eax], 0x5c
jne 0x409d60
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409d60
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409d4c
movzx eax, word ds:[ecx]
cmp eax, 0x28
je 0x409d5e
cmp eax, 0x29
je 0x409d5e
mov eax, dword [esi]
test dl, 0x10
jne 0x409d60
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409d5e
cmp edx, 0x7d
jne 0x409d60
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.00409020
test bl, bl
je 0x409f01
jmp 0x409ef7
nop dword [eax]
cmp eax, 0x5e
jne 0x409de5
push 2
lea ecx, [esi + 0x24]
call fcn.00409f40
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409dd7
cmp word ds:[eax], 0x5c
jne 0x409dd4
add eax, 2
cmp eax, ecx
je 0x409dd4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409dbe
movzx edx, word [eax]
cmp edx, 0x28
je 0x409dd2
cmp edx, 0x29
je 0x409dd2
nop
test cl, 0x10
jne 0x409dd4
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x409dd2
cmp ecx, 0x7d
jne 0x409dd4
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00409020
nop
jmp 0x409f01
cmp eax, 0x24
jne 0x409e4d
push 3
lea ecx, [esi + 0x24]
call fcn.00409f40
mov eax, dword ds:[esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409e41
cmp word [eax], 0x5c
jne 0x409e3e
add eax, 2
cmp eax, ecx
je 0x409e3e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409e2a
movzx edx, word ds:[eax]
cmp edx, 0x28
je 0x409e3c
cmp edx, 0x29
je 0x409e3c
test cl, 0x10
jne 0x409e3e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x409e3c
cmp ecx, 0x7d
jne 0x409e3e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00409020
jmp 0x409f01
cmp eax, 0x2a
je 0x409f15
cmp eax, 0x2b
je 0x409f15
nop
cmp eax, 0x3f
je 0x409f15
cmp eax, 0x7b
je 0x409f15
cmp eax, 0x7d
jne 0x409e88
test dword ds:[esi + 0x50], 0x10000000
je 0x409f25
jmp 0x409e9a
cmp eax, 0x5d
jne 0x409e9a
test dword [esi + 0x50], 0x10000000
je 0x409f2c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040af40
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409ef0
cmp word [eax], 0x5c
jne 0x409eed
add eax, 2
cmp eax, ecx
je 0x409eed
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409ed9
movzx edx, word [eax]
cmp edx, 0x28
je 0x409eeb
cmp edx, 0x29
je 0x409eeb
test cl, 0x10
jne 0x409eed
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x409eeb
cmp ecx, 0x7d
jne 0x409eed
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00409020
mov ecx, esi
call fcn.0040acc0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x409a16
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.00409000
push 5
call fcn.00409000
push 6
call fcn.00409000
push 4
call fcn.00409000
int3