Function at 0x10064cf0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edx, 0x80001b
movsx ecx, byte [ebx]
cmp ecx, 0x25
je 0x10064d4c
test cl, cl
je 0x10065252
lea eax, [ecx - 9]
inc ebx
cmp eax, 0x17
ja 0x10064fae
bt edx, eax
jae 0x10064fae
mov al, byte [esi]
test al, al
je 0x10064d04
movsx ecx, al
add ecx, 0xfffffff7
cmp ecx, 0x17
ja 0x10064d46
bt edx, ecx
jae 0x10064d46
mov al, byte [esi + 1]
inc esi
jmp 0x10064d2c
cmp al, 0xb
je 0x10064d40
jmp 0x10064d04
mov cl, byte [ebx + 1]
add ebx, 2
xor edi, edi
movsx eax, cl
cmp eax, 0x53
jg 0x10064d81
cmp eax, 0x49
jg 0x10064daa
cmp eax, 0x25
je 0x10065047
cmp eax, 0x42
je 0x10064e7a
cmp eax, 0x48
je 0x10064fc7
jmp 0x10065254
cmp eax, 0x63
jg 0x10064e12
cmp eax, 0x54
je 0x10065058
cmp eax, 0x59
je 0x1006507d
cmp eax, 0x62
je 0x10064e7a
jmp 0x10065254
cmp eax, 0x4a
je 0x10064fc7
cmp eax, 0x4d
mov dword [ebp - 0x14], ebx
je 0x100650a2
cmp eax, 0x53
jne 0x10065254
movsx edx, byte [esi]
add edx, 0xffffffd0
cmp edx, 9
ja 0x10065254
movsx ecx, byte [esi + 1]
lea ebx, [edx + edx*4]
lea eax, [ecx - 0x30]
lea ecx, [ecx + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmp eax, 9
cmova ecx, edx
cmp ecx, 0x3b
ja 0x10065254
mov edi, dword [ebp + 0x10]
lea edx, [esi + 1]
add esi, 2
cmp eax, 9
cmova esi, edx
mov edx, 0x80001b
mov dword [edi], ecx
jmp 0x10064d04
cmp eax, 0x6d
je 0x100650ed
cmp eax, 0x68
je 0x10064e7a
cmp eax, 0x64
jne 0x10065254
movsx edx, byte [esi]
add edx, 0xffffffd0
cmp edx, 9
ja 0x10065254
movsx ecx, byte [esi + 1]
mov dword [ebp - 0x14], ebx
lea ebx, [edx + edx*4]
lea eax, [ecx - 0x30]
lea ecx, [ecx + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmp eax, 9
cmova ecx, edx
lea edx, [ecx - 1]
cmp edx, 0x1e
ja 0x10065254
mov edi, dword [ebp + 0x10]
lea edx, [esi + 1]
add esi, 2
cmp eax, 9
cmova esi, edx
mov edx, 0x80001b
mov dword [edi + 0xc], ecx
jmp 0x10064d04
push 3
push str.january
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
mov dword [ebp - 0x14], ebx
je 0x10065036
push 3
push str.february
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x1006513c
push 3
push str.march
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x10065163
push 3
push str.april
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x10065174
push 3
push 0x10230e53
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x1006519c
push 3
push str.june
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x100651c3
push 3
push str.july
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x100651d1
push 3
push str.august
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x100651df
push 3
push str.september
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x100651ed
push 3
push str.october
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x100651fb
push 3
push str.november
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
je 0x10065209
push 3
push str.december
push esi
call fcn.10059610
add esp, 0xc
test eax, eax
jne 0x1006525e
mov ebx, str.december
mov dword [ebp - 0x10], 0xb
jmp 0x10065215
mov al, byte [esi]
cmp cl, 0xb
je 0x10064d2c
cmp al, cl
jne 0x1006525e
inc esi
jmp 0x10064d04
xor eax, eax
cmp cl, 0x48
mov edx, 0x7fffffff
mov ecx, 0x17
mov dword [ebp - 0x14], ebx
setne al
cmove edx, ecx
mov ecx, esi
lea edi, [eax + eax + 2]
lea eax, [esi + eax*2 + 2]
mov dword [ebp - 0x10], eax
xor eax, eax
movsx ebx, byte [ecx]
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x10065006
lea eax, [eax + eax*4]
inc ecx
dec edi
lea eax, [ebx + eax*2]
jne 0x10064fee
mov ecx, dword [ebp - 0x10]
xor edi, edi
cmp ecx, esi
je 0x10065254
cmp eax, edx
ja 0x10065254
mov ebx, dword [ebp - 0x14]
cmp eax, 0xffffffff
je 0x10065254
mov edx, dword [ebp + 0x10]
mov esi, ecx
mov dword [edx + 8], eax
mov edx, 0x80001b
jmp 0x10064d04
mov ebx, str.january
mov dword [ebp - 0x10], 0
jmp 0x10065215
cmp byte [esi], 0x25
lea esi, [esi + 1]
je 0x10064d04
jmp 0x10065254
push dword [ebp + 0x10]
push 0x10230764
push esi
call fcn.10064cf0
mov edx, 0x80001b
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x10064d04
jmp 0x10065254
movsx eax, byte [esi]
add eax, 0xffffffd0
cmp eax, 9
ja 0x10065254
movsx ecx, byte [esi + 1]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x1006514c
inc esi
jmp 0x100651b3
movsx edx, byte [esi]
add edx, 0xffffffd0
cmp edx, 9
ja 0x10065254
movsx ecx, byte [esi + 1]
lea ebx, [edx + edx*4]
lea eax, [ecx - 0x30]
lea ecx, [ecx + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmp eax, 9
cmova ecx, edx
cmp ecx, 0x3b
ja 0x10065254
mov edi, dword [ebp + 0x10]
lea edx, [esi + 1]
add esi, 2
cmp eax, 9
cmova esi, edx
mov edx, 0x80001b
mov dword [edi + 4], ecx
jmp 0x10064d04
movsx edx, byte [esi]
add edx, 0xffffffd0
cmp edx, 9
ja 0x10065254
movsx ecx, byte [esi + 1]
mov dword [ebp - 0x14], ebx
lea ebx, [edx + edx*4]
lea eax, [ecx - 0x30]
lea ecx, [ecx + ebx*2 - 0x30]
mov ebx, dword [ebp - 0x14]
cmp eax, 9
cmova ecx, edx
dec ecx
cmp ecx, 0xb
ja 0x10065254
mov edi, dword [ebp + 0x10]
lea edx, [esi + 1]
add esi, 2
cmp eax, 9
cmova esi, edx
mov edx, 0x80001b
mov dword [edi + 0x10], ecx
jmp 0x10064d04
xor eax, eax
mov ebx, str.february
inc eax
mov dword [ebp - 0x10], eax
jmp 0x10065215
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
movsx ecx, byte [esi + 2]
add ecx, 0xffffffd0
cmp ecx, 9
jbe 0x10065185
add esi, 2
jmp 0x100651b3
mov ebx, str.march
mov dword [ebp - 0x10], 2
jmp 0x10065215
mov ebx, str.april
mov dword [ebp - 0x10], 3
jmp 0x10065215
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
movsx ecx, byte [esi + 3]
add ecx, 0xffffffd0
cmp ecx, 9
jbe 0x100651aa
add esi, 3
jmp 0x100651b3
mov ebx, 0x10230e53
mov dword [ebp - 0x10], 4
jmp 0x10065215
lea eax, [eax + eax*4]
add esi, 4
lea eax, [ecx + eax*2]
mov ecx, dword [ebp + 0x10]
add eax, 0xfffff894
mov dword [ecx + 0x14], eax
jmp 0x10064d04
mov ebx, str.june
mov dword [ebp - 0x10], 5
jmp 0x10065215
mov ebx, str.july
mov dword [ebp - 0x10], 6
jmp 0x10065215
mov ebx, str.august
mov dword [ebp - 0x10], 7
jmp 0x10065215
mov ebx, str.september
mov dword [ebp - 0x10], 8
jmp 0x10065215
mov ebx, str.october
mov dword [ebp - 0x10], 9
jmp 0x10065215
mov ebx, str.november
mov dword [ebp - 0x10], 0xa
add ebx, 3
push ebx
call fcn.101f2a10
add esp, 4
add esi, 3
test eax, eax
jle 0x1006523c
mov edi, eax
push eax
push ebx
push esi
call fcn.10059610
add esp, 0xc
add edi, esi
test eax, eax
cmove esi, edi
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
mov edx, 0x80001b
mov dword [eax + 0x10], ecx
jmp 0x10064d04
mov edi, esi
mov eax, edi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
jmp 0x10065254