Function at 0x409850
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 0x409d52
cmp eax, 0x7c
je 0x409d52
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x409894
cmp dword [esi + 0x10], 0
jne 0x409d52
test dword [esi + 0x50], 0x10000000
je 0x409d62
jmp 0x409ce7
cmp eax, 0x2e
jne 0x409904
push 5
lea ecx, [esi + 0x24]
call fcn.00409d80
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409d2e
cmp byte [eax], 0x5c
jne 0x409b14
lea edx, [eax + 1]
cmp edx, ecx
je 0x409b14
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4098de
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x4098f9
cmp byte [ebp - 1], 0x29
je 0x4098f9
test bl, 0x10
jne 0x409b14
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4098f9
cmp dl, 0x7d
jne 0x409b14
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x409d2e
cmp eax, 0x5c
jne 0x409a4f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409955
cmp byte [eax], 0x5c
jne 0x409952
lea edx, [eax + 1]
cmp edx, ecx
je 0x409952
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x40993c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x40994f
cmp byte [ebp - 1], 0x29
je 0x40994f
test bl, 0x10
jne 0x409952
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x40994f
cmp dl, 0x7d
jne 0x409952
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408690
test byte [esi + 0x50], 0x80
je 0x409a43
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x4099c9
push 4
lea ecx, [esi + 0x24]
call fcn.00409d80
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4099bd
cmp byte [eax], 0x5c
jne 0x4099ba
lea edx, [eax + 1]
cmp edx, ecx
je 0x4099ba
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4099a4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x4099b7
cmp bl, 0x29
je 0x4099b7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4099ba
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4099b7
cmp dl, 0x7d
jne 0x4099ba
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408690
jmp 0x409d3f
cmp al, 0x42
jne 0x409a43
push 4
lea ecx, [esi + 0x24]
call fcn.00409d80
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409a37
cmp byte [eax], 0x5c
jne 0x409a34
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x409a32
test byte [esi + 0x50], 8
jne 0x409a0a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x409a20
cmp cl, 0x29
je 0x409a20
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x409a32
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x409a20
mov edx, ecx
cmp bl, 0x7d
jne 0x409a32
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.00408690
jmp 0x409d3f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408690
jmp 0x409d3f
mov ecx, esi
call fcn.0040aad0
jmp 0x409d35
cmp eax, 0x5b
jne 0x409b1c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409aa8
cmp byte [eax], 0x5c
jne 0x409aa2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x409aa0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409a86
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x409a9b
cmp cl, 0x29
je 0x409a9b
mov ecx, eax
test bl, 0x10
jne 0x409aa0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x409a9b
mov edx, ecx
cmp bl, 0x7d
jne 0x409aa0
lea eax, [edx + 1]
jmp 0x409aa2
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.00408690
mov ecx, esi
call fcn.0040a990
cmp dword [esi + 0x4c], 0x5d
jne 0x409d70
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409d2e
cmp byte [eax], 0x5c
jne 0x409b14
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x409b12
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x409af2
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x409b07
cmp cl, 0x29
je 0x409b07
mov ecx, eax
test bl, 0x10
jne 0x409b12
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x409b07
mov edx, ecx
cmp bl, 0x7d
jne 0x409b12
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x409d2e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x409d2e
cmp eax, 0x28
jne 0x409bf2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x409b71
cmp byte [eax], 0x5c
jne 0x409b6e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x409b6c
test byte [esi + 0x50], 8
jne 0x409b51
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x409b67
cmp cl, 0x29
je 0x409b67
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x409b6c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x409b67
mov edx, ecx
cmp bl, 0x7d
jne 0x409b6c
lea eax, [edx + 1]
jmp 0x409b6e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408690
mov ecx, esi
call fcn.0040ac20
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x409d62
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x409bde
cmp byte [eax], 0x5c
jne 0x409bdb
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x409bd6
test byte [esi + 0x50], 8
jne 0x409bbb
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x409bd1
cmp cl, 0x29
je 0x409bd1
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x409bd6
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x409bd1
mov edx, ecx
cmp bl, 0x7d
jne 0x409bd6
lea eax, [edx + 1]
jmp 0x409bd8
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00408690
test bl, bl
je 0x409d3f
jmp 0x409d35
cmp eax, 0x5e
jne 0x409c46
push 2
lea ecx, [esi + 0x24]
call fcn.00409d80
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409c3a
cmp byte [eax], 0x5c
jne 0x409c38
inc eax
cmp eax, ecx
je 0x409c38
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409c27
mov dl, byte [eax]
cmp dl, 0x28
je 0x409c36
cmp dl, 0x29
je 0x409c36
test cl, 0x10
jne 0x409c38
mov al, byte [eax]
cmp al, 0x7b
je 0x409c36
cmp al, 0x7d
jne 0x409c38
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00408690
jmp 0x409d3f
cmp eax, 0x24
jne 0x409c9d
push 3
lea ecx, [esi + 0x24]
call fcn.00409d80
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x409c91
cmp byte [eax], 0x5c
jne 0x409c8f
inc eax
cmp eax, ecx
je 0x409c8f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409c7e
mov dl, byte [eax]
cmp dl, 0x28
je 0x409c8d
cmp dl, 0x29
je 0x409c8d
test cl, 0x10
jne 0x409c8f
mov al, byte [eax]
cmp al, 0x7b
je 0x409c8d
cmp al, 0x7d
jne 0x409c8f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00408690
jmp 0x409d3f
cmp eax, 0x2a
je 0x409d5b
cmp eax, 0x2b
je 0x409d5b
cmp eax, 0x3f
je 0x409d5b
cmp eax, 0x7b
je 0x409d5b
cmp eax, 0x7d
jne 0x409cd5
test dword [esi + 0x50], 0x10000000
je 0x409d69
jmp 0x409ce7
cmp eax, 0x5d
jne 0x409ce7
test dword [esi + 0x50], 0x10000000
je 0x409d70
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040b190
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x409d2e
cmp byte [eax], 0x5c
jne 0x409d2c
inc eax
cmp eax, ecx
je 0x409d2c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x409d1b
mov dl, byte [eax]
cmp dl, 0x28
je 0x409d2a
cmp dl, 0x29
je 0x409d2a
test cl, 0x10
jne 0x409d2c
mov al, byte [eax]
cmp al, 0x7b
je 0x409d2a
cmp al, 0x7d
jne 0x409d2c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00408690
mov ecx, esi
call fcn.0040af70
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x409d52
cmp eax, 0x7c
jne 0x409873
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00408680
push 5
call fcn.00408680
push 6
call fcn.00408680
push 4
call fcn.00408680
int3