Function at 0x1004a460
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 0x1004a962
cmp eax, 0x7c
je 0x1004a962
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x1004a4a4
cmp dword [esi + 0x10], 0
jne 0x1004a962
test dword [esi + 0x50], 0x10000000
je 0x1004a972
jmp 0x1004a8f7
cmp eax, 0x2e
jne 0x1004a514
push 5
lea ecx, [esi + 0x24]
call fcn.1004a990
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004a93e
cmp byte [eax], 0x5c
jne 0x1004a724
lea edx, [eax + 1]
cmp edx, ecx
je 0x1004a724
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004a4ee
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1004a509
cmp byte [ebp - 1], 0x29
je 0x1004a509
test bl, 0x10
jne 0x1004a724
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004a509
cmp dl, 0x7d
jne 0x1004a724
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x1004a93e
cmp eax, 0x5c
jne 0x1004a65f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004a565
cmp byte [eax], 0x5c
jne 0x1004a562
lea edx, [eax + 1]
cmp edx, ecx
je 0x1004a562
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004a54c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1004a55f
cmp byte [ebp - 1], 0x29
je 0x1004a55f
test bl, 0x10
jne 0x1004a562
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004a55f
cmp dl, 0x7d
jne 0x1004a562
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10049730
test byte [esi + 0x50], 0x80
je 0x1004a653
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1004a5d9
push 4
lea ecx, [esi + 0x24]
call fcn.1004a990
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004a5cd
cmp byte [eax], 0x5c
jne 0x1004a5ca
lea edx, [eax + 1]
cmp edx, ecx
je 0x1004a5ca
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004a5b4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1004a5c7
cmp bl, 0x29
je 0x1004a5c7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1004a5ca
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1004a5c7
cmp dl, 0x7d
jne 0x1004a5ca
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10049730
jmp 0x1004a94f
cmp al, 0x42
jne 0x1004a653
push 4
lea ecx, [esi + 0x24]
call fcn.1004a990
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1004a647
cmp byte [eax], 0x5c
jne 0x1004a644
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1004a642
test byte [esi + 0x50], 8
jne 0x1004a61a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1004a630
cmp cl, 0x29
je 0x1004a630
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1004a642
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1004a630
mov edx, ecx
cmp bl, 0x7d
jne 0x1004a642
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10049730
jmp 0x1004a94f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10049730
jmp 0x1004a94f
mov ecx, esi
call fcn.1004b4a0
jmp 0x1004a945
cmp eax, 0x5b
jne 0x1004a72c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1004a6b8
cmp byte [eax], 0x5c
jne 0x1004a6b2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004a6b0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004a696
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004a6ab
cmp cl, 0x29
je 0x1004a6ab
mov ecx, eax
test bl, 0x10
jne 0x1004a6b0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004a6ab
mov edx, ecx
cmp bl, 0x7d
jne 0x1004a6b0
lea eax, [edx + 1]
jmp 0x1004a6b2
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.10049730
mov ecx, esi
call fcn.1004b360
cmp dword [esi + 0x4c], 0x5d
jne 0x1004a980
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1004a93e
cmp byte [eax], 0x5c
jne 0x1004a724
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004a722
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004a702
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004a717
cmp cl, 0x29
je 0x1004a717
mov ecx, eax
test bl, 0x10
jne 0x1004a722
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004a717
mov edx, ecx
cmp bl, 0x7d
jne 0x1004a722
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1004a93e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1004a93e
cmp eax, 0x28
jne 0x1004a802
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1004a781
cmp byte [eax], 0x5c
jne 0x1004a77e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1004a77c
test byte [esi + 0x50], 8
jne 0x1004a761
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1004a777
cmp cl, 0x29
je 0x1004a777
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1004a77c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1004a777
mov edx, ecx
cmp bl, 0x7d
jne 0x1004a77c
lea eax, [edx + 1]
jmp 0x1004a77e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10049730
mov ecx, esi
call fcn.1004b5f0
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x1004a972
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1004a7ee
cmp byte [eax], 0x5c
jne 0x1004a7eb
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1004a7e6
test byte [esi + 0x50], 8
jne 0x1004a7cb
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1004a7e1
cmp cl, 0x29
je 0x1004a7e1
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1004a7e6
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1004a7e1
mov edx, ecx
cmp bl, 0x7d
jne 0x1004a7e6
lea eax, [edx + 1]
jmp 0x1004a7e8
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10049730
test bl, bl
je 0x1004a94f
jmp 0x1004a945
cmp eax, 0x5e
jne 0x1004a856
push 2
lea ecx, [esi + 0x24]
call fcn.1004a990
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004a84a
cmp byte [eax], 0x5c
jne 0x1004a848
inc eax
cmp eax, ecx
je 0x1004a848
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004a837
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004a846
cmp dl, 0x29
je 0x1004a846
test cl, 0x10
jne 0x1004a848
mov al, byte [eax]
cmp al, 0x7b
je 0x1004a846
cmp al, 0x7d
jne 0x1004a848
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10049730
jmp 0x1004a94f
cmp eax, 0x24
jne 0x1004a8ad
push 3
lea ecx, [esi + 0x24]
call fcn.1004a990
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1004a8a1
cmp byte [eax], 0x5c
jne 0x1004a89f
inc eax
cmp eax, ecx
je 0x1004a89f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004a88e
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004a89d
cmp dl, 0x29
je 0x1004a89d
test cl, 0x10
jne 0x1004a89f
mov al, byte [eax]
cmp al, 0x7b
je 0x1004a89d
cmp al, 0x7d
jne 0x1004a89f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10049730
jmp 0x1004a94f
cmp eax, 0x2a
je 0x1004a96b
cmp eax, 0x2b
je 0x1004a96b
cmp eax, 0x3f
je 0x1004a96b
cmp eax, 0x7b
je 0x1004a96b
cmp eax, 0x7d
jne 0x1004a8e5
test dword [esi + 0x50], 0x10000000
je 0x1004a979
jmp 0x1004a8f7
cmp eax, 0x5d
jne 0x1004a8f7
test dword [esi + 0x50], 0x10000000
je 0x1004a980
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1004b9b0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004a93e
cmp byte [eax], 0x5c
jne 0x1004a93c
inc eax
cmp eax, ecx
je 0x1004a93c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004a92b
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004a93a
cmp dl, 0x29
je 0x1004a93a
test cl, 0x10
jne 0x1004a93c
mov al, byte [eax]
cmp al, 0x7b
je 0x1004a93a
cmp al, 0x7d
jne 0x1004a93c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10049730
mov ecx, esi
call fcn.1004b790
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1004a962
cmp eax, 0x7c
jne 0x1004a483
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.10049720
push 5
call fcn.10049720
push 6
call fcn.10049720
push 4
call fcn.10049720
int3