Function at 0x422474
Capabilities:
Parse credit card information

Disassembly:
mov edi, edi
push ebx
mov ebx, eax
movzx ecx, byte [ebx]
cmp ecx, 0x2e
push edi
mov dl, 4
jg 0x4225bf
je 0x4225ab
cmp ecx, 0x26
jg 0x42252e
je 0x422526
cmp ecx, 0x21
jg 0x422504
je 0x4224ec
cmp ecx, 9
jl 0x4225f6
cmp ecx, 0xa
jle 0x4224c9
cmp ecx, 0xb
jle 0x4225f6
cmp ecx, 0xd
jle 0x4224c9
cmp ecx, 0x20
jne 0x4225f6
movzx edx, byte [ebx + 1]
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x4224d9
inc eax
movzx edx, byte [eax + ebx]
test byte [edx + 0x47e760], cl
jne 0x4224d4
mov dword [esi], 0x97
jmp 0x422957
cmp byte [ebx + 1], 0x3d
push 2
pop eax
jne 0x422951
mov dword [esi], 0x4e
jmp 0x422957
mov eax, ecx
sub eax, 0x22
je 0x422835
dec eax
je 0x422924
dec eax
dec eax
jne 0x4225f6
mov dword [esi], 0x5d
jmp 0x42257b
mov dword [esi], 0x55
jmp 0x42257b
mov eax, ecx
sub eax, 0x27
je 0x422835
dec eax
je 0x4225a3
dec eax
je 0x42259b
dec eax
je 0x422593
dec eax
je 0x42258b
dec eax
je 0x422583
dec eax
jne 0x4225f6
cmp byte [ebx + 1], 0x2d
jne 0x422575
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x42256c
cmp ecx, 0xa
je 0x4224e1
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x42255e
jmp 0x4224e1
mov dword [esi], 0x5a
xor eax, eax
inc eax
jmp 0x422957
mov dword [esi], 0x1a
jmp 0x42257b
mov dword [esi], 0x59
jmp 0x42257b
mov dword [esi], 0x5b
jmp 0x42257b
mov dword [esi], 0x17
jmp 0x42257b
mov dword [esi], 0x16
jmp 0x42257b
movzx eax, byte [ebx + 1]
test byte [eax + 0x47e760], dl
jne 0x42260b
mov dword [esi], 0x7a
jmp 0x42257b
cmp ecx, 0x3f
jg 0x4227d6
je 0x4227b3
cmp ecx, 0x3b
jg 0x422728
je 0x42271c
cmp ecx, 0x2f
je 0x4226de
jle 0x4225f6
cmp ecx, 0x39
jle 0x42260b
cmp ecx, 0x3a
je 0x422924
test byte [ecx + 0x47e760], 0x46
jne 0x422902
xor eax, eax
inc eax
jmp 0x422951
mov dword [esi], 0x84
mov cl, byte [ebx]
cmp cl, 0x30
jne 0x42264c
mov al, byte [ebx + 1]
cmp al, 0x78
je 0x422623
cmp al, 0x58
jne 0x42264c
movzx eax, byte [ebx + 2]
test byte [eax + 0x47e760], 8
je 0x42264c
movzx ecx, byte [ebx + 3]
push 3
pop eax
jmp 0x42263e
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x47e760], 8
jne 0x422639
jmp 0x422957
xor eax, eax
movzx ecx, cl
jmp 0x422658
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x47e760], dl
jne 0x422653
cmp byte [eax + ebx], 0x2e
jne 0x422679
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x47e760], dl
jne 0x422666
mov dword [esi], 0x85
mov cl, byte [eax + ebx]
cmp cl, 0x65
je 0x422686
cmp cl, 0x45
jne 0x4226cc
mov cl, byte [eax + ebx + 1]
movzx edi, cl
test byte [edi + 0x47e760], dl
jne 0x4226ac
cmp cl, 0x2b
je 0x42269f
cmp cl, 0x2d
jne 0x4226cc
movzx ecx, byte [eax + ebx + 2]
test byte [ecx + 0x47e760], dl
je 0x4226cc
inc eax
inc eax
jmp 0x4226b1
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x47e760], dl
jne 0x4226b0
mov dword [esi], 0x85
jmp 0x4226cc
mov dword [esi], 0x96
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x47e760], 0x46
jne 0x4226c5
jmp 0x422957
cmp byte [ebx + 1], 0x2a
jne 0x422711
mov cl, byte [ebx + 2]
test cl, cl
je 0x422711
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4226fc
cmp byte [eax + ebx], 0x2f
je 0x42270b
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4224e1
inc eax
jmp 0x4226f1
inc eax
jmp 0x4224e1
mov dword [esi], 0x5c
jmp 0x42257b
xor ecx, ecx
inc ecx
mov dword [esi], ecx
mov eax, ecx
jmp 0x422957
mov eax, ecx
sub eax, 0x3c
je 0x422777
dec eax
je 0x422762
dec eax
jne 0x4225f6
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x42274a
mov dword [esi], 0x53
jmp 0x422786
cmp eax, 0x3e
jne 0x422757
mov dword [esi], 0x58
jmp 0x422786
mov dword [esi], 0x50
jmp 0x42257b
xor eax, eax
mov dword [esi], 0x4f
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x422957
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x42278e
mov dword [esi], 0x51
push 2
pop eax
jmp 0x422957
cmp eax, 0x3e
jne 0x42279b
mov dword [esi], 0x4e
jmp 0x422786
cmp eax, 0x3c
jne 0x4227a8
mov dword [esi], 0x57
jmp 0x422786
mov dword [esi], 0x52
jmp 0x42257b
xor eax, eax
mov dword [esi], 0x87
movzx ecx, byte [ebx + 1]
inc eax
mov dl, 4
jmp 0x4227c9
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x47e760], dl
jne 0x4227c4
jmp 0x422957
mov eax, ecx
sub eax, 0x40
je 0x422924
sub eax, 0x18
je 0x4228a4
sub eax, 3
je 0x422878
sub eax, 5
je 0x422835
sub eax, 0x18
je 0x4228a4
sub eax, 4
je 0x422819
dec eax
dec eax
jne 0x4225f6
mov dword [esi], 0x60
jmp 0x42257b
cmp byte [ebx + 1], 0x7c
je 0x42282a
mov dword [esi], 0x56
jmp 0x42257b
mov dword [esi], 0x5e
jmp 0x422786
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
jmp 0x422851
cmp edx, ecx
jne 0x42284c
movzx edi, byte [ebx + eax + 1]
cmp edi, ecx
jne 0x422855
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x42283e
cmp edx, 0x27
jne 0x422865
mov dword [esi], 0x61
jmp 0x422771
test edx, edx
je 0x422951
mov dword [esi], 0x1b
jmp 0x422771
xor eax, eax
inc eax
jmp 0x422886
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x42288b
inc eax
cmp ecx, 0x5d
jne 0x42287d
xor edx, edx
cmp ecx, 0x5d
setne dl
dec edx
and edx, 0xffffff85
add edx, 0x96
mov dword [esi], edx
jmp 0x422957
cmp byte [ebx + 1], 0x27
jne 0x4225f6
push 2
mov dword [esi], 0x86
movzx ecx, byte [ebx + 2]
pop eax
jmp 0x4228c2
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x47e760], 8
jne 0x4228bd
cmp byte [eax + ebx], 0x27
jne 0x4228e2
mov ecx, eax
and ecx, 0x80000001
jns 0x4228e0
dec ecx
or ecx, 0xfffffffe
inc ecx
je 0x4228f7
mov dword [esi], 0x96
jmp 0x4228f0
cmp cl, 0x27
je 0x4228f7
inc eax
mov cl, byte [eax + ebx]
test cl, cl
jne 0x4228ea
cmp byte [eax + ebx], 0
je 0x422957
jmp 0x422771
movzx eax, byte [ebx + 1]
xor edi, edi
inc edi
jmp 0x422910
inc edi
movzx eax, byte [edi + ebx]
test byte [eax + 0x47e760], 0x46
jne 0x42290b
call fcn.004223fc
mov dword [esi], eax
mov eax, edi
jmp 0x422957
mov dword [esi], 0x87
movzx ecx, byte [ebx + 1]
xor eax, eax
xor edx, edx
inc eax
test ecx, ecx
je 0x422951
movzx ecx, cl
test byte [ecx + 0x47e760], 0x46
je 0x42294d
inc edx
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x422937
test edx, edx
jne 0x422957
mov dword [esi], 0x96
pop edi
pop ebx
ret