Function at 0x417f70
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 0x418472
cmp eax, 0x7c
je 0x418472
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x417fb4
cmp dword [esi + 0x10], 0
jne 0x418472
test dword [esi + 0x50], 0x10000000
je 0x418482
jmp 0x418407
cmp eax, 0x2e
jne 0x418024
push 5
lea ecx, [esi + 0x24]
call fcn.004184a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x41844e
cmp byte [eax], 0x5c
jne 0x418234
lea edx, [eax + 1]
cmp edx, ecx
je 0x418234
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x417ffe
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x418019
cmp byte [ebp - 1], 0x29
je 0x418019
test bl, 0x10
jne 0x418234
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x418019
cmp dl, 0x7d
jne 0x418234
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x41844e
cmp eax, 0x5c
jne 0x41816f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x418075
cmp byte [eax], 0x5c
jne 0x418072
lea edx, [eax + 1]
cmp edx, ecx
je 0x418072
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41805c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x41806f
cmp byte [ebp - 1], 0x29
je 0x41806f
test bl, 0x10
jne 0x418072
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x41806f
cmp dl, 0x7d
jne 0x418072
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004169b0
test byte [esi + 0x50], 0x80
je 0x418163
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x4180e9
push 4
lea ecx, [esi + 0x24]
call fcn.004184a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4180dd
cmp byte [eax], 0x5c
jne 0x4180da
lea edx, [eax + 1]
cmp edx, ecx
je 0x4180da
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4180c4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x4180d7
cmp bl, 0x29
je 0x4180d7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4180da
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x4180d7
cmp dl, 0x7d
jne 0x4180da
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004169b0
jmp 0x41845f
cmp al, 0x42
jne 0x418163
push 4
lea ecx, [esi + 0x24]
call fcn.004184a0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x418157
cmp byte [eax], 0x5c
jne 0x418154
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x418152
test byte [esi + 0x50], 8
jne 0x41812a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x418140
cmp cl, 0x29
je 0x418140
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x418152
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x418140
mov edx, ecx
cmp bl, 0x7d
jne 0x418152
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.004169b0
jmp 0x41845f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004169b0
jmp 0x41845f
mov ecx, esi
call fcn.004193d0
jmp 0x418455
cmp eax, 0x5b
jne 0x41823c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4181c8
cmp byte [eax], 0x5c
jne 0x4181c2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x4181c0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4181a6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x4181bb
cmp cl, 0x29
je 0x4181bb
mov ecx, eax
test bl, 0x10
jne 0x4181c0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x4181bb
mov edx, ecx
cmp bl, 0x7d
jne 0x4181c0
lea eax, [edx + 1]
jmp 0x4181c2
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.004169b0
mov ecx, esi
call fcn.00419290
cmp dword [esi + 0x4c], 0x5d
jne 0x418490
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41844e
cmp byte [eax], 0x5c
jne 0x418234
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x418232
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x418212
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x418227
cmp cl, 0x29
je 0x418227
mov ecx, eax
test bl, 0x10
jne 0x418232
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x418227
mov edx, ecx
cmp bl, 0x7d
jne 0x418232
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x41844e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x41844e
cmp eax, 0x28
jne 0x418312
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x418291
cmp byte [eax], 0x5c
jne 0x41828e
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x41828c
test byte [esi + 0x50], 8
jne 0x418271
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x418287
cmp cl, 0x29
je 0x418287
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x41828c
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x418287
mov edx, ecx
cmp bl, 0x7d
jne 0x41828c
lea eax, [edx + 1]
jmp 0x41828e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004169b0
mov ecx, esi
call fcn.00419520
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x418482
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x4182fe
cmp byte [eax], 0x5c
jne 0x4182fb
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x4182f6
test byte [esi + 0x50], 8
jne 0x4182db
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x4182f1
cmp cl, 0x29
je 0x4182f1
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4182f6
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x4182f1
mov edx, ecx
cmp bl, 0x7d
jne 0x4182f6
lea eax, [edx + 1]
jmp 0x4182f8
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004169b0
test bl, bl
je 0x41845f
jmp 0x418455
cmp eax, 0x5e
jne 0x418366
push 2
lea ecx, [esi + 0x24]
call fcn.004184a0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x41835a
cmp byte [eax], 0x5c
jne 0x418358
inc eax
cmp eax, ecx
je 0x418358
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x418347
mov dl, byte [eax]
cmp dl, 0x28
je 0x418356
cmp dl, 0x29
je 0x418356
test cl, 0x10
jne 0x418358
mov al, byte [eax]
cmp al, 0x7b
je 0x418356
cmp al, 0x7d
jne 0x418358
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.004169b0
jmp 0x41845f
cmp eax, 0x24
jne 0x4183bd
push 3
lea ecx, [esi + 0x24]
call fcn.004184a0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4183b1
cmp byte [eax], 0x5c
jne 0x4183af
inc eax
cmp eax, ecx
je 0x4183af
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41839e
mov dl, byte [eax]
cmp dl, 0x28
je 0x4183ad
cmp dl, 0x29
je 0x4183ad
test cl, 0x10
jne 0x4183af
mov al, byte [eax]
cmp al, 0x7b
je 0x4183ad
cmp al, 0x7d
jne 0x4183af
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.004169b0
jmp 0x41845f
cmp eax, 0x2a
je 0x41847b
cmp eax, 0x2b
je 0x41847b
cmp eax, 0x3f
je 0x41847b
cmp eax, 0x7b
je 0x41847b
cmp eax, 0x7d
jne 0x4183f5
test dword [esi + 0x50], 0x10000000
je 0x418489
jmp 0x418407
cmp eax, 0x5d
jne 0x418407
test dword [esi + 0x50], 0x10000000
je 0x418490
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004198e0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41844e
cmp byte [eax], 0x5c
jne 0x41844c
inc eax
cmp eax, ecx
je 0x41844c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41843b
mov dl, byte [eax]
cmp dl, 0x28
je 0x41844a
cmp dl, 0x29
je 0x41844a
test cl, 0x10
jne 0x41844c
mov al, byte [eax]
cmp al, 0x7b
je 0x41844a
cmp al, 0x7d
jne 0x41844c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.004169b0
mov ecx, esi
call fcn.004196c0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x418472
cmp eax, 0x7c
jne 0x417f93
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.004169a0
push 5
call fcn.004169a0
push 6
call fcn.004169a0
push 4
call fcn.004169a0
int3