Function at 0x4258b0
Capabilities:
Parse credit card information

Disassembly:
push ebp
push esi
mov esi, ecx
mov eax, dword [esi]
movzx ecx, byte [eax]
push ecx
xor ebp, ebp
call fcn.00586aa6
add esp, 4
test eax, eax
je 0x4258dc
inc dword [esi]
mov edx, dword [esi]
movzx eax, byte [edx]
push eax
call fcn.00586aa6
add esp, 4
test eax, eax
jne 0x4258c8
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
jne 0x4258f6
mov ebp, 1
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
movzx edx, al
push edi
push edx
call fcn.005869a1
add esp, 4
test eax, eax
je 0x425957
mov eax, dword [esi]
movsx edi, byte [eax]
inc eax
mov dword [esi], eax
movzx eax, byte [eax]
push eax
sub edi, 0x30
call fcn.005869a1
add esp, 4
test eax, eax
je 0x425941
mov eax, dword [esi]
movsx edx, byte [eax]
inc eax
lea ecx, [edi + edi*4]
lea edi, [edx + ecx*2 - 0x30]
mov dword [esi], eax
movzx ecx, byte [eax]
push ecx
call fcn.005869a1
add esp, 4
test eax, eax
jne 0x425922
mov ebp, 2
mov dword [esi + 8], edi
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
mov edx, dword [esi]
movzx eax, byte [edx]
push eax
call fcn.00586822
add esp, 4
test eax, eax
je 0x425a9b
mov edi, dword [esi]
lea eax, [edi + 1]
mov dword [esi], eax
movzx ecx, byte [eax]
push ecx
call fcn.00586b2a
add esp, 4
test eax, eax
je 0x425998
inc dword [esi]
mov edx, dword [esi]
movzx eax, byte [edx]
push eax
call fcn.00586b2a
add esp, 4
test eax, eax
jne 0x425984
mov eax, dword [esi]
sub eax, edi
cmp eax, 1
jne 0x4259bd
cmp byte [edi], 0x6e
jne 0x425c3b
mov ebp, 3
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp eax, 6
jne 0x425a2b
mov ecx, str.plural
jmp 0x4259d0
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x425c3b
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x4259d0
test eax, eax
je 0x425a18
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x425c3b
cmp eax, 1
jbe 0x425a18
mov dl, byte [ecx + 1]
cmp dl, byte [edi + 1]
jne 0x425c3b
cmp eax, 2
jbe 0x425a18
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
jne 0x425c3b
mov ebp, 4
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp eax, 8
jne 0x425c3b
mov ecx, str.nplurals
lea esp, [esp]
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x425c3b
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x425a40
test eax, eax
je 0x425a88
mov dl, byte [ecx]
cmp dl, byte [edi]
jne 0x425c3b
cmp eax, 1
jbe 0x425a88
mov dl, byte [ecx + 1]
cmp dl, byte [edi + 1]
jne 0x425c3b
cmp eax, 2
jbe 0x425a88
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
jne 0x425c3b
mov ebp, 5
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
mov eax, dword [esi]
mov cl, byte [eax]
cmp cl, 0x3d
jne 0x425ad4
inc eax
mov dword [esi], eax
cmp byte [eax], cl
jne 0x425ac1
inc eax
mov ebp, 6
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
mov ebp, 7
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x3e
jne 0x425b0a
inc eax
mov dword [esi], eax
cmp byte [eax], 0x3d
jne 0x425af7
inc eax
mov ebp, 9
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
mov ebp, 8
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x3c
jne 0x425b40
inc eax
mov dword [esi], eax
cmp byte [eax], 0x3d
jne 0x425b2d
inc eax
mov ebp, 0xb
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
mov ebp, 0xa
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x25
jne 0x425b5b
inc eax
mov ebp, 0xc
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x21
jne 0x425b7e
cmp byte [eax + 1], 0x3d
jne 0x425b7e
add eax, 2
mov ebp, 0xd
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x26
jne 0x425ba0
cmp byte [eax + 1], cl
jne 0x425ba0
add eax, 2
mov ebp, 0xe
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x7c
jne 0x425bc2
cmp byte [eax + 1], cl
jne 0x425bc2
add eax, 2
mov ebp, 0xf
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x3f
jne 0x425bdd
inc eax
mov ebp, 0x10
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x3a
jne 0x425bf8
inc eax
mov ebp, 0x11
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x3b
jne 0x425c13
inc eax
mov ebp, 0x12
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x28
jne 0x425c2e
inc eax
mov ebp, 0x13
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret
cmp cl, 0x29
jne 0x425c3b
inc eax
mov ebp, 0x14
mov dword [esi], eax
pop edi
mov dword [esi + 4], ebp
xor eax, eax
test ebp, ebp
pop esi
setne al
pop ebp
ret