Function at 0x450620
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 0x450b22
cmp eax, 0x7c
je 0x450b22
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x450664
cmp dword [esi + 0x10], 0
jne 0x450b22
test dword [esi + 0x50], 0x10000000
je 0x450b32
jmp 0x450ab7
cmp eax, 0x2e
jne 0x4506d4
push 5
lea ecx, [esi + 0x24]
call fcn.00450b50
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x450afe
cmp byte [eax], 0x5c
jne 0x4508e4
lea edx, [eax + 1]
cmp edx, ecx
je 0x4508e4
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4506ae
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x4506c9
cmp byte [ebp - 1], 0x29
je 0x4506c9
test bl, 0x10
jne 0x4508e4
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4506c9
cmp dl, 0x7d
jne 0x4508e4
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x450afe
cmp eax, 0x5c
jne 0x45081f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x450725
cmp byte [eax], 0x5c
jne 0x450722
lea edx, [eax + 1]
cmp edx, ecx
je 0x450722
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45070c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x45071f
cmp byte [ebp - 1], 0x29
je 0x45071f
test bl, 0x10
jne 0x450722
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x45071f
cmp dl, 0x7d
jne 0x450722
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f630
test byte [esi + 0x50], 0x80
je 0x450813
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x450799
push 4
lea ecx, [esi + 0x24]
call fcn.00450b50
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45078d
cmp byte [eax], 0x5c
jne 0x45078a
lea edx, [eax + 1]
cmp edx, ecx
je 0x45078a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450774
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x450787
cmp bl, 0x29
je 0x450787
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x45078a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x450787
cmp dl, 0x7d
jne 0x45078a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f630
jmp 0x450b0f
cmp al, 0x42
jne 0x450813
push 4
lea ecx, [esi + 0x24]
call fcn.00450b50
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x450807
cmp byte [eax], 0x5c
jne 0x450804
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x450802
test byte [esi + 0x50], 8
jne 0x4507da
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x4507f0
cmp cl, 0x29
je 0x4507f0
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x450802
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x4507f0
mov edx, ecx
cmp bl, 0x7d
jne 0x450802
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0044f630
jmp 0x450b0f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f630
jmp 0x450b0f
mov ecx, esi
call fcn.004515e0
jmp 0x450b05
cmp eax, 0x5b
jne 0x4508ec
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x450878
cmp byte [eax], 0x5c
jne 0x450872
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x450870
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x450856
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x45086b
cmp cl, 0x29
je 0x45086b
mov ecx, eax
test bl, 0x10
jne 0x450870
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x45086b
mov edx, ecx
cmp bl, 0x7d
jne 0x450870
lea eax, [edx + 1]
jmp 0x450872
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.0044f630
mov ecx, esi
call fcn.004514a0
cmp dword [esi + 0x4c], 0x5d
jne 0x450b40
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x450afe
cmp byte [eax], 0x5c
jne 0x4508e4
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x4508e2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4508c2
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x4508d7
cmp cl, 0x29
je 0x4508d7
mov ecx, eax
test bl, 0x10
jne 0x4508e2
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x4508d7
mov edx, ecx
cmp bl, 0x7d
jne 0x4508e2
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x450afe
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x450afe
cmp eax, 0x28
jne 0x4509c2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x450941
cmp byte [eax], 0x5c
jne 0x45093e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x45093c
test byte [esi + 0x50], 8
jne 0x450921
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x450937
cmp cl, 0x29
je 0x450937
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x45093c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x450937
mov edx, ecx
cmp bl, 0x7d
jne 0x45093c
lea eax, [edx + 1]
jmp 0x45093e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f630
mov ecx, esi
call fcn.00451730
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x450b32
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x4509ae
cmp byte [eax], 0x5c
jne 0x4509ab
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x4509a6
test byte [esi + 0x50], 8
jne 0x45098b
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x4509a1
cmp cl, 0x29
je 0x4509a1
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4509a6
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x4509a1
mov edx, ecx
cmp bl, 0x7d
jne 0x4509a6
lea eax, [edx + 1]
jmp 0x4509a8
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f630
test bl, bl
je 0x450b0f
jmp 0x450b05
cmp eax, 0x5e
jne 0x450a16
push 2
lea ecx, [esi + 0x24]
call fcn.00450b50
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x450a0a
cmp byte [eax], 0x5c
jne 0x450a08
inc eax
cmp eax, ecx
je 0x450a08
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4509f7
mov dl, byte [eax]
cmp dl, 0x28
je 0x450a06
cmp dl, 0x29
je 0x450a06
test cl, 0x10
jne 0x450a08
mov al, byte [eax]
cmp al, 0x7b
je 0x450a06
cmp al, 0x7d
jne 0x450a08
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0044f630
jmp 0x450b0f
cmp eax, 0x24
jne 0x450a6d
push 3
lea ecx, [esi + 0x24]
call fcn.00450b50
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x450a61
cmp byte [eax], 0x5c
jne 0x450a5f
inc eax
cmp eax, ecx
je 0x450a5f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450a4e
mov dl, byte [eax]
cmp dl, 0x28
je 0x450a5d
cmp dl, 0x29
je 0x450a5d
test cl, 0x10
jne 0x450a5f
mov al, byte [eax]
cmp al, 0x7b
je 0x450a5d
cmp al, 0x7d
jne 0x450a5f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0044f630
jmp 0x450b0f
cmp eax, 0x2a
je 0x450b2b
cmp eax, 0x2b
je 0x450b2b
cmp eax, 0x3f
je 0x450b2b
cmp eax, 0x7b
je 0x450b2b
cmp eax, 0x7d
jne 0x450aa5
test dword [esi + 0x50], 0x10000000
je 0x450b39
jmp 0x450ab7
cmp eax, 0x5d
jne 0x450ab7
test dword [esi + 0x50], 0x10000000
je 0x450b40
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00451ad0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450afe
cmp byte [eax], 0x5c
jne 0x450afc
inc eax
cmp eax, ecx
je 0x450afc
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450aeb
mov dl, byte [eax]
cmp dl, 0x28
je 0x450afa
cmp dl, 0x29
je 0x450afa
test cl, 0x10
jne 0x450afc
mov al, byte [eax]
cmp al, 0x7b
je 0x450afa
cmp al, 0x7d
jne 0x450afc
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0044f630
mov ecx, esi
call fcn.004518b0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x450b22
cmp eax, 0x7c
jne 0x450643
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0044f620
push 5
call fcn.0044f620
push 6
call fcn.0044f620
push 4
call fcn.0044f620
int3