Function at 0x40b5c0
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 0x40b84b
cmp eax, 0x7c
je 0x40b84b
cmp eax, 0x29
jne 0x40b605
cmp dword [esi + 0x10], 0
jne 0x40b84b
cmp eax, eax
jne 0x40b605
test dword [esi + 0x50], 0x10000000
je 0x40b85b
jmp 0x40b804
cmp eax, 0x2e
jne 0x40b619
push 5
lea ecx, [esi + 0x24]
call fcn.0040b8c0
jmp 0x40b741
cmp eax, 0x5c
jne 0x40b699
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x40b63f
mov ebx, edi
cmp word [edi], ax
jne 0x40b63a
mov ecx, esi
call fcn.0040b550
test al, al
je 0x40b63a
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.0040a390
test byte [esi + 0x50], 0x80
je 0x40b68d
movzx eax, word [esi + 0x48]
cmp eax, 0x62
jne 0x40b66b
push 4
lea ecx, [esi + 0x24]
call fcn.0040b8c0
mov ecx, esi
call fcn.0040b590
jmp 0x40b83d
cmp eax, 0x42
jne 0x40b68d
push 4
lea ecx, [esi + 0x24]
call fcn.0040b8c0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.0040b590
jmp 0x40b83d
mov ecx, esi
call fcn.0040c980
jmp 0x40b836
cmp eax, 0x5b
jne 0x40b76f
mov ecx, esi
call fcn.0040b590
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.0040e1a0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x40b6f1
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x40b6e7
cmp word [edi], 0x5c
mov ebx, edi
jne 0x40b6df
mov ecx, esi
call fcn.0040b550
test al, al
je 0x40b6df
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
lea ebx, [esi + 0x24]
mov ecx, esi
call fcn.0040a390
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x40b730
cmp eax, 0x5d
jne 0x40b730
push eax
mov ecx, ebx
call fcn.0040e240
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x40b729
cmp word [edi], 0x5c
mov ebx, edi
jne 0x40b724
mov ecx, esi
call fcn.0040b550
test al, al
je 0x40b724
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.0040a390
mov ecx, esi
call fcn.0040dd10
cmp dword [esi + 0x4c], 0x5d
jne 0x40b869
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x40b763
cmp word [edi], 0x5c
mov ebx, edi
jne 0x40b75e
mov ecx, esi
call fcn.0040b550
test al, al
je 0x40b75e
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.0040a390
jmp 0x40b836
cmp eax, 0x28
jne 0x40b7c0
mov ecx, esi
call fcn.0040b590
mov ecx, esi
call fcn.0040cad0
cmp dword [esi + 0x4c], 0x29
mov byte [ebp - 1], al
jne 0x40b85b
mov edi, dword [esi]
cmp edi, dword [esi + 8]
je 0x40b7b1
cmp word [edi], 0x5c
mov ebx, edi
jne 0x40b7ac
mov ecx, esi
call fcn.0040b550
test al, al
je 0x40b7ac
lea ebx, [edi + 2]
lea eax, [ebx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.0040a390
cmp byte [ebp - 1], 0
je 0x40b83d
jmp 0x40b836
cmp eax, 0x5e
jne 0x40b7d8
push 2
lea ecx, [esi + 0x24]
call fcn.0040b8c0
mov ecx, esi
call fcn.0040b590
jmp 0x40b83d
cmp eax, 0x24
jne 0x40b7f0
push 3
lea ecx, [esi + 0x24]
call fcn.0040b8c0
mov ecx, esi
call fcn.0040b590
jmp 0x40b83d
cmp eax, 0x2a
je 0x40b854
cmp eax, 0x2b
je 0x40b854
cmp eax, 0x3f
je 0x40b854
cmp eax, 0x7b
je 0x40b854
cmp eax, 0x7d
jne 0x40b814
test dword [esi + 0x50], 0x10000000
je 0x40b862
jmp 0x40b822
cmp eax, 0x5d
jne 0x40b822
test dword [esi + 0x50], 0x10000000
je 0x40b869
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040cd90
mov ecx, esi
call fcn.0040b590
mov ecx, esi
call fcn.0040cc40
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40b5d7
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0040a380
push 5
call fcn.0040a380
push 6
call fcn.0040a380
push 4
call fcn.0040a380
int3