Function at 0x614e8e
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0xc]
movsx edx, byte [eax]
inc eax
mov dword [esi + 0x44], edx
mov dword [esi + 0xc], eax
call fcn.0061485b
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0xc]
movsx edx, byte [eax]
inc eax
mov dword [esi + 0x44], edx
mov dword [esi + 0xc], eax
cmp edx, 0x2c
je 0x614aa9
cmp edx, 0x7d
je 0x614aa9
mov ecx, esi
call fcn.0061485b
imul ecx, dword [esi + 0x4c], 0xa
add ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x4c], ecx
movsx edx, byte [eax]
inc eax
mov dword [esi + 0x44], edx
mov dword [esi + 0xc], eax
cmp ecx, 0xff
jge 0x614b1a
cmp edx, 0x2c
jne 0x614a73
lea edi, [esi + 0x50]
mov ebx, edi
jmp 0x614ab3
lea edi, [esi + 0x50]
mov ebx, edi
cmp edx, 0x2c
jne 0x614b0c
movsx edx, byte [eax]
inc eax
mov dword [esi + 0x44], edx
mov dword [esi + 0xc], eax
cmp edx, 0x7d
jne 0x614aca
mov dword [edi], 0xff
jmp 0x614b11
mov ecx, esi
call fcn.0061485b
mov dword [edi], eax
mov eax, dword [esi + 0xc]
movsx edx, byte [eax]
inc eax
mov dword [esi + 0x44], edx
mov dword [esi + 0xc], eax
jmp 0x614b05
mov ecx, esi
call fcn.0061485b
imul ecx, dword [ebx], 0xa
add ecx, eax
mov eax, dword [esi + 0xc]
mov dword [ebx], ecx
movsx edx, byte [eax]
inc eax
mov dword [esi + 0x44], edx
mov dword [esi + 0xc], eax
cmp ecx, 0xff
jge 0x614b1a
cmp edx, 0x7d
jne 0x614ae2
jmp 0x614b11
mov eax, dword [esi + 0x4c]
mov dword [edi], eax
pop edi
pop esi
mov eax, 0x109
pop ebx
ret
mov edx, str.numeric_overflow
mov ecx, esi
call fcn.0061480a
int3
push esi
push edi
mov esi, ecx
call fcn.0061486e
mov edx, dword [esi + 0x44]
test eax, eax
je 0x614fb6
cmp edx, 0x57
jg 0x614f0d
je 0x614f06
mov eax, edx
sub eax, 0x30
je 0x614ef8
sub eax, 0x12
je 0x614eee
dec eax
sub eax, 1
je 0x614ed0
sub eax, 0xf
jne 0x614f28
mov ecx, esi
call fcn.00614b27
mov ecx, esi
call fcn.00614ba8
jmp 0x614ee4
mov ecx, esi
call fcn.00614b27
push 0x39
push 0x30
pop edx
mov ecx, esi
call fcn.00614b5a
pop ecx
mov eax, 0x102
jmp 0x615047
mov eax, 0x107
jmp 0x615047
and dword [esi + 0x44], 0
mov eax, 0x100
jmp 0x615047
mov edi, 0x102
jmp 0x614f69
mov eax, edx
sub eax, 0x62
je 0x614fac
dec eax
sub eax, 1
je 0x614f8e
sub eax, 0xf
je 0x614f7e
sub eax, 4
je 0x614f64
cmp edx, 0x30
jl 0x614efc
cmp edx, 0x39
jg 0x614efc
mov edi, dword [esi + 0xc]
add edx, 0xffffffd0
push ebx
mov dword [esi + 0x44], edx
mov bl, byte [edi]
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x614f59
imul ecx, edx, 0xa
movsx eax, bl
add eax, 0xffffffd0
add eax, ecx
mov dword [esi + 0x44], eax
lea eax, [edi + 1]
mov dword [esi + 0xc], eax
mov eax, 0x108
pop ebx
jmp 0x615047
mov edi, 0x101
mov ecx, esi
call fcn.00614b27
mov ecx, esi
call fcn.00614bf0
mov eax, edi
jmp 0x615047
mov ecx, esi
call fcn.00614b27
mov ecx, esi
call fcn.00614ba8
jmp 0x614fa2
mov ecx, esi
call fcn.00614b27
push 0x39
push 0x30
pop edx
mov ecx, esi
call fcn.00614b5a
pop ecx
mov eax, 0x101
jmp 0x615047
mov eax, 0x106
jmp 0x615047
cmp edx, 0x2b
jg 0x614fd5
je 0x615045
cmp edx, 0xffffffff
je 0x615045
cmp edx, 0x24
je 0x615045
cmp edx, 0x29
je 0x615045
cmp edx, 0x2a
jmp 0x614fe7
cmp edx, 0x2e
je 0x615045
cmp edx, 0x3f
je 0x615045
cmp edx, 0x5e
je 0x615045
cmp edx, 0x7c
je 0x615045
cmp edx, 0x7b
jne 0x614ff7
pop edi
mov ecx, esi
pop esi
jmp 0x614a47
cmp edx, 0x5b
jne 0x615005
pop edi
mov ecx, esi
pop esi
jmp fcn.00614c25
cmp edx, 0x28
jne 0x614efc
mov ecx, dword [esi + 0xc]
cmp byte [ecx], 0x3f
jne 0x615040
mov al, byte [ecx + 1]
cmp al, 0x3a
jne 0x615024
mov eax, 0x103
jmp 0x615038
cmp al, 0x3d
jne 0x61502f
mov eax, 0x104
jmp 0x615038
cmp al, 0x21
jne 0x615040
mov eax, 0x105
add ecx, 2
mov dword [esi + 0xc], ecx
jmp 0x615047
push 0x28
pop eax
jmp 0x615047
mov eax, edx
pop edi
pop esi
ret