Function at 0x49c909
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
push 4
pop ebx
mov cl, byte [edi]
movzx edx, cl
mov eax, edx
mov dword [ebp - 4], edx
cmp eax, 0x2e
jg 0x49ca15
je 0x49ca01
sub eax, 9
cmp eax, 0x24
ja case.0x49c943.11
movzx eax, byte [eax + 0x49ce55]
jmp dword [eax*4 + 0x49ce21]
movzx eax, byte [edi + 1]
xor edx, edx
inc edx
test byte [eax + 0x5c9db0], dl
je 0x49c967
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5c9db0], 1
jne 0x49c959
mov dword [esi], 0x97
mov eax, edx
jmp 0x49ce19
cmp byte [edi + 1], 0x2d
jne 0x49c99c
movzx ecx, byte [edi + 2]
push 2
pop eax
jmp 0x49c98d
cmp ecx, 0xa
je 0x49c991
inc eax
movzx ecx, byte [eax + edi]
test ecx, ecx
jne 0x49c983
mov dword [esi], 0x97
jmp 0x49ce19
mov dword [esi], 0x5a
xor eax, eax
inc eax
jmp 0x49ce19
mov dword [esi], 0x16
jmp 0x49c9a2
mov dword [esi], 0x17
jmp 0x49c9a2
mov dword [esi], 0x59
jmp 0x49c9a2
mov dword [esi], 0x5b
jmp 0x49c9a2
mov dword [esi], 0x5d
jmp 0x49c9a2
cmp byte [edi + 1], 0x3d
push 2
pop eax
je 0x49c9e6
mov dword [esi], 0x96
jmp 0x49ce19
mov dword [esi], 0x4e
jmp 0x49ce19
mov dword [esi], 0x1a
jmp 0x49c9a2
mov dword [esi], 0x55
jmp 0x49c9a2
movzx eax, byte [edi + 1]
test byte [eax + 0x5c9db0], bl
jne 0x49ca64
mov dword [esi], 0x7a
jmp 0x49c9a2
cmp eax, 0x3f
jg 0x49cc4d
je 0x49cc1f
cmp eax, 0x3b
jg 0x49cb96
je 0x49cb8c
cmp eax, 0x2f
je 0x49cb4e
jle case.0x49c943.11
cmp eax, 0x39
jle 0x49ca64
cmp eax, 0x3a
je case.0x49c943.35
test byte [edx + 0x5c9db0], 0x46
jne 0x49cd79
mov dword [esi], 0x96
jmp 0x49c9a2
mov dword [esi], 0x84
cmp cl, 0x30
jne 0x49caae
mov al, byte [edi + 1]
cmp al, 0x78
je 0x49ca7a
cmp al, 0x58
jne 0x49caae
movzx eax, byte [edi + 2]
test byte [eax + 0x5c9db0], 8
je 0x49caae
movzx eax, byte [edi + 3]
push 3
pop edx
test byte [eax + 0x5c9db0], 8
je 0x49c96d
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5c9db0], 8
jne 0x49ca9b
jmp 0x49c96d
mov eax, dword [ebp - 4]
xor edx, edx
jmp 0x49caba
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5c9db0], bl
jne 0x49cab5
cmp byte [edx + edi], 0x2e
jne 0x49cadb
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5c9db0], bl
jne 0x49cac8
mov dword [esi], 0x85
mov al, byte [edx + edi]
cmp al, 0x65
je 0x49cae6
cmp al, 0x45
jne 0x49cb24
mov cl, byte [edx + edi + 1]
movzx eax, cl
test byte [eax + 0x5c9db0], bl
jne 0x49cb0c
cmp cl, 0x2b
je 0x49caff
cmp cl, 0x2d
jne 0x49cb24
movzx eax, byte [edx + edi + 2]
test byte [eax + 0x5c9db0], bl
je 0x49cb24
add edx, 2
jmp 0x49cb12
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5c9db0], bl
jne 0x49cb11
mov dword [esi], 0x85
movzx eax, byte [edx + edi]
test byte [eax + 0x5c9db0], 0x46
je 0x49c96d
inc edx
mov dword [esi], 0x96
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5c9db0], 0x46
jne 0x49cb35
jmp 0x49c96d
cmp byte [edi + 1], 0x2a
jne 0x49cb81
mov cl, byte [edi + 2]
test cl, cl
je 0x49cb81
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x49cb6c
cmp byte [eax + edi], 0x2f
je 0x49cb7b
movzx ecx, byte [eax + edi]
test ecx, ecx
je 0x49c991
inc eax
jmp 0x49cb61
inc eax
jmp 0x49c991
mov dword [esi], 0x5c
jmp 0x49c9a2
xor eax, eax
inc eax
mov dword [esi], eax
jmp 0x49ce19
sub eax, 0x3c
je 0x49cbe3
dec eax
je 0x49cbce
dec eax
jne case.0x49c943.11
movzx eax, byte [edi + 1]
cmp eax, 0x3d
jne 0x49cbb6
mov dword [esi], 0x53
jmp 0x49cbf2
cmp eax, 0x3e
jne 0x49cbc3
mov dword [esi], 0x58
jmp 0x49cbf2
mov dword [esi], 0x50
jmp 0x49c9a2
xor eax, eax
mov dword [esi], 0x4f
cmp byte [edi + 1], 0x3d
sete al
inc eax
jmp 0x49ce19
movzx eax, byte [edi + 1]
cmp eax, 0x3d
jne 0x49cbfa
mov dword [esi], 0x51
push 2
pop eax
jmp 0x49ce19
cmp eax, 0x3e
jne 0x49cc07
mov dword [esi], 0x4e
jmp 0x49cbf2
cmp eax, 0x3c
jne 0x49cc14
mov dword [esi], 0x57
jmp 0x49cbf2
mov dword [esi], 0x52
jmp 0x49c9a2
movzx eax, byte [edi + 1]
xor edx, edx
push 4
pop ebx
inc edx
mov dword [esi], 0x87
test byte [eax + 0x5c9db0], bl
je 0x49c96d
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5c9db0], bl
jne 0x49cc3b
jmp 0x49c96d
sub eax, 0x40
je case.0x49c943.35
sub eax, 0x18
je 0x49cd15
sub eax, 3
je 0x49cced
sub eax, 5
je case.0x49c943.34
sub eax, 0x18
je 0x49cd15
sub eax, 4
je 0x49cc8e
dec eax
dec eax
jne case.0x49c943.11
mov dword [esi], 0x60
jmp 0x49c9a2
cmp byte [edi + 1], 0x7c
je 0x49cc9f
mov dword [esi], 0x56
jmp 0x49c9a2
mov dword [esi], 0x5e
jmp 0x49cbf2
movzx ebx, byte [edi + 1]
xor ecx, ecx
inc ecx
jmp 0x49ccc6
cmp ebx, edx
jne 0x49ccc1
movzx eax, byte [edi + ecx + 1]
cmp eax, edx
jne 0x49ccca
inc ecx
inc ecx
movzx ebx, byte [ecx + edi]
test ebx, ebx
jne 0x49ccb3
cmp ebx, 0x27
jne 0x49ccdd
mov dword [esi], 0x61
lea eax, [ecx + 1]
jmp 0x49ce19
test ebx, ebx
je 0x49ce11
mov dword [esi], 0x1b
jmp 0x49ccd5
xor eax, eax
inc eax
jmp 0x49ccfb
movzx edx, byte [eax + edi]
test edx, edx
je 0x49cd00
inc eax
cmp edx, 0x5d
jne 0x49ccf2
push 0x1b
cmp edx, 0x5d
mov ecx, 0x96
pop edi
cmove ecx, edi
mov dword [esi], ecx
jmp 0x49ce19
cmp byte [edi + 1], 0x27
jne case.0x49c943.11
movzx eax, byte [edi + 2]
push 2
mov dword [esi], 0x86
pop ecx
jmp 0x49cd33
inc ecx
movzx eax, byte [ecx + edi]
test byte [eax + 0x5c9db0], 8
jne 0x49cd2e
mov dl, byte [ecx + edi]
cmp dl, 0x27
jne 0x49cd54
mov eax, ecx
and eax, 0x80000001
jns 0x49cd52
dec eax
or eax, 0xfffffffe
inc eax
je 0x49cd69
mov dword [esi], 0x96
jmp 0x49cd65
cmp dl, 0x27
je 0x49cd69
inc ecx
mov dl, byte [ecx + edi]
test dl, dl
jne 0x49cd5c
cmp byte [ecx + edi], 0
je 0x49ce17
inc ecx
jmp 0x49ce17
movzx eax, byte [edi + 1]
xor ebx, ebx
inc ebx
test byte [eax + 0x5c9db0], 0x46
je 0x49cd97
inc ebx
movzx ecx, byte [ebx + edi]
test byte [ecx + 0x5c9db0], 0x46
jne 0x49cd89
mov edx, ebx
mov ecx, edi
call fcn.0049c883
mov dword [esi], eax
mov eax, ebx
jmp 0x49ce19
movzx edx, byte [edi + 1]
xor ecx, ecx
xor ebx, ebx
mov dword [esi], 0x87
inc ecx
test edx, edx
je 0x49ce11
movzx eax, dl
test byte [eax + 0x5c9db0], 0x46
je 0x49cdc8
inc ebx
jmp 0x49cddd
cmp edx, 0x28
jne 0x49cdd1
test ebx, ebx
jg 0x49cde8
cmp edx, 0x3a
jne 0x49ce0d
cmp byte [edi + ecx + 1], dl
jne 0x49ce0d
inc ecx
inc ecx
movzx edx, byte [ecx + edi]
test edx, edx
jne 0x49cdb9
jmp 0x49ce0d
inc ecx
movzx edx, byte [ecx + edi]
test edx, edx
je 0x49cdff
test byte [edx + 0x5c9db0], 1
jne 0x49cdff
cmp edx, 0x29
jne 0x49cde8
cmp edx, 0x29
jne 0x49ce07
inc ecx
jmp 0x49ce0d
mov dword [esi], 0x96
test ebx, ebx
jne 0x49ce17
mov dword [esi], 0x96
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret