Function at 0x4611ff
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 0x46134a
je 0x461336
cmp ecx, 0x26
jg 0x4612b9
je 0x4612b1
cmp ecx, 0x21
jg 0x46128f
je 0x461277
cmp ecx, 9
jl 0x461381
cmp ecx, 0xa
jle 0x461254
cmp ecx, 0xb
jle 0x461381
cmp ecx, 0xd
jle 0x461254
cmp ecx, 0x20
jne 0x461381
movzx edx, byte [ebx + 1]
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x461264
inc eax
movzx edx, byte [eax + ebx]
test byte [edx + 0x4d6940], cl
jne 0x46125f
mov dword [esi], 0x97
jmp 0x4616e2
cmp byte [ebx + 1], 0x3d
push 2
pop eax
jne 0x4616dc
mov dword [esi], 0x4e
jmp 0x4616e2
mov eax, ecx
sub eax, 0x22
je 0x4615c0
dec eax
je 0x4616af
dec eax
dec eax
jne 0x461381
mov dword [esi], 0x5d
jmp 0x461306
mov dword [esi], 0x55
jmp 0x461306
mov eax, ecx
sub eax, 0x27
je 0x4615c0
dec eax
je 0x46132e
dec eax
je 0x461326
dec eax
je 0x46131e
dec eax
je 0x461316
dec eax
je 0x46130e
dec eax
jne 0x461381
cmp byte [ebx + 1], 0x2d
jne 0x461300
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x4612f7
cmp ecx, 0xa
je 0x46126c
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x4612e9
jmp 0x46126c
mov dword [esi], 0x5a
xor eax, eax
inc eax
jmp 0x4616e2
mov dword [esi], 0x1a
jmp 0x461306
mov dword [esi], 0x59
jmp 0x461306
mov dword [esi], 0x5b
jmp 0x461306
mov dword [esi], 0x17
jmp 0x461306
mov dword [esi], 0x16
jmp 0x461306
movzx eax, byte [ebx + 1]
test byte [eax + 0x4d6940], dl
jne 0x461396
mov dword [esi], 0x7a
jmp 0x461306
cmp ecx, 0x3f
jg 0x461561
je 0x46153e
cmp ecx, 0x3b
jg 0x4614b3
je 0x4614a7
cmp ecx, 0x2f
je 0x461469
jle 0x461381
cmp ecx, 0x39
jle 0x461396
cmp ecx, 0x3a
je 0x4616af
test byte [ecx + 0x4d6940], 0x46
jne 0x46168d
xor eax, eax
inc eax
jmp 0x4616dc
mov dword [esi], 0x84
mov cl, byte [ebx]
cmp cl, 0x30
jne 0x4613d7
mov al, byte [ebx + 1]
cmp al, 0x78
je 0x4613ae
cmp al, 0x58
jne 0x4613d7
movzx eax, byte [ebx + 2]
test byte [eax + 0x4d6940], 8
je 0x4613d7
movzx ecx, byte [ebx + 3]
push 3
pop eax
jmp 0x4613c9
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4d6940], 8
jne 0x4613c4
jmp 0x4616e2
xor eax, eax
movzx ecx, cl
jmp 0x4613e3
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4d6940], dl
jne 0x4613de
cmp byte [eax + ebx], 0x2e
jne 0x461404
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4d6940], dl
jne 0x4613f1
mov dword [esi], 0x85
mov cl, byte [eax + ebx]
cmp cl, 0x65
je 0x461411
cmp cl, 0x45
jne 0x461457
mov cl, byte [eax + ebx + 1]
movzx edi, cl
test byte [edi + 0x4d6940], dl
jne 0x461437
cmp cl, 0x2b
je 0x46142a
cmp cl, 0x2d
jne 0x461457
movzx ecx, byte [eax + ebx + 2]
test byte [ecx + 0x4d6940], dl
je 0x461457
inc eax
inc eax
jmp 0x46143c
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4d6940], dl
jne 0x46143b
mov dword [esi], 0x85
jmp 0x461457
mov dword [esi], 0x96
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4d6940], 0x46
jne 0x461450
jmp 0x4616e2
cmp byte [ebx + 1], 0x2a
jne 0x46149c
mov cl, byte [ebx + 2]
test cl, cl
je 0x46149c
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x461487
cmp byte [eax + ebx], 0x2f
je 0x461496
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x46126c
inc eax
jmp 0x46147c
inc eax
jmp 0x46126c
mov dword [esi], 0x5c
jmp 0x461306
xor ecx, ecx
inc ecx
mov dword [esi], ecx
mov eax, ecx
jmp 0x4616e2
mov eax, ecx
sub eax, 0x3c
je 0x461502
dec eax
je 0x4614ed
dec eax
jne 0x461381
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4614d5
mov dword [esi], 0x53
jmp 0x461511
cmp eax, 0x3e
jne 0x4614e2
mov dword [esi], 0x58
jmp 0x461511
mov dword [esi], 0x50
jmp 0x461306
xor eax, eax
mov dword [esi], 0x4f
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x4616e2
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x461519
mov dword [esi], 0x51
push 2
pop eax
jmp 0x4616e2
cmp eax, 0x3e
jne 0x461526
mov dword [esi], 0x4e
jmp 0x461511
cmp eax, 0x3c
jne 0x461533
mov dword [esi], 0x57
jmp 0x461511
mov dword [esi], 0x52
jmp 0x461306
xor eax, eax
mov dword [esi], 0x87
movzx ecx, byte [ebx + 1]
inc eax
mov dl, 4
jmp 0x461554
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4d6940], dl
jne 0x46154f
jmp 0x4616e2
mov eax, ecx
sub eax, 0x40
je 0x4616af
sub eax, 0x18
je 0x46162f
sub eax, 3
je 0x461603
sub eax, 5
je 0x4615c0
sub eax, 0x18
je 0x46162f
sub eax, 4
je 0x4615a4
dec eax
dec eax
jne 0x461381
mov dword [esi], 0x60
jmp 0x461306
cmp byte [ebx + 1], 0x7c
je 0x4615b5
mov dword [esi], 0x56
jmp 0x461306
mov dword [esi], 0x5e
jmp 0x461511
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
jmp 0x4615dc
cmp edx, ecx
jne 0x4615d7
movzx edi, byte [ebx + eax + 1]
cmp edi, ecx
jne 0x4615e0
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x4615c9
cmp edx, 0x27
jne 0x4615f0
mov dword [esi], 0x61
jmp 0x4614fc
test edx, edx
je 0x4616dc
mov dword [esi], 0x1b
jmp 0x4614fc
xor eax, eax
inc eax
jmp 0x461611
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x461616
inc eax
cmp ecx, 0x5d
jne 0x461608
xor edx, edx
cmp ecx, 0x5d
setne dl
dec edx
and edx, 0xffffff85
add edx, 0x96
mov dword [esi], edx
jmp 0x4616e2
cmp byte [ebx + 1], 0x27
jne 0x461381
push 2
mov dword [esi], 0x86
movzx ecx, byte [ebx + 2]
pop eax
jmp 0x46164d
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4d6940], 8
jne 0x461648
cmp byte [eax + ebx], 0x27
jne 0x46166d
mov ecx, eax
and ecx, 0x80000001
jns 0x46166b
dec ecx
or ecx, 0xfffffffe
inc ecx
je 0x461682
mov dword [esi], 0x96
jmp 0x46167b
cmp cl, 0x27
je 0x461682
inc eax
mov cl, byte [eax + ebx]
test cl, cl
jne 0x461675
cmp byte [eax + ebx], 0
je 0x4616e2
jmp 0x4614fc
movzx eax, byte [ebx + 1]
xor edi, edi
inc edi
jmp 0x46169b
inc edi
movzx eax, byte [edi + ebx]
test byte [eax + 0x4d6940], 0x46
jne 0x461696
call fcn.00461187
mov dword [esi], eax
mov eax, edi
jmp 0x4616e2
mov dword [esi], 0x87
movzx ecx, byte [ebx + 1]
xor eax, eax
xor edx, edx
inc eax
test ecx, ecx
je 0x4616dc
movzx ecx, cl
test byte [ecx + 0x4d6940], 0x46
je 0x4616d8
inc edx
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x4616c2
test edx, edx
jne 0x4616e2
mov dword [esi], 0x96
pop edi
pop ebx
ret