Function at 0x409950
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x409e52
cmp eax, 0x7c
je 0x409e52
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x409994
cmp dword [esi + 0x10], 0
jne 0x409e52
test dword [esi + 0x50], 0x10000000
je 0x409e62
jmp 0x409de7
cmp eax, 0x2e
jne 0x409a04
push 5
lea ecx, [esi + 0x24]
call fcn.00409e80
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409e2e
cmp byte [eax], 0x5c
jne 0x409c14
lea edx, [eax + 1]
cmp edx, ecx
je 0x409c14
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4099de
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x4099f9
cmp byte [ebp - 1], 0x29
je 0x4099f9
test bl, 0x10
jne 0x409c14
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4099f9
cmp dl, 0x7d
jne 0x409c14
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x409e2e
cmp eax, 0x5c
jne 0x409b4f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409a55
cmp byte [eax], 0x5c
jne 0x409a52
lea edx, [eax + 1]
cmp edx, ecx
je 0x409a52
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409a3c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x409a4f
cmp byte [ebp - 1], 0x29
je 0x409a4f
test bl, 0x10
jne 0x409a52
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x409a4f
cmp dl, 0x7d
jne 0x409a52
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408780
test byte [esi + 0x50], 0x80
je 0x409b43
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x409ac9
push 4
lea ecx, [esi + 0x24]
call fcn.00409e80
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409abd
cmp byte [eax], 0x5c
jne 0x409aba
lea edx, [eax + 1]
cmp edx, ecx
je 0x409aba
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409aa4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x409ab7
cmp bl, 0x29
je 0x409ab7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x409aba
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x409ab7
cmp dl, 0x7d
jne 0x409aba
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408780
jmp 0x409e3f
cmp al, 0x42
jne 0x409b43
push 4
lea ecx, [esi + 0x24]
call fcn.00409e80
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409b37
cmp byte [eax], 0x5c
jne 0x409b34
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x409b32
test byte [esi + 0x50], 8
jne 0x409b0a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x409b20
cmp cl, 0x29
je 0x409b20
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x409b32
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x409b20
mov edx, ecx
cmp bl, 0x7d
jne 0x409b32
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.00408780
jmp 0x409e3f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408780
jmp 0x409e3f
mov ecx, esi
call fcn.0040ab70
jmp 0x409e35
cmp eax, 0x5b
jne 0x409c1c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409ba8
cmp byte [eax], 0x5c
jne 0x409ba2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x409ba0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409b86
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x409b9b
cmp cl, 0x29
je 0x409b9b
mov ecx, eax
test bl, 0x10
jne 0x409ba0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x409b9b
mov edx, ecx
cmp bl, 0x7d
jne 0x409ba0
lea eax, [edx + 1]
jmp 0x409ba2
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.00408780
mov ecx, esi
call fcn.0040aa30
cmp dword [esi + 0x4c], 0x5d
jne 0x409e70
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409e2e
cmp byte [eax], 0x5c
jne 0x409c14
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x409c12
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409bf2
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x409c07
cmp cl, 0x29
je 0x409c07
mov ecx, eax
test bl, 0x10
jne 0x409c12
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x409c07
mov edx, ecx
cmp bl, 0x7d
jne 0x409c12
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x409e2e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x409e2e
cmp eax, 0x28
jne 0x409cf2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409c71
cmp byte [eax], 0x5c
jne 0x409c6e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x409c6c
test byte [esi + 0x50], 8
jne 0x409c51
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x409c67
cmp cl, 0x29
je 0x409c67
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x409c6c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x409c67
mov edx, ecx
cmp bl, 0x7d
jne 0x409c6c
lea eax, [edx + 1]
jmp 0x409c6e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408780
mov ecx, esi
call fcn.0040acc0
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x409e62
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x409cde
cmp byte [eax], 0x5c
jne 0x409cdb
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x409cd6
test byte [esi + 0x50], 8
jne 0x409cbb
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x409cd1
cmp cl, 0x29
je 0x409cd1
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x409cd6
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x409cd1
mov edx, ecx
cmp bl, 0x7d
jne 0x409cd6
lea eax, [edx + 1]
jmp 0x409cd8
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408780
test bl, bl
je 0x409e3f
jmp 0x409e35
cmp eax, 0x5e
jne 0x409d46
push 2
lea ecx, [esi + 0x24]
call fcn.00409e80
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409d3a
cmp byte [eax], 0x5c
jne 0x409d38
inc eax
cmp eax, ecx
je 0x409d38
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409d27
mov dl, byte [eax]
cmp dl, 0x28
je 0x409d36
cmp dl, 0x29
je 0x409d36
test cl, 0x10
jne 0x409d38
mov al, byte [eax]
cmp al, 0x7b
je 0x409d36
cmp al, 0x7d
jne 0x409d38
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00408780
jmp 0x409e3f
cmp eax, 0x24
jne 0x409d9d
push 3
lea ecx, [esi + 0x24]
call fcn.00409e80
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409d91
cmp byte [eax], 0x5c
jne 0x409d8f
inc eax
cmp eax, ecx
je 0x409d8f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409d7e
mov dl, byte [eax]
cmp dl, 0x28
je 0x409d8d
cmp dl, 0x29
je 0x409d8d
test cl, 0x10
jne 0x409d8f
mov al, byte [eax]
cmp al, 0x7b
je 0x409d8d
cmp al, 0x7d
jne 0x409d8f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00408780
jmp 0x409e3f
cmp eax, 0x2a
je 0x409e5b
cmp eax, 0x2b
je 0x409e5b
cmp eax, 0x3f
je 0x409e5b
cmp eax, 0x7b
je 0x409e5b
cmp eax, 0x7d
jne 0x409dd5
test dword [esi + 0x50], 0x10000000
je 0x409e69
jmp 0x409de7
cmp eax, 0x5d
jne 0x409de7
test dword [esi + 0x50], 0x10000000
je 0x409e70
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040b230
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x409e2e
cmp byte [eax], 0x5c
jne 0x409e2c
inc eax
cmp eax, ecx
je 0x409e2c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409e1b
mov dl, byte [eax]
cmp dl, 0x28
je 0x409e2a
cmp dl, 0x29
je 0x409e2a
test cl, 0x10
jne 0x409e2c
mov al, byte [eax]
cmp al, 0x7b
je 0x409e2a
cmp al, 0x7d
jne 0x409e2c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00408780
mov ecx, esi
call fcn.0040b010
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x409e52
cmp eax, 0x7c
jne 0x409973
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00408770
push 5
call fcn.00408770
push 6
call fcn.00408770
push 4
call fcn.00408770
int3