Function at 0x10196430
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edx, 0x80001b
movzx eax, byte [ebx]
cmp eax, 0x25
je 0x1019648f
test eax, eax
je 0x101968ad
inc ebx
movsx eax, al
lea ecx, [eax - 9]
cmp ecx, 0x17
ja 0x101966ac
bt edx, ecx
jae 0x101966ac
mov al, byte [esi]
test al, al
je 0x10196444
movsx ecx, al
add ecx, 0xfffffff7
cmp ecx, 0x17
ja 0x10196489
bt edx, ecx
jae 0x10196489
mov al, byte [esi + 1]
inc esi
jmp 0x1019646f
cmp al, 0xb
je 0x10196483
jmp 0x10196444
mov al, byte [ebx + 1]
add ebx, 2
movsx ecx, al
xor edi, edi
cmp ecx, 0x53
jg 0x101964c8
cmp ecx, 0x49
jg 0x10196540
cmp ecx, 0x25
je 0x10196751
cmp ecx, 0x42
je 0x101965bd
cmp ecx, 0x48
je 0x1019666d
jmp 0x101968af
cmp ecx, 0x63
jle 0x101965ab
cmp ecx, 0x6d
je 0x10196762
cmp ecx, 0x68
je 0x101965bd
cmp ecx, 0x64
jne 0x101968af
movsx edx, byte [esi]
lea eax, [edx - 0x3a]
cmp eax, 0xfffffff6
jb 0x101968af
add edx, 0xffffffd0
movsx ecx, byte [esi + 1]
lea eax, [ecx - 0x3a]
cmp eax, 0xfffffff6
mov dword [ebp - 0x14], ebx
lea ebx, [edx + edx*4]
lea ecx, [ecx + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmovb ecx, edx
lea edx, [ecx - 0x20]
cmp edx, 0xffffffe1
jb 0x101968af
lea edx, [esi + 1]
add esi, 2
cmp eax, 0xfffffff6
cmovb esi, edx
mov edx, 0x80001b
mov eax, dword [ebp + 0x10]
mov dword [eax + 0xc], ecx
jmp 0x10196444
cmp ecx, 0x4a
je 0x1019666d
cmp ecx, 0x4d
mov dword [ebp - 0x14], ebx
je 0x101967b7
cmp ecx, 0x53
jne 0x101968af
movsx edx, byte [esi]
lea eax, [edx - 0x3a]
cmp eax, 0xfffffff6
jb 0x101968af
add edx, 0xffffffd0
movsx ecx, byte [esi + 1]
lea eax, [ecx - 0x3a]
cmp eax, 0xfffffff6
lea ebx, [edx + edx*4]
lea ecx, [ecx + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmovb ecx, edx
cmp ecx, 0x3b
ja 0x101968af
lea edx, [esi + 1]
add esi, 2
cmp eax, 0xfffffff6
cmovb esi, edx
mov edx, 0x80001b
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
jmp 0x10196444
cmp ecx, 0x59
je 0x10196805
cmp ecx, 0x62
jne 0x10196968
push 3
push str.january
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
mov dword [ebp - 0x14], ebx
je 0x101966c2
push 3
push str.february
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x10196839
push 3
push str.march
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x10196863
push 3
push str.april
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x10196874
push 3
push 0x102d1743
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x1019689c
push 3
push str.june
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x10196957
push 3
push str.july
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
jne 0x101968d2
jmp 0x10196996
mov dword [ebp - 0x14], ebx
xor ecx, ecx
mov byte [ebp - 0x10], al
cmp al, 0x48
setne cl
lea ebx, [ecx + ecx]
add ebx, 2
lea eax, [esi + ecx*2]
add eax, 2
mov dword [ebp - 0x18], eax
xor ecx, ecx
xor edi, edi
movsx edx, byte [esi + edi]
lea eax, [edx - 0x3a]
cmp eax, 0xfffffff6
jb 0x10196710
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*2]
add ecx, 0xffffffd0
inc edi
cmp ebx, edi
jne 0x1019668d
mov edx, dword [ebp - 0x18]
jmp 0x10196714
cmp al, 0xb
je 0x1019646d
cmp byte [esi], al
jne 0x101969b8
inc esi
jmp 0x10196444
mov ebx, str.january
mov dword [ebp - 0x10], 0
add ebx, 3
push ebx
call fcn.10146360
add esp, 4
add esi, 3
test eax, eax
jle 0x101966fa
mov edi, eax
push eax
push ebx
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
mov eax, 0
cmovne edi, eax
add esi, edi
mov ebx, dword [ebp - 0x14]
mov edx, 0x80001b
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x10], ecx
jmp 0x10196444
add edi, esi
mov edx, edi
xor edi, edi
cmp edx, esi
mov ebx, dword [ebp - 0x14]
mov al, byte [ebp - 0x10]
je 0x101968af
mov esi, edx
cmp al, 0x48
sete al
cmp ecx, 0x18
setge dl
test ecx, ecx
js 0x101968af
and al, dl
mov edx, 0x80001b
jne 0x101968af
mov eax, dword [ebp + 0x10]
mov dword [eax + 8], ecx
jmp 0x10196444
cmp byte [esi], 0x25
lea esi, [esi + 1]
je 0x10196444
jmp 0x101968af
movsx edx, byte [esi]
lea eax, [edx - 0x3a]
cmp eax, 0xfffffff6
jb 0x101968af
add edx, 0xffffffd0
movsx eax, byte [esi + 1]
lea ecx, [eax - 0x3a]
cmp ecx, 0xfffffff6
mov dword [ebp - 0x14], ebx
lea ebx, [edx + edx*4]
lea eax, [eax + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmovb eax, edx
lea edx, [eax - 0xd]
cmp edx, 0xfffffff4
jb 0x101968af
lea edx, [esi + 1]
add esi, 2
cmp ecx, 0xfffffff6
cmovb esi, edx
mov edx, 0x80001b
dec eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x10], eax
jmp 0x10196444
movsx edx, byte [esi]
lea eax, [edx - 0x3a]
cmp eax, 0xfffffff6
jb 0x101968af
add edx, 0xffffffd0
movsx ecx, byte [esi + 1]
lea eax, [ecx - 0x3a]
cmp eax, 0xfffffff6
lea ebx, [edx + edx*4]
lea ecx, [ecx + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmovb ecx, edx
cmp ecx, 0x3b
ja 0x101968af
lea edx, [esi + 1]
add esi, 2
cmp eax, 0xfffffff6
cmovb esi, edx
mov edx, 0x80001b
mov eax, dword [ebp + 0x10]
mov dword [eax + 4], ecx
jmp 0x10196444
movsx eax, byte [esi]
lea ecx, [eax - 0x3a]
cmp ecx, 0xfffffff6
jb 0x101968af
add eax, 0xffffffd0
movsx ecx, byte [esi + 1]
lea edx, [ecx - 0x3a]
cmp edx, 0xfffffff6
jae 0x10196849
inc esi
mov edx, 0x80001b
add eax, 0xfffff894
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x14], eax
jmp 0x10196444
mov ebx, str.february
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
jmp 0x101966ce
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
add eax, 0xffffffd0
movsx ecx, byte [esi + 2]
lea edx, [ecx - 0x3a]
cmp edx, 0xfffffff6
jae 0x10196885
add esi, 2
jmp 0x10196824
mov ebx, str.march
mov dword [ebp - 0x10], 2
jmp 0x101966ce
mov ebx, str.april
mov dword [ebp - 0x10], 3
jmp 0x101966ce
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
add eax, 0xffffffd0
movsx ecx, byte [esi + 3]
lea edx, [ecx - 0x3a]
cmp edx, 0xfffffff6
jae 0x101968c1
jmp 0x101968b9
mov ebx, 0x102d1743
mov dword [ebp - 0x10], 4
jmp 0x101966ce
mov edi, esi
mov eax, edi
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
add esi, 3
jmp 0x10196824
add esi, 4
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
add eax, 0xffffffd0
jmp 0x10196824
push 3
push str.august
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x101969a7
push 3
push str.september
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x101969bf
push 3
push str.october
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x101969d0
push 3
push str.november
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
je 0x101969e1
push 3
push str.december
push esi
call fcn.10190090
add esp, 0xc
test eax, eax
jne 0x101969b8
mov ebx, str.december
mov dword [ebp - 0x10], 0xb
jmp 0x101966ce
mov ebx, str.june
mov dword [ebp - 0x10], 5
jmp 0x101966ce
cmp ecx, 0x54
jne 0x101968af
push dword [ebp + 0x10]
push 0x102d1048
push esi
call fcn.10196430
mov edx, 0x80001b
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x10196444
jmp 0x101968af
mov ebx, str.july
mov dword [ebp - 0x10], 6
jmp 0x101966ce
mov ebx, str.august
mov dword [ebp - 0x10], 7
jmp 0x101966ce
xor edi, edi
jmp 0x101968af
mov ebx, str.september
mov dword [ebp - 0x10], 8
jmp 0x101966ce
mov ebx, str.october
mov dword [ebp - 0x10], 9
jmp 0x101966ce
mov ebx, str.november
mov dword [ebp - 0x10], 0xa
jmp 0x101966ce