Function at 0x4295d1
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, ecx
movzx ecx, byte [ebx]
cmp ecx, 0x2e
push esi
push edi
mov esi, eax
jg 0x42974a
je 0x429742
cmp ecx, 0x26
jg 0x4296c3
je 0x4296bb
cmp ecx, 0x21
jg 0x429663
je 0x42964b
cmp ecx, 9
jl 0x42977d
cmp ecx, 0xa
jle 0x429625
cmp ecx, 0xb
jle 0x42977d
cmp ecx, 0xd
jle 0x429625
cmp ecx, 0x20
jne 0x42977d
movzx eax, byte [ebx + 1]
xor edi, edi
inc edi
jmp 0x429633
inc edi
movzx eax, byte [edi + ebx]
push eax
call sub.msvcrt.dll_isspace
test eax, eax
pop ecx
jne 0x42962e
mov dword [esi], 0x91
mov eax, edi
jmp 0x429a5c
cmp byte [ebx + 1], 0x3d
push 2
pop eax
jne 0x429a56
mov dword [esi], 0x43
jmp 0x429a5c
mov eax, ecx
sub eax, 0x22
je 0x429935
dec eax
je 0x429684
dec eax
dec eax
jne 0x42977d
mov dword [esi], 0x52
jmp 0x429712
movzx eax, byte [ebx + 1]
xor edi, edi
push eax
inc edi
call sub.msvcrt.dll_isdigit
test eax, eax
pop ecx
je 0x429a23
inc edi
movzx eax, byte [edi + ebx]
push eax
call sub.msvcrt.dll_isdigit
test eax, eax
pop ecx
jne 0x42969a
cmp edi, 1
jle 0x429a23
mov dword [esi], 0x7f
jmp 0x429644
mov dword [esi], 0x4a
jmp 0x429712
mov eax, ecx
sub eax, 0x27
je 0x429935
dec eax
je 0x42973a
dec eax
je 0x429732
dec eax
je 0x42972a
dec eax
je 0x429722
dec eax
je 0x42971a
dec eax
jne 0x42977d
cmp byte [ebx + 1], 0x2d
jne 0x42970c
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x4296fd
cmp ecx, 0xa
je 0x429701
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x4296f3
mov dword [esi], 0x93
jmp 0x429a5c
mov dword [esi], 0x4f
xor eax, eax
inc eax
jmp 0x429a5c
mov dword [esi], 0x16
jmp 0x429712
mov dword [esi], 0x4e
jmp 0x429712
mov dword [esi], 0x50
jmp 0x429712
mov dword [esi], 0x14
jmp 0x429712
mov dword [esi], 0x13
jmp 0x429712
mov dword [esi], 0x70
jmp 0x429712
cmp ecx, 0x3f
jg 0x4298da
je 0x4298b4
cmp ecx, 0x3b
jg 0x429829
je 0x42981f
cmp ecx, 0x2f
je 0x4297e1
jle 0x42977d
cmp ecx, 0x39
jle 0x42979f
cmp ecx, 0x3a
je 0x429a23
test cl, cl
js 0x4299fb
cmp ecx, 0x1f
jle 0x429797
cmp byte [ecx + 0x42f4c8], 0
jne 0x4299fb
xor eax, eax
inc eax
jmp 0x429a56
mov dword [esi], 0x7c
xor edi, edi
push ecx
jmp 0x4297b0
inc edi
movzx eax, byte [edi + ebx]
push eax
call sub.msvcrt.dll_isdigit
test eax, eax
pop ecx
jne 0x4297aa
movzx eax, byte [edi + ebx]
test al, al
js 0x4297d8
cmp eax, 0x1f
jle 0x429644
cmp byte [eax + 0x42f4c8], 0
je 0x429644
mov dword [esi], 0x90
inc edi
jmp 0x4297ba
cmp byte [ebx + 1], 0x2a
jne 0x429814
mov cl, byte [ebx + 2]
test cl, cl
je 0x429814
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4297ff
cmp byte [eax + ebx], 0x2f
je 0x42980e
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x429701
inc eax
jmp 0x4297f4
inc eax
jmp 0x429701
mov dword [esi], 0x51
jmp 0x429712
xor eax, eax
inc eax
mov dword [esi], eax
jmp 0x429a5c
mov eax, ecx
sub eax, 0x3c
je 0x429878
dec eax
je 0x429863
dec eax
jne 0x42977d
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x42984b
mov dword [esi], 0x48
jmp 0x429887
cmp eax, 0x3e
jne 0x429858
mov dword [esi], 0x4d
jmp 0x429887
mov dword [esi], 0x45
jmp 0x429712
xor eax, eax
cmp byte [ebx + 1], 0x3d
mov dword [esi], 0x44
sete al
inc eax
jmp 0x429a5c
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x42988f
mov dword [esi], 0x46
push 2
pop eax
jmp 0x429a5c
cmp eax, 0x3e
jne 0x42989c
mov dword [esi], 0x43
jmp 0x429887
cmp eax, 0x3c
jne 0x4298a9
mov dword [esi], 0x4c
jmp 0x429887
mov dword [esi], 0x47
jmp 0x429712
movzx eax, byte [ebx + 1]
mov dword [esi], 0x80
xor esi, esi
inc esi
jmp 0x4298c8
inc esi
movzx eax, byte [esi + ebx]
push eax
call sub.msvcrt.dll_isdigit
test eax, eax
pop ecx
jne 0x4298c3
mov eax, esi
jmp 0x429a5c
mov eax, ecx
sub eax, 0x40
je 0x429a23
sub eax, 0x18
je 0x42999a
sub eax, 3
je 0x42996e
sub eax, 5
je 0x429935
sub eax, 0x18
je 0x42999a
sub eax, 4
je 0x429919
dec eax
dec eax
jne 0x42977d
mov dword [esi], 0x57
jmp 0x429712
cmp byte [ebx + 1], 0x7c
je 0x42992a
mov dword [esi], 0x4b
jmp 0x429712
mov dword [esi], 0x53
jmp 0x429887
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
test edx, edx
je 0x429a56
cmp edx, ecx
jne 0x429952
movzx edi, byte [ebx + eax + 1]
cmp edi, ecx
jne 0x42995b
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x429944
test edx, edx
je 0x429a56
mov dword [esi], 0x58
jmp 0x429872
xor eax, eax
inc eax
jmp 0x42997c
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x429981
inc eax
cmp ecx, 0x5d
jne 0x429973
xor edx, edx
cmp ecx, 0x5d
setne dl
dec edx
and edx, 0xffffff87
add edx, 0x90
mov dword [esi], edx
jmp 0x429a5c
cmp byte [ebx + 1], 0x27
jne 0x42977d
movzx eax, byte [ebx + 2]
push 2
mov dword [esi], 0x7e
pop edi
jmp 0x4299ce
cmp eax, 0x27
je 0x4299d2
push eax
call sub.msvcrt.dll_isxdigit
test eax, eax
pop ecx
jne 0x4299c9
mov dword [esi], 0x90
inc edi
movzx eax, byte [edi + ebx]
test eax, eax
jne 0x4299b3
mov ecx, edi
and ecx, 0x80000001
jns 0x4299e1
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4299e7
test eax, eax
jne 0x4299f5
test eax, eax
mov dword [esi], 0x90
je 0x429644
inc edi
jmp 0x429644
xor edi, edi
inc edi
movzx eax, byte [edi + ebx]
test al, al
js 0x429a14
cmp eax, 0x1f
jle 0x429a17
cmp byte [eax + 0x42f4c8], 0
je 0x429a17
inc edi
jmp 0x4299fe
call fcn.0042955b
mov dword [esi], eax
jmp 0x429644
movzx ecx, byte [ebx + 1]
xor eax, eax
xor edx, edx
inc eax
test ecx, ecx
mov dword [esi], 0x80
je 0x429a56
test cl, cl
js 0x429a48
cmp ecx, 0x1f
jle 0x429a52
cmp byte [ecx + 0x42f4c8], 0
je 0x429a52
inc edx
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x429a36
test edx, edx
jne 0x429a5c
mov dword [esi], 0x90
pop edi
pop esi
pop ebx
ret