Function at 0x45e4a0
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 0x45e9a2
cmp eax, 0x7c
je 0x45e9a2
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x45e4e4
cmp dword [esi + 0x10], 0
jne 0x45e9a2
test dword [esi + 0x50], 0x10000000
je 0x45e9b2
jmp 0x45e937
cmp eax, 0x2e
jne 0x45e554
push 5
lea ecx, [esi + 0x24]
call fcn.0045e9d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45e97e
cmp byte [eax], 0x5c
jne 0x45e764
lea edx, [eax + 1]
cmp edx, ecx
je 0x45e764
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45e52e
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x45e549
cmp byte [ebp - 1], 0x29
je 0x45e549
test bl, 0x10
jne 0x45e764
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x45e549
cmp dl, 0x7d
jne 0x45e764
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x45e97e
cmp eax, 0x5c
jne 0x45e69f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45e5a5
cmp byte [eax], 0x5c
jne 0x45e5a2
lea edx, [eax + 1]
cmp edx, ecx
je 0x45e5a2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45e58c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x45e59f
cmp byte [ebp - 1], 0x29
je 0x45e59f
test bl, 0x10
jne 0x45e5a2
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x45e59f
cmp dl, 0x7d
jne 0x45e5a2
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0045d0d0
test byte [esi + 0x50], 0x80
je 0x45e693
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x45e619
push 4
lea ecx, [esi + 0x24]
call fcn.0045e9d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45e60d
cmp byte [eax], 0x5c
jne 0x45e60a
lea edx, [eax + 1]
cmp edx, ecx
je 0x45e60a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45e5f4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x45e607
cmp bl, 0x29
je 0x45e607
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x45e60a
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x45e607
cmp dl, 0x7d
jne 0x45e60a
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0045d0d0
jmp 0x45e98f
cmp al, 0x42
jne 0x45e693
push 4
lea ecx, [esi + 0x24]
call fcn.0045e9d0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45e687
cmp byte [eax], 0x5c
jne 0x45e684
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x45e682
test byte [esi + 0x50], 8
jne 0x45e65a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x45e670
cmp cl, 0x29
je 0x45e670
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x45e682
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x45e670
mov edx, ecx
cmp bl, 0x7d
jne 0x45e682
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0045d0d0
jmp 0x45e98f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0045d0d0
jmp 0x45e98f
mov ecx, esi
call fcn.0045f5d0
jmp 0x45e985
cmp eax, 0x5b
jne 0x45e76c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45e6f8
cmp byte [eax], 0x5c
jne 0x45e6f2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x45e6f0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45e6d6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x45e6eb
cmp cl, 0x29
je 0x45e6eb
mov ecx, eax
test bl, 0x10
jne 0x45e6f0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x45e6eb
mov edx, ecx
cmp bl, 0x7d
jne 0x45e6f0
lea eax, [edx + 1]
jmp 0x45e6f2
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.0045d0d0
mov ecx, esi
call fcn.0045f490
cmp dword [esi + 0x4c], 0x5d
jne 0x45e9c0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45e97e
cmp byte [eax], 0x5c
jne 0x45e764
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x45e762
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x45e742
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x45e757
cmp cl, 0x29
je 0x45e757
mov ecx, eax
test bl, 0x10
jne 0x45e762
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x45e757
mov edx, ecx
cmp bl, 0x7d
jne 0x45e762
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x45e97e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x45e97e
cmp eax, 0x28
jne 0x45e842
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x45e7c1
cmp byte [eax], 0x5c
jne 0x45e7be
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x45e7bc
test byte [esi + 0x50], 8
jne 0x45e7a1
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x45e7b7
cmp cl, 0x29
je 0x45e7b7
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x45e7bc
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x45e7b7
mov edx, ecx
cmp bl, 0x7d
jne 0x45e7bc
lea eax, [edx + 1]
jmp 0x45e7be
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0045d0d0
mov ecx, esi
call fcn.0045f720
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x45e9b2
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x45e82e
cmp byte [eax], 0x5c
jne 0x45e82b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x45e826
test byte [esi + 0x50], 8
jne 0x45e80b
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x45e821
cmp cl, 0x29
je 0x45e821
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x45e826
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x45e821
mov edx, ecx
cmp bl, 0x7d
jne 0x45e826
lea eax, [edx + 1]
jmp 0x45e828
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0045d0d0
test bl, bl
je 0x45e98f
jmp 0x45e985
cmp eax, 0x5e
jne 0x45e896
push 2
lea ecx, [esi + 0x24]
call fcn.0045e9d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45e88a
cmp byte [eax], 0x5c
jne 0x45e888
inc eax
cmp eax, ecx
je 0x45e888
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45e877
mov dl, byte [eax]
cmp dl, 0x28
je 0x45e886
cmp dl, 0x29
je 0x45e886
test cl, 0x10
jne 0x45e888
mov al, byte [eax]
cmp al, 0x7b
je 0x45e886
cmp al, 0x7d
jne 0x45e888
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0045d0d0
jmp 0x45e98f
cmp eax, 0x24
jne 0x45e8ed
push 3
lea ecx, [esi + 0x24]
call fcn.0045e9d0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x45e8e1
cmp byte [eax], 0x5c
jne 0x45e8df
inc eax
cmp eax, ecx
je 0x45e8df
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45e8ce
mov dl, byte [eax]
cmp dl, 0x28
je 0x45e8dd
cmp dl, 0x29
je 0x45e8dd
test cl, 0x10
jne 0x45e8df
mov al, byte [eax]
cmp al, 0x7b
je 0x45e8dd
cmp al, 0x7d
jne 0x45e8df
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0045d0d0
jmp 0x45e98f
cmp eax, 0x2a
je 0x45e9ab
cmp eax, 0x2b
je 0x45e9ab
cmp eax, 0x3f
je 0x45e9ab
cmp eax, 0x7b
je 0x45e9ab
cmp eax, 0x7d
jne 0x45e925
test dword [esi + 0x50], 0x10000000
je 0x45e9b9
jmp 0x45e937
cmp eax, 0x5d
jne 0x45e937
test dword [esi + 0x50], 0x10000000
je 0x45e9c0
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0045fac0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x45e97e
cmp byte [eax], 0x5c
jne 0x45e97c
inc eax
cmp eax, ecx
je 0x45e97c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x45e96b
mov dl, byte [eax]
cmp dl, 0x28
je 0x45e97a
cmp dl, 0x29
je 0x45e97a
test cl, 0x10
jne 0x45e97c
mov al, byte [eax]
cmp al, 0x7b
je 0x45e97a
cmp al, 0x7d
jne 0x45e97c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0045d0d0
mov ecx, esi
call fcn.0045f8a0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x45e9a2
cmp eax, 0x7c
jne 0x45e4c3
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0045d0c0
push 5
call fcn.0045d0c0
push 6
call fcn.0045d0c0
push 4
call fcn.0045d0c0
int3