Function at 0x409910
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 0x409b78
cmp eax, 0x7c
je 0x409b78
cmp eax, 0x29
jne 0x409951
cmp dword [esi + 0x10], 0
jne 0x409b78
cmp eax, eax
jne 0x409951
test dword [esi + 0x50], 0x10000000
je 0x409b85
jmp 0x409b31
cmp eax, 0x2e
jne 0x409965
push 5
lea ecx, [esi + 0x24]
call fcn.00409be0
jmp 0x409a29
cmp eax, 0x5c
jne 0x409a0c
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x4099b2
cmp word [eax], 0x5c
jne 0x4099ad
lea ecx, [eax + 2]
cmp ecx, edx
je 0x4099ad
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409999
movzx edi, word [ecx]
cmp edi, 0x28
je 0x4099ab
cmp edi, 0x29
je 0x4099ab
test dl, 0x10
jne 0x4099ad
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x4099ab
cmp edx, 0x7d
jne 0x4099ad
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004084b0
test byte [esi + 0x50], 0x80
je 0x409a00
movzx eax, word [esi + 0x48]
cmp eax, 0x62
jne 0x4099de
push 4
lea ecx, [esi + 0x24]
call fcn.00409be0
mov ecx, esi
call fcn.004098c0
jmp 0x409b6a
cmp eax, 0x42
jne 0x409a00
push 4
lea ecx, [esi + 0x24]
call fcn.00409be0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.004098c0
jmp 0x409b6a
mov ecx, esi
call fcn.0040af70
jmp 0x409b63
cmp eax, 0x5b
jne 0x409a79
mov ecx, esi
call fcn.004098c0
mov ecx, esi
call fcn.0040ae80
cmp dword [esi + 0x4c], 0x5d
jne 0x409b93
mov edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x409a6d
cmp word [eax], 0x5c
jne 0x409a68
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409a68
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409a54
movzx edi, word [ecx]
cmp edi, 0x28
je 0x409a66
cmp edi, 0x29
je 0x409a66
test dl, 0x10
jne 0x409a68
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409a66
cmp edx, 0x7d
jne 0x409a68
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004084b0
jmp 0x409b63
cmp eax, 0x28
jne 0x409aed
mov ecx, esi
call fcn.004098c0
mov ecx, esi
call fcn.0040b110
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x409b85
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x409adc
cmp word [eax], 0x5c
jne 0x409ad7
lea ecx, [eax + 2]
cmp ecx, edx
je 0x409ad7
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x409ac3
movzx edi, word [ecx]
cmp edi, 0x28
je 0x409ad5
cmp edi, 0x29
je 0x409ad5
test dl, 0x10
jne 0x409ad7
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x409ad5
cmp edx, 0x7d
jne 0x409ad7
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004084b0
test bl, bl
je 0x409b6a
jmp 0x409b63
cmp eax, 0x5e
jne 0x409b05
push 2
lea ecx, [esi + 0x24]
call fcn.00409be0
mov ecx, esi
call fcn.004098c0
jmp 0x409b6a
cmp eax, 0x24
jne 0x409b1d
push 3
lea ecx, [esi + 0x24]
call fcn.00409be0
mov ecx, esi
call fcn.004098c0
jmp 0x409b6a
cmp eax, 0x2a
je 0x409b7e
cmp eax, 0x2b
je 0x409b7e
cmp eax, 0x3f
je 0x409b7e
cmp eax, 0x7b
je 0x409b7e
cmp eax, 0x7d
jne 0x409b41
test dword [esi + 0x50], 0x10000000
je 0x409b8c
jmp 0x409b4f
cmp eax, 0x5d
jne 0x409b4f
test dword [esi + 0x50], 0x10000000
je 0x409b93
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040b3d0
mov ecx, esi
call fcn.004098c0
mov ecx, esi
call fcn.0040b220
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x409923
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.004084a0
push 5
call fcn.004084a0
push 6
call fcn.004084a0
push 4
call fcn.004084a0
int3