Function at 0x42e2f0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
push edi
xor edi, edi
cmp ebp, edi
jne 0x42e306
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret
mov esi, dword [ebp]
mov al, byte [esi]
cmp al, 0x61
jl 0x42e317
cmp al, 0x7a
jle 0x42e3b9
cmp al, 0x41
jl 0x42e323
cmp al, 0x5a
jle 0x42e3b9
cmp al, 0x30
jl 0x42e32f
cmp al, 0x39
jle 0x42e3b9
cmp al, 0x2d
je 0x42e3b9
cmp al, 0x5f
je 0x42e3b9
cmp al, 0x2e
je 0x42e3b9
cmp al, 0x21
je 0x42e3b9
cmp al, 0x7e
je 0x42e3b9
cmp al, 0x2a
je 0x42e3b9
cmp al, 0x27
je 0x42e3b9
cmp al, 0x28
je 0x42e3b9
cmp al, 0x29
je 0x42e3b9
cmp al, 0x25
jne 0x42e39d
mov cl, byte [esi + 1]
cmp cl, 0x30
jl 0x42e368
cmp cl, 0x39
jle 0x42e37c
cmp cl, 0x61
jl 0x42e372
cmp cl, 0x66
jle 0x42e37c
cmp cl, 0x41
jl 0x42e39d
cmp cl, 0x46
jg 0x42e39d
mov cl, byte [esi + 2]
cmp cl, 0x30
jl 0x42e389
cmp cl, 0x39
jle 0x42e3b9
cmp cl, 0x61
jl 0x42e393
cmp cl, 0x66
jle 0x42e3b9
cmp cl, 0x41
jl 0x42e39d
cmp cl, 0x46
jle 0x42e3b9
cmp al, 0x3b
je 0x42e3b9
cmp al, 0x3a
je 0x42e3b9
cmp al, 0x26
je 0x42e3b9
cmp al, 0x3d
je 0x42e3b9
cmp al, 0x2b
je 0x42e3b9
cmp al, 0x24
je 0x42e3b9
cmp al, 0x2c
jne 0x42e3cb
cmp al, 0x25
jne 0x42e3c5
add esi, 3
jmp 0x42e309
inc esi
jmp 0x42e309
mov al, byte [esi]
mov ebx, dword [esp + 0x14]
cmp al, 0x40
jne 0x42e41c
cmp ebx, edi
je 0x42e419
mov eax, dword [ebx + 0x10]
cmp eax, edi
je 0x42e3ea
push eax
call dword [0x447940]
add esp, 4
test byte [ebx + 0x24], 2
mov eax, dword [ebp]
je 0x42e407
mov ecx, esi
sub ecx, eax
push ecx
push eax
call fcn.004105f0
add esp, 8
mov dword [ebx + 0x18], eax
inc esi
jmp 0x42e437
mov edx, esi
push edi
sub edx, eax
push edx
push eax
call fcn.0042d150
add esp, 0xc
mov dword [ebx + 0x10], eax
inc esi
jmp 0x42e437
cmp ebx, edi
je 0x42e434
mov eax, dword [ebx + 0x10]
cmp eax, edi
je 0x42e431
push eax
call dword [0x447940]
add esp, 4
mov dword [ebx + 0x10], edi
mov esi, dword [ebp]
mov al, byte [esi]
mov ebp, esi
cmp al, 0x2f
mov dword [esp + 0x14], ebp
jne 0x42e47d
cmp ebx, edi
je 0x42e712
mov eax, dword [ebx + 8]
cmp eax, edi
je 0x42e45c
push eax
call dword [0x447940]
add esp, 4
mov eax, dword [ebx + 0xc]
mov dword [ebx + 8], edi
cmp eax, edi
je 0x42e470
push eax
call dword [0x447940]
add esp, 4
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x14], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
cmp al, 0x5b
jne 0x42e52c
lea ebp, [esi + 1]
xor ecx, ecx
mov esi, ebp
xor edi, edi
cmp byte [esi], 0x3a
jne 0x42e4aa
test ecx, ecx
jne 0x42e4f0
test edi, edi
jne 0x42e4a3
mov al, byte [esi + 1]
inc esi
cmp al, 0x3a
jne 0x42e4f0
mov ecx, 1
jmp 0x42e4d1
mov al, byte [esi]
cmp al, 0x30
jl 0x42e4b4
cmp al, 0x39
jle 0x42e4c4
cmp al, 0x61
jl 0x42e4bc
cmp al, 0x66
jle 0x42e4c4
cmp al, 0x41
jl 0x42e4c7
cmp al, 0x46
jg 0x42e4c7
inc esi
jmp 0x42e4aa
cmp edi, 7
je 0x42e4d2
cmp byte [esi], 0x3a
jne 0x42e4d8
inc esi
inc edi
cmp edi, 8
jl 0x42e48e
test ecx, ecx
jne 0x42e4eb
cmp edi, 8
je 0x42e4eb
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
ret
cmp byte [esi], 0x5d
je 0x42e4fa
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
ret
test ebx, ebx
je 0x42e525
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x42e50f
push eax
call dword [0x447940]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, esi
sub eax, ecx
dec eax
push eax
push ebp
call fcn.004105f0
add esp, 8
mov dword [ebx + 0xc], eax
mov ebp, dword [esp + 0x14]
inc esi
jmp 0x42e555
xor edi, edi
mov al, byte [esi]
cmp al, 0x2e
je 0x42e4f0
cmp al, 0x30
jl 0x42e544
cmp al, 0x39
jg 0x42e544
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x42e538
cmp edi, 3
je 0x42e54f
cmp byte [esi], 0x2e
jne 0x42e555
inc esi
inc edi
cmp edi, 4
jl 0x42e52e
cmp byte [ebp], 0x5b
je 0x42e66d
cmp edi, 4
jl 0x42e58a
cmp byte [esi], 0x2e
jne 0x42e570
mov ecx, esi
inc esi
test ecx, ecx
jne 0x42e58a
mov al, byte [esi]
cmp al, 0x61
jl 0x42e57a
cmp al, 0x7a
jle 0x42e58a
cmp al, 0x41
jl 0x42e66d
cmp al, 0x5a
jg 0x42e66d
mov al, byte [esi]
cmp al, 0x61
jl 0x42e594
cmp al, 0x7a
jle 0x42e5ac
cmp al, 0x41
jl 0x42e59c
cmp al, 0x5a
jle 0x42e5ac
cmp al, 0x30
jl 0x42e663
cmp al, 0x39
jg 0x42e663
mov al, byte [esi + 1]
inc esi
cmp al, 0x61
jl 0x42e5b8
cmp al, 0x7a
jle 0x42e5ac
cmp al, 0x41
jl 0x42e5c0
cmp al, 0x5a
jle 0x42e5ac
cmp al, 0x30
jl 0x42e5c8
cmp al, 0x39
jle 0x42e5ac
mov al, byte [esi]
cmp al, 0x2d
jne 0x42e5d9
mov al, byte [esi - 1]
dec esi
cmp al, 0x2e
je 0x42e5ec
inc esi
jmp 0x42e5ac
cmp al, 0x2e
jne 0x42e60a
mov al, byte [esi - 1]
dec esi
cmp al, 0x2d
je 0x42e5f6
cmp al, 0x2e
je 0x42e600
inc esi
jmp 0x42e5ac
pop edi
pop esi
pop ebp
mov eax, 5
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 7
pop ebx
ret
mov dl, byte [esi - 1]
lea eax, [esi - 1]
cmp dl, 0x2e
mov ecx, esi
jne 0x42e619
mov ecx, eax
dec ecx
cmp ecx, ebp
jb 0x42e638
mov al, byte [ecx]
cmp al, 0x61
jl 0x42e628
cmp al, 0x7a
jle 0x42e619
cmp al, 0x41
jl 0x42e630
cmp al, 0x5a
jle 0x42e619
cmp al, 0x30
jl 0x42e638
cmp al, 0x39
jle 0x42e619
inc ecx
cmp ecx, ebp
je 0x42e643
cmp byte [ecx - 1], 0x2e
jne 0x42e66d
mov cl, byte [ecx]
cmp cl, 0x61
jl 0x42e64f
cmp cl, 0x7a
jle 0x42e66d
cmp cl, 0x41
jl 0x42e659
cmp cl, 0x5a
jle 0x42e66d
pop edi
pop esi
pop ebp
mov eax, 8
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
ret
test ebx, ebx
je 0x42e6ca
mov eax, dword [ebx + 8]
test eax, eax
je 0x42e682
push eax
call dword [0x447940]
add esp, 4
mov dword [ebx + 8], 0
mov al, byte [ebp]
cmp al, 0x5b
je 0x42e6ca
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x42e6a1
push eax
call dword [0x447940]
add esp, 4
test byte [ebx + 0x24], 2
je 0x42e6b7
mov edx, esi
sub edx, ebp
push edx
push ebp
call fcn.004105f0
add esp, 8
jmp 0x42e6c7
mov eax, esi
push 0
sub eax, ebp
push eax
push ebp
call fcn.0042d150
add esp, 0xc
mov dword [ebx + 0xc], eax
cmp byte [esi], 0x3a
jne 0x42e70c
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl 0x42e70c
cmp al, 0x39
jg 0x42e70c
test ebx, ebx
je 0x42e6e6
mov dword [ebx + 0x14], 0
mov al, byte [esi]
cmp al, 0x30
jl 0x42e70c
cmp al, 0x39
jg 0x42e70c
test ebx, ebx
je 0x42e704
mov ecx, dword [ebx + 0x14]
movsx edx, al
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*2 - 0x30]
mov dword [ebx + 0x14], eax
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jge 0x42e6ec
mov ecx, dword [esp + 0x18]
mov dword [ecx], esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret