Function at 0x4157e0
Capabilities:
Parse credit card information

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, eax
mov ebp, dword [edx]
mov edi, edx
mov ebx, ebp
nop
mov cl, byte [ebx]
mov al, cl
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
jbe 0x41586f
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x415860
cmp cl, 0x2d
je 0x415860
cmp cl, 0x2e
je 0x415860
cmp cl, 0x5f
je 0x415860
cmp cl, 0x7e
je 0x415860
cmp cl, 0x25
je 0x415910
cmp cl, 0x24
je 0x415860
cmp cl, 0x21
je 0x415860
cmp cl, 0x26
je 0x415860
cmp cl, 0x28
je 0x415860
cmp cl, 0x29
je 0x415860
cmp cl, 0x2a
je 0x415860
cmp cl, 0x2b
je 0x415860
cmp cl, 0x2c
je 0x415860
cmp cl, 0x3b
je 0x415860
cmp cl, 0x3d
je 0x415860
cmp cl, 0x3a
jne 0x41587c
lea esi, [esi]
inc ebx
mov cl, byte [ebx]
mov al, cl
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x4157fe
cmp cl, 0x25
jne 0x415860
add ebx, 3
jmp 0x4157f0
cmp cl, 0x40
jne 0x415936
test esi, esi
je 0x415b12
mov eax, dword [esi + 0x10]
test eax, eax
je 0x41589d
mov dword [esp], eax
call dword [0x6713e0]
test byte [esi + 0x24], 2
je 0x415b1a
mov eax, ebx
mov dword [esp], ebp
sub eax, ebp
mov dword [esp + 4], eax
call fcn.00445280
mov dword [esi + 0x10], eax
mov al, byte [ebx]
cmp al, 0x40
je 0x415b12
mov ebp, dword [edi]
mov dword [esp + 0x1c], ebp
mov al, byte [ebp]
cmp al, 0x5b
jne 0x415941
lea ecx, [ebp + 1]
mov dword [esp + 0x1c], ecx
mov dl, byte [ebp + 1]
test dl, dl
jne 0x4158ec
jmp 0x4158f1
inc ecx
mov dword [esp + 0x1c], ecx
mov dl, byte [ecx]
test dl, dl
je 0x4158f1
cmp dl, 0x5d
jne 0x4158e1
mov eax, 1
cmp dl, 0x5d
jne 0x415a67
inc ecx
mov dword [esp + 0x1c], ecx
jmp 0x415a0c
mov al, byte [ebx + 1]
lea edx, [eax - 0x61]
cmp dl, 5
jbe 0x4159c7
lea edx, [eax - 0x30]
cmp dl, 9
jbe 0x4159c7
sub eax, 0x41
cmp al, 5
jbe 0x4159c7
mov dword [esp + 0x1c], ebp
mov al, byte [ebp]
cmp al, 0x5b
je 0x4158d1
lea edx, [eax - 0x30]
cmp dl, 9
jbe 0x415b48
mov cl, al
mov edx, ebp
and ecx, 0xffffffdf
sub ecx, 0x41
cmp cl, 0x19
jbe 0x4159b8
lea esi, [esi]
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x4159b8
cmp al, 0x2d
je 0x4159a4
cmp al, 0x2e
je 0x4159a4
cmp al, 0x5f
je 0x4159a4
cmp al, 0x7e
je 0x4159a4
cmp al, 0x25
je 0x4159f2
cmp al, 0x24
je 0x4159a4
cmp al, 0x21
je 0x4159a4
cmp al, 0x26
je 0x4159a4
cmp al, 0x28
je 0x4159a4
cmp al, 0x29
je 0x4159a4
cmp al, 0x2a
je 0x4159a4
cmp al, 0x2b
je 0x4159a4
cmp al, 0x2c
je 0x4159a4
cmp al, 0x3b
je 0x4159a4
cmp al, 0x3d
jne 0x415a0c
inc edx
mov dword [esp + 0x1c], edx
mov al, byte [edx]
mov cl, al
and ecx, 0xffffffdf
sub ecx, 0x41
cmp cl, 0x19
ja 0x415960
cmp al, 0x25
jne 0x4159a4
add edx, 3
mov dword [esp + 0x1c], edx
mov al, byte [edx]
jmp 0x4159ab
mov al, byte [ebx + 2]
lea edx, [eax - 0x61]
cmp dl, 5
jbe 0x415874
lea edx, [eax - 0x30]
cmp dl, 9
jbe 0x415874
sub eax, 0x41
cmp al, 5
jbe 0x415874
jmp 0x415936
mov al, byte [edx + 1]
lea ecx, [eax - 0x61]
cmp cl, 5
jbe 0x415a70
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x415a70
sub eax, 0x41
cmp al, 5
jbe 0x415a70
test esi, esi
je 0x415a5a
mov eax, dword [esi + 8]
test eax, eax
je 0x415a20
mov dword [esp], eax
call dword [0x6713e0]
mov eax, dword [esi + 0xc]
mov dword [esi + 8], 0
test eax, eax
je 0x415a37
mov dword [esp], eax
call dword [0x6713e0]
mov edx, dword [esp + 0x1c]
cmp edx, ebp
je 0x415b3c
test byte [esi + 0x24], 2
je 0x415aa2
sub edx, ebp
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.00445280
mov dword [esi + 0xc], eax
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0x3a
je 0x415ac4
mov dword [edi], edx
xor eax, eax
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov al, byte [edx + 2]
lea ecx, [eax - 0x61]
cmp cl, 5
jbe 0x4159bc
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x4159bc
sub eax, 0x41
cmp al, 5
ja 0x415a0c
add edx, 3
mov dword [esp + 0x1c], edx
jmp 0x4159c3
sub edx, ebp
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.004155e0
mov edx, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
cmp byte [edx], 0x3a
jne 0x415a63
mov al, byte [edx + 1]
lea ecx, [edx + 1]
lea ebx, [eax - 0x30]
mov eax, 1
cmp bl, 9
ja 0x415a67
test esi, esi
je 0x415aff
mov dword [esi + 0x14], 0
movsx eax, byte [edx + 1]
lea edx, [eax - 0x30]
cmp dl, 9
ja 0x415b0b
test esi, esi
je 0x415aff
mov edx, dword [esi + 0x14]
lea edx, [edx + edx*4]
lea eax, [eax + edx*2 - 0x30]
mov dword [esi + 0x14], eax
inc ecx
movsx eax, byte [ecx]
lea edx, [eax - 0x30]
cmp dl, 9
jbe 0x415aee
mov edx, ecx
jmp 0x415a63
lea ebp, [ebx + 1]
jmp 0x415936
mov eax, ebx
mov dword [esp + 8], 0
sub eax, ebp
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.004155e0
mov dword [esi + 0x10], eax
mov al, byte [ebx]
jmp 0x4158bc
mov dword [esi + 0xc], 0
jmp 0x415a5e
lea eax, [esp + 0x1c]
call fcn.00414150
test eax, eax
je 0x415b61
mov dword [esp + 0x1c], ebp
mov al, byte [ebp]
jmp 0x41594d
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x2e
jne 0x415b55
inc eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
call fcn.00414150
test eax, eax
jne 0x415b55
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x2e
jne 0x415b55
lea eax, [esp + 0x1c]
call fcn.00414150
test eax, eax
jne 0x415b55
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x2e
jne 0x415b55
lea eax, [esp + 0x1c]
call fcn.00414150
test eax, eax
jne 0x415b55
jmp 0x415a0c