Function at 0x404a9d
Capabilities:
Parse credit card information

Disassembly:
xor ebp, ebp
lodsb al, byte [esi]
cmp al, 0x22
je 0x404cd8
cmp al, 0x1a
jne 0x404bac
lodsb al, byte [esi]
movzx ecx, al
mov dword [0x417238], esi
mov al, byte [esi]
cmp al, 0x24
je 0x404aca
sub al, 0x30
cmp al, 9
ja 0x404ba5
mov ebx, esi
add esi, ecx
push esi
dec esi
mov dword [edi], 0
mov dword [edi + 4], 0
cmp byte [ebx], 0x24
je 0x404bf7
cmp word [ebx], 0x7830
je 0x404bfc
mov al, byte [esi]
dec esi
cmp al, 0x68
je 0x404bfc
cmp al, 0x62
je 0x404baf
cmp al, 0x64
je 0x404b2d
cmp al, 0x6f
je 0x404c6d
cmp al, 0x48
je 0x404bfc
cmp al, 0x42
je 0x404baf
cmp al, 0x44
je 0x404b2d
cmp al, 0x4f
je 0x404c6d
inc esi
mov ebx, esi
mov esi, dword [0x417238]
cmp esi, ebx
ja 0x404cd5
cmp byte [esi], 0x27
je 0x404b86
xor edx, edx
mov eax, dword [edi]
shld edx, eax, 2
shl eax, 2
add eax, dword [edi]
adc edx, 0
add eax, eax
adc edx, edx
mov dword [edi], eax
mov eax, dword [edi + 4]
add eax, eax
jb 0x404b89
add eax, eax
jb 0x404b89
add eax, dword [edi + 4]
jb 0x404b89
add eax, eax
jb 0x404b89
add eax, edx
jb 0x404b89
mov dword [edi + 4], eax
movzx eax, byte [esi]
sub al, 0x30
jb 0x404ba4
cmp al, 9
ja 0x404ba4
add dword [edi], eax
adc dword [edi + 4], 0
jb 0x404b89
inc esi
jmp 0x404b35
cmp esi, ebx
ja 0x404b9c
lodsb al, byte [esi]
cmp al, 0x27
je 0x404ba4
sub al, 0x30
jb 0x404ba4
cmp al, 9
ja 0x404ba4
jmp 0x404b89
or ebp, 0xffffffff
jmp 0x404cd5
pop eax
mov esi, dword [0x417238]
dec esi
dec esi
stc
ret
xor bl, bl
cmp esi, dword [0x417238]
jb 0x404cd5
movzx eax, byte [esi]
cmp al, 0x27
je 0x404bf4
sub al, 0x30
cmp al, 1
ja 0x404ba4
xor edx, edx
mov cl, bl
dec esi
cmp bl, 0x40
je 0x404beb
inc bl
cmp cl, 0x20
jae 0x404be1
shl eax, cl
or dword [edi], eax
jmp 0x404bb1
sub cl, 0x20
shl eax, cl
or dword [edi + 4], eax
jmp 0x404bb1
or al, al
je 0x404bb1
or ebp, 0xffffffff
jmp 0x404bb1
dec esi
jmp 0x404bb1
cmp cl, 1
je 0x404ba4
xor bl, bl
cmp esi, dword [0x417238]
jb 0x404cd5
movzx eax, byte [esi]
cmp al, 0x27
je 0x404c6a
cmp al, 0x78
je 0x404cc8
cmp al, 0x24
je 0x404cc9
sub al, 0x30
cmp al, 9
jbe 0x404c3f
sub al, 7
cmp al, 0xf
jbe 0x404c37
sub al, 0x20
cmp al, 0xf
ja 0x404ba4
cmp al, 0xa
jb 0x404ba4
xor edx, edx
mov cl, bl
dec esi
cmp bl, 0x40
je 0x404c61
add bl, 4
cmp cl, 0x20
jae 0x404c57
shl eax, cl
or dword [edi], eax
jmp 0x404bfe
sub cl, 0x20
shl eax, cl
or dword [edi + 4], eax
jmp 0x404bfe
or al, al
je 0x404bfe
or ebp, 0xffffffff
jmp 0x404bfe
dec esi
jmp 0x404bfe
xor bl, bl
cmp esi, dword [0x417238]
jb 0x404cd5
movzx eax, byte [esi]
cmp al, 0x27
je 0x404cbc
sub al, 0x30
cmp al, 7
ja 0x404ba4
xor edx, edx
mov cl, bl
dec esi
cmp bl, 0x3f
ja 0x404cbf
jne 0x404c98
cmp al, 1
ja 0x404cbf
add bl, 3
cmp cl, 0x1e
je 0x404ca8
ja 0x404cb2
shl eax, cl
or dword [edi], eax
jmp 0x404c6f
shl eax, cl
adc dword [edi + 4], 0
or dword [edi], eax
jmp 0x404c6f
sub cl, 0x20
shl eax, cl
or dword [edi + 4], eax
jmp 0x404c6f
dec esi
jmp 0x404c6f
or al, al
je 0x404c6f
or ebp, 0xffffffff
jmp 0x404c6f
dec esi
cmp esi, dword [0x417238]
jne 0x404ba4
pop esi
clc
ret
lodsd eax, dword [esi]
mov edx, eax
xor bl, bl
mov dword [edi], 0
mov dword [edi + 4], 0
sub edx, 1
jb 0x404cd6
movzx eax, byte [esi]
inc esi
mov cl, bl
cmp bl, 0x40
je 0x404d12
add bl, 8
cmp cl, 0x20
jae 0x404d08
shl eax, cl
or dword [edi], eax
jmp 0x404cea
sub cl, 0x20
shl eax, cl
or dword [edi + 4], eax
jmp 0x404cea
or ebp, 0xffffffff
jmp 0x404cea