Function at 0x406e00
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xc
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x407192
cmp eax, 0x7c
je 0x407192
cmp eax, 0x29
jne 0x406e40
cmp dword [esi + 0x10], 0
jne 0x407192
test dword [esi + 0x50], 0x10000000
je 0x4071a4
jmp 0x40709b
cmp eax, 0x2e
jne 0x406e54
push 5
lea ecx, [esi + 0x24]
call fcn.004093f0
jmp 0x4070a8
cmp eax, 0x5c
jne 0x406eb0
mov ecx, esi
call fcn.00409460
test byte [esi + 0x50], 0x80
je 0x406ea4
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x406e83
push 4
lea ecx, [esi + 0x24]
call fcn.004093f0
mov ecx, esi
call fcn.00409460
jmp 0x407184
cmp al, 0x42
jne 0x406ea4
push 4
lea ecx, [esi + 0x24]
call fcn.004093f0
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00409460
jmp 0x407184
mov ecx, esi
call fcn.004071e0
jmp 0x4070af
cmp eax, 0x5b
jne 0x406fe8
mov ecx, esi
call fcn.00409460
lea ecx, [esi + 0x24]
call fcn.00406660
cmp dword [esi + 0x4c], 0x5e
jne 0x406edc
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00409460
test dword [esi + 0x50], 0x20000000
je 0x406efc
cmp dword [esi + 0x4c], 0x5d
jne 0x406efc
push 0x5d
lea ecx, [esi + 0x24]
call fcn.004065f0
mov ecx, esi
call fcn.00409460
mov ecx, esi
call fcn.004078d0
test eax, eax
je 0x406fd9
nop dword [eax + eax]
cmp eax, 2
je 0x406fb1
mov eax, dword [esi + 0x44]
mov byte [esp + 0x10], al
test eax, eax
jne 0x406f35
test dword [esi + 0x50], 0x100000
mov byte [esp + 0x10], al
je 0x4071bf
cmp dword [esi + 0x4c], 0x2d
jne 0x406fa5
mov ecx, esi
call fcn.00409460
mov bl, byte [esi + 0x44]
mov ecx, esi
mov byte [esp + 0xc], bl
call fcn.004078d0
test eax, eax
je 0x406fc2
cmp eax, 2
je 0x4071c8
test dword [esi + 0x40], 0x800
je 0x406f8b
movzx eax, byte [esi + 0x44]
mov ecx, dword [esi + 0x3c]
push eax
call fcn.0040b8d0
push dword [esp + 0xc]
mov ecx, dword [esi + 0x3c]
movsx eax, al
mov dword [esi + 0x44], eax
call fcn.0040b8d0
mov bl, al
mov byte [esp + 0xc], bl
mov al, byte [esi + 0x44]
cmp al, bl
jb 0x4071c8
push eax
push dword [esp + 0x10]
lea ecx, [esi + 0x24]
call fcn.00406970
jmp 0x406fb1
push dword [esp + 0x10]
lea ecx, [esi + 0x24]
call fcn.004065f0
mov ecx, esi
call fcn.004078d0
test eax, eax
jne 0x406f10
jmp 0x406fd9
movzx eax, byte [esi + 0x44]
lea ecx, [esi + 0x24]
push eax
call fcn.004065f0
push 0x2d
lea ecx, [esi + 0x24]
call fcn.004065f0
cmp dword [esi + 0x4c], 0x5d
jne 0x4071ad
jmp 0x4070a8
cmp eax, 0x28
jne 0x40701b
mov ecx, esi
call fcn.00409460
mov ecx, esi
call fcn.00409d40
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4071a4
mov ecx, esi
call fcn.00409460
test bl, bl
je 0x407184
jmp 0x4070af
cmp eax, 0x5e
jne 0x407036
push 2
lea ecx, [esi + 0x24]
call fcn.004093f0
mov ecx, esi
call fcn.00409460
jmp 0x407184
cmp eax, 0x24
jne 0x407051
push 3
lea ecx, [esi + 0x24]
call fcn.004093f0
mov ecx, esi
call fcn.00409460
jmp 0x407184
cmp eax, 0x2a
je 0x40719b
cmp eax, 0x2b
je 0x40719b
cmp eax, 0x3f
je 0x40719b
cmp eax, 0x7b
je 0x40719b
cmp eax, 0x7d
jne 0x407089
test dword [esi + 0x50], 0x10000000
je 0x4071b6
jmp 0x40709b
cmp eax, 0x5d
jne 0x40709b
test dword [esi + 0x50], 0x10000000
je 0x4071ad
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00406450
mov ecx, esi
call fcn.00409460
mov eax, dword [esi + 0x4c]
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
je 0x407146
cmp eax, 0x2b
jne 0x4070ca
lea ebx, [edi + 2]
jmp 0x407146
cmp eax, 0x3f
jne 0x4070d4
lea edi, [eax - 0x3e]
jmp 0x407146
cmp eax, 0x7b
jne 0x407184
mov ecx, esi
call fcn.00409460
push 0x7fffffff
push 0xa
mov ecx, esi
call fcn.00407f80
cmp eax, 0x7fffffff
je 0x4071d1
mov eax, dword [esi + 0x4c]
mov ebx, dword [esi + 0x44]
cmp eax, 0x2c
je 0x40710c
mov edi, ebx
jmp 0x407130
mov ecx, esi
call fcn.00409460
mov eax, dword [esi + 0x4c]
cmp eax, 0x7d
je 0x407139
mov ecx, esi
call fcn.00407b60
test al, al
je 0x4071d1
mov edi, dword [esi + 0x44]
mov eax, dword [esi + 0x4c]
cmp eax, 0x7d
jne 0x4071d1
cmp edi, 0xffffffff
je 0x407146
cmp edi, ebx
jl 0x4071d1
mov eax, dword [esi + 0x28]
mov ecx, esi
or dword [eax + 8], 4
call fcn.00409460
test dword [esi + 0x50], 0x400
je 0x407171
cmp dword [esi + 0x4c], 0x3f
jne 0x407171
mov ecx, esi
mov byte [esp + 0x14], 0
call fcn.00409460
jmp 0x407176
mov byte [esp + 0x14], 1
push dword [esp + 0x14]
lea ecx, [esi + 0x24]
push edi
push ebx
call fcn.00406ae0
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x406e16
pop edi
pop esi
mov al, cl
pop ebx
add esp, 0xc
ret
push 0xa
mov ecx, esi
call fcn.00408a80
push 5
mov ecx, esi
call fcn.00408a80
push 4
mov ecx, esi
call fcn.00408a80
push 6
mov ecx, esi
call fcn.00408a80
push 2
mov ecx, esi
call fcn.00408a80
push 8
mov ecx, esi
call fcn.00408a80
push 7
mov ecx, esi
call fcn.00408a80
int3