Function at 0x405d40
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 0x405fa8
cmp eax, 0x7c
je 0x405fa8
cmp eax, 0x29
jne 0x405d81
cmp dword [esi + 0x10], 0
jne 0x405fa8
cmp eax, eax
jne 0x405d81
test dword [esi + 0x50], 0x10000000
je 0x405fb5
jmp 0x405f61
cmp eax, 0x2e
jne 0x405d95
push 5
lea ecx, [esi + 0x24]
call fcn.00406010
jmp 0x405e59
cmp eax, 0x5c
jne 0x405e3c
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x405de2
cmp word [eax], 0x5c
jne 0x405ddd
lea ecx, [eax + 2]
cmp ecx, edx
je 0x405ddd
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x405dc9
movzx edi, word [ecx]
cmp edi, 0x28
je 0x405ddb
cmp edi, 0x29
je 0x405ddb
test dl, 0x10
jne 0x405ddd
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x405ddb
cmp edx, 0x7d
jne 0x405ddd
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004054f0
test byte [esi + 0x50], 0x80
je 0x405e30
movzx eax, word [esi + 0x48]
cmp eax, 0x62
jne 0x405e0e
push 4
lea ecx, [esi + 0x24]
call fcn.00406010
mov ecx, esi
call fcn.00405cf0
jmp 0x405f9a
cmp eax, 0x42
jne 0x405e30
push 4
lea ecx, [esi + 0x24]
call fcn.00406010
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00405cf0
jmp 0x405f9a
mov ecx, esi
call fcn.00406650
jmp 0x405f93
cmp eax, 0x5b
jne 0x405ea9
mov ecx, esi
call fcn.00405cf0
mov ecx, esi
call fcn.00406560
cmp dword [esi + 0x4c], 0x5d
jne 0x405fc3
mov edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x405e9d
cmp word [eax], 0x5c
jne 0x405e98
lea ecx, [eax + 2]
cmp ecx, edx
je 0x405e98
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x405e84
movzx edi, word [ecx]
cmp edi, 0x28
je 0x405e96
cmp edi, 0x29
je 0x405e96
test dl, 0x10
jne 0x405e98
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x405e96
cmp edx, 0x7d
jne 0x405e98
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004054f0
jmp 0x405f93
cmp eax, 0x28
jne 0x405f1d
mov ecx, esi
call fcn.00405cf0
mov ecx, esi
call fcn.004067f0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x405fb5
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x405f0c
cmp word [eax], 0x5c
jne 0x405f07
lea ecx, [eax + 2]
cmp ecx, edx
je 0x405f07
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x405ef3
movzx edi, word [ecx]
cmp edi, 0x28
je 0x405f05
cmp edi, 0x29
je 0x405f05
test dl, 0x10
jne 0x405f07
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x405f05
cmp edx, 0x7d
jne 0x405f07
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004054f0
test bl, bl
je 0x405f9a
jmp 0x405f93
cmp eax, 0x5e
jne 0x405f35
push 2
lea ecx, [esi + 0x24]
call fcn.00406010
mov ecx, esi
call fcn.00405cf0
jmp 0x405f9a
cmp eax, 0x24
jne 0x405f4d
push 3
lea ecx, [esi + 0x24]
call fcn.00406010
mov ecx, esi
call fcn.00405cf0
jmp 0x405f9a
cmp eax, 0x2a
je 0x405fae
cmp eax, 0x2b
je 0x405fae
cmp eax, 0x3f
je 0x405fae
cmp eax, 0x7b
je 0x405fae
cmp eax, 0x7d
jne 0x405f71
test dword [esi + 0x50], 0x10000000
je 0x405fbc
jmp 0x405f7f
cmp eax, 0x5d
jne 0x405f7f
test dword [esi + 0x50], 0x10000000
je 0x405fc3
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00406ab0
mov ecx, esi
call fcn.00405cf0
mov ecx, esi
call fcn.00406900
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x405d53
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.004054e0
push 5
call fcn.004054e0
push 6
call fcn.004054e0
push 4
call fcn.004054e0
int3