Function at 0x4505f0
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 0x450af2
cmp eax, 0x7c
je 0x450af2
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x450634
cmp dword [esi + 0x10], 0
jne 0x450af2
test dword [esi + 0x50], 0x10000000
je 0x450b02
jmp 0x450a87
cmp eax, 0x2e
jne 0x4506a4
push 5
lea ecx, [esi + 0x24]
call fcn.00450b20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x450ace
cmp byte [eax], 0x5c
jne 0x4508b4
lea edx, [eax + 1]
cmp edx, ecx
je 0x4508b4
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45067e
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x450699
cmp byte [ebp - 1], 0x29
je 0x450699
test bl, 0x10
jne 0x4508b4
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x450699
cmp dl, 0x7d
jne 0x4508b4
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x450ace
cmp eax, 0x5c
jne 0x4507ef
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4506f5
cmp byte [eax], 0x5c
jne 0x4506f2
lea edx, [eax + 1]
cmp edx, ecx
je 0x4506f2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4506dc
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x4506ef
cmp byte [ebp - 1], 0x29
je 0x4506ef
test bl, 0x10
jne 0x4506f2
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4506ef
cmp dl, 0x7d
jne 0x4506f2
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f600
test byte [esi + 0x50], 0x80
je 0x4507e3
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x450769
push 4
lea ecx, [esi + 0x24]
call fcn.00450b20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45075d
cmp byte [eax], 0x5c
jne 0x45075a
lea edx, [eax + 1]
cmp edx, ecx
je 0x45075a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450744
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x450757
cmp bl, 0x29
je 0x450757
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x45075a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x450757
cmp dl, 0x7d
jne 0x45075a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f600
jmp 0x450adf
cmp al, 0x42
jne 0x4507e3
push 4
lea ecx, [esi + 0x24]
call fcn.00450b20
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4507d7
cmp byte [eax], 0x5c
jne 0x4507d4
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x4507d2
test byte [esi + 0x50], 8
jne 0x4507aa
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x4507c0
cmp cl, 0x29
je 0x4507c0
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4507d2
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x4507c0
mov edx, ecx
cmp bl, 0x7d
jne 0x4507d2
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0044f600
jmp 0x450adf
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f600
jmp 0x450adf
mov ecx, esi
call fcn.004515b0
jmp 0x450ad5
cmp eax, 0x5b
jne 0x4508bc
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x450848
cmp byte [eax], 0x5c
jne 0x450842
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x450840
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x450826
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x45083b
cmp cl, 0x29
je 0x45083b
mov ecx, eax
test bl, 0x10
jne 0x450840
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x45083b
mov edx, ecx
cmp bl, 0x7d
jne 0x450840
lea eax, [edx + 1]
jmp 0x450842
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.0044f600
mov ecx, esi
call fcn.00451470
cmp dword [esi + 0x4c], 0x5d
jne 0x450b10
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x450ace
cmp byte [eax], 0x5c
jne 0x4508b4
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x4508b2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x450892
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x4508a7
cmp cl, 0x29
je 0x4508a7
mov ecx, eax
test bl, 0x10
jne 0x4508b2
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x4508a7
mov edx, ecx
cmp bl, 0x7d
jne 0x4508b2
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x450ace
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x450ace
cmp eax, 0x28
jne 0x450992
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x450911
cmp byte [eax], 0x5c
jne 0x45090e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x45090c
test byte [esi + 0x50], 8
jne 0x4508f1
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x450907
cmp cl, 0x29
je 0x450907
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x45090c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x450907
mov edx, ecx
cmp bl, 0x7d
jne 0x45090c
lea eax, [edx + 1]
jmp 0x45090e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f600
mov ecx, esi
call fcn.00451700
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x450b02
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x45097e
cmp byte [eax], 0x5c
jne 0x45097b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x450976
test byte [esi + 0x50], 8
jne 0x45095b
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x450971
cmp cl, 0x29
je 0x450971
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x450976
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x450971
mov edx, ecx
cmp bl, 0x7d
jne 0x450976
lea eax, [edx + 1]
jmp 0x450978
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0044f600
test bl, bl
je 0x450adf
jmp 0x450ad5
cmp eax, 0x5e
jne 0x4509e6
push 2
lea ecx, [esi + 0x24]
call fcn.00450b20
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4509da
cmp byte [eax], 0x5c
jne 0x4509d8
inc eax
cmp eax, ecx
je 0x4509d8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4509c7
mov dl, byte [eax]
cmp dl, 0x28
je 0x4509d6
cmp dl, 0x29
je 0x4509d6
test cl, 0x10
jne 0x4509d8
mov al, byte [eax]
cmp al, 0x7b
je 0x4509d6
cmp al, 0x7d
jne 0x4509d8
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0044f600
jmp 0x450adf
cmp eax, 0x24
jne 0x450a3d
push 3
lea ecx, [esi + 0x24]
call fcn.00450b20
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x450a31
cmp byte [eax], 0x5c
jne 0x450a2f
inc eax
cmp eax, ecx
je 0x450a2f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450a1e
mov dl, byte [eax]
cmp dl, 0x28
je 0x450a2d
cmp dl, 0x29
je 0x450a2d
test cl, 0x10
jne 0x450a2f
mov al, byte [eax]
cmp al, 0x7b
je 0x450a2d
cmp al, 0x7d
jne 0x450a2f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0044f600
jmp 0x450adf
cmp eax, 0x2a
je 0x450afb
cmp eax, 0x2b
je 0x450afb
cmp eax, 0x3f
je 0x450afb
cmp eax, 0x7b
je 0x450afb
cmp eax, 0x7d
jne 0x450a75
test dword [esi + 0x50], 0x10000000
je 0x450b09
jmp 0x450a87
cmp eax, 0x5d
jne 0x450a87
test dword [esi + 0x50], 0x10000000
je 0x450b10
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00451aa0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x450ace
cmp byte [eax], 0x5c
jne 0x450acc
inc eax
cmp eax, ecx
je 0x450acc
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x450abb
mov dl, byte [eax]
cmp dl, 0x28
je 0x450aca
cmp dl, 0x29
je 0x450aca
test cl, 0x10
jne 0x450acc
mov al, byte [eax]
cmp al, 0x7b
je 0x450aca
cmp al, 0x7d
jne 0x450acc
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0044f600
mov ecx, esi
call fcn.00451880
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x450af2
cmp eax, 0x7c
jne 0x450613
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0044f5f0
push 5
call fcn.0044f5f0
push 6
call fcn.0044f5f0
push 4
call fcn.0044f5f0
int3