Function at 0x406d30
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x407084
cmp eax, 0x7c
je 0x407084
cmp eax, 0x29
jne 0x406d6d
cmp dword [esi + 0x10], 0
jne 0x407084
test dword [esi + 0x50], 0x10000000
je 0x407091
jmp 0x40701a
cmp eax, 0x2e
jne 0x406d81
push 5
lea ecx, [esi + 0x24]
call fcn.004070b0
jmp 0x407027
cmp eax, 0x5c
jne 0x406e53
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x406dcb
cmp byte [eax], 0x5c
jne 0x406dc8
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x406dc6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x406db5
mov bl, byte [ecx]
cmp bl, 0x28
je 0x406dc8
cmp bl, 0x29
je 0x406dc8
test dl, 0x10
jne 0x406dc6
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x406dc8
cmp cl, 0x7d
je 0x406dc8
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00405fc0
test byte [esi + 0x50], 0x80
je 0x406e47
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x406e30
push 4
lea ecx, [esi + 0x24]
call fcn.004070b0
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x406fc8
cmp byte [eax], 0x5c
jne 0x406fc5
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x406fc3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x406e28
mov dl, byte [ecx]
cmp dl, 0x28
je 0x406fc5
cmp dl, 0x29
je 0x406fc5
test bl, 0x10
jmp 0x406fb5
cmp al, 0x42
jne 0x406e47
push 4
lea ecx, [esi + 0x24]
call fcn.004070b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
jmp 0x406de9
mov ecx, esi
call fcn.00407250
jmp 0x40706f
cmp eax, 0x5b
jne 0x406eb6
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x406e99
cmp byte [eax], 0x5c
jne 0x406e96
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x406e94
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x406e83
mov bl, byte [ecx]
cmp bl, 0x28
je 0x406e96
cmp bl, 0x29
je 0x406e96
test dl, 0x10
jne 0x406e94
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x406e96
cmp cl, 0x7d
je 0x406e96
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00405fc0
mov ecx, esi
call fcn.00407130
cmp dword [esi + 0x4c], 0x5d
jne 0x407098
jmp 0x407027
cmp eax, 0x28
jne 0x406f6f
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x406f00
cmp byte [eax], 0x5c
jne 0x406efd
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x406efb
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x406eea
mov bl, byte [ecx]
cmp bl, 0x28
je 0x406efd
cmp bl, 0x29
je 0x406efd
test dl, 0x10
jne 0x406efb
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x406efd
cmp cl, 0x7d
je 0x406efd
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00405fc0
mov ecx, esi
call fcn.004073a0
cmp dword [esi + 0x4c], 0x29
mov bh, al
jne 0x407091
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x406f5b
cmp byte [eax], 0x5c
jne 0x406f58
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x406f56
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x406f45
mov bl, byte [ecx]
cmp bl, 0x28
je 0x406f58
cmp bl, 0x29
je 0x406f58
test dl, 0x10
jne 0x406f56
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x406f58
cmp cl, 0x7d
je 0x406f58
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00405fc0
test bh, bh
je 0x407076
jmp 0x40706f
cmp eax, 0x5e
jne 0x406f78
push 2
jmp 0x406f7f
cmp eax, 0x24
jne 0x406fd4
push 3
lea ecx, [esi + 0x24]
call fcn.004070b0
mov edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x406fc8
cmp byte [eax], 0x5c
jne 0x406fc5
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x406fc3
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x406fb2
mov bl, byte [ecx]
cmp bl, 0x28
je 0x406fc5
cmp bl, 0x29
je 0x406fc5
test dl, 0x10
jne 0x406fc3
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x406fc5
cmp cl, 0x7d
je 0x406fc5
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00405fc0
jmp 0x407076
cmp eax, 0x2a
je 0x40708a
cmp eax, 0x2b
je 0x40708a
cmp eax, 0x3f
je 0x40708a
cmp eax, 0x7b
je 0x40708a
cmp eax, 0x7d
jne 0x40700c
test dword [esi + 0x50], 0x10000000
je 0x40709f
jmp 0x40701a
cmp eax, 0x5d
jne 0x40701a
test dword [esi + 0x50], 0x10000000
je 0x407098
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00407780
mov edx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, edx
je 0x407068
cmp byte [eax], 0x5c
jne 0x407065
lea ecx, [eax + 1]
mov eax, ecx
cmp ecx, edx
je 0x407063
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x407052
mov bl, byte [ecx]
cmp bl, 0x28
je 0x407065
cmp bl, 0x29
je 0x407065
test dl, 0x10
jne 0x407063
mov cl, byte [ecx]
cmp cl, 0x7b
je 0x407065
cmp cl, 0x7d
je 0x407065
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00405fc0
mov ecx, esi
call fcn.00407550
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x406d43
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 0xa
call fcn.00405fa0
push 5
call fcn.00405fa0
push 4
call fcn.00405fa0
push 6
call fcn.00405fa0
int3