Function at 0x4049b0
Capabilities:
Parse credit card information

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
movzx eax, byte [esi]
test al, al
je 0x4049ea
movzx edx, byte [ebx]
test dl, dl
je case.0x404a06.1
cmp al, 0x25
je 0x4049f4
cmp al, dl
jne case.0x404a06.1
add esi, 1
add ebx, 1
movzx eax, byte [esi]
test al, al
jne 0x4049c6
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [esi + 1]
sub eax, 0x25
cmp al, 0x55
ja case.0x404a06.1
movzx eax, al
jmp dword [eax*4 + 0x414238]
add ebx, 1
movsx eax, byte [ebx]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_isspace]
test eax, eax
jne 0x404a10
add esi, 2
jmp 0x4049bf
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x48]
mov dword [edx + 0xc], 0
movzx ecx, byte [ebx]
add ebp, 0xc
lea eax, [ecx - 0x30]
cmp al, 9
ja case.0x404a06.1
mov edx, ebx
xor eax, eax
mov edi, ebx
lea esi, [esi]
movsx ecx, cl
add edx, 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp], eax
movzx ecx, byte [edx]
lea ebx, [ecx - 0x30]
cmp bl, 9
jbe 0x404a50
cmp edi, edx
je case.0x404a06.1
test eax, eax
jle case.0x404a06.1
cmp eax, 0x1f
jle 0x405026
lea esi, [esi]
xor ebx, ebx
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
call sub.msvcrt.dll__tzset
mov edx, dword [sym.imp.msvcrt.dll__daylight]
xor eax, eax
mov ecx, dword [esp + 0x48]
mov edx, dword [edx]
test edx, edx
setg al
mov dword [ecx + 0x20], eax
jmp 0x404a23
cmp dl, 0x25
jne case.0x404a06.1
add ebx, 1
jmp 0x404a23
mov edx, dword [esp + 0x48]
mov dword [edx + 0x18], 0xffffffff
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x414160
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405324
mov dword [esp + 8], 6
mov dword [esp + 4], ebx
mov dword [esp], str.Sunday
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40531b
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x41416b
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405314
mov dword [esp + 8], 6
mov dword [esp + 4], ebx
mov dword [esp], str.Monday
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4052fc
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x414176
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4052e4
mov dword [esp + 8], 7
mov dword [esp + 4], ebx
mov dword [esp], str.Tuesday
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40532f
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x414182
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405328
mov dword [esp + 8], 9
mov dword [esp + 4], ebx
mov dword [esp], str.Wednesday
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40536e
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x414190
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405364
mov dword [esp + 8], 8
mov dword [esp + 4], ebx
mov dword [esp], str.Thursday
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405358
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x41419d
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405351
mov dword [esp + 8], 6
mov dword [esp + 4], ebx
mov dword [esp], str.Friday
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405345
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141a8
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405410
mov dword [esp + 8], 8
mov dword [esp + 4], ebx
mov dword [esp], str.Saturday
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40541a
mov ecx, dword [esp + 0x48]
cmp dword [ecx + 0x18], 0xffffffff
je case.0x404a06.1
mov eax, 8
add ebx, eax
add esi, 2
jmp 0x4049bf
mov edx, dword [esp + 0x48]
mov dword [edx + 0x10], 0xffffffff
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141b5
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4052e0
mov dword [esp + 8], 7
mov dword [esp + 4], ebx
mov dword [esp], str.January
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4052d7
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141c1
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4052d0
mov dword [esp + 8], 8
mov dword [esp + 4], ebx
mov dword [esp], str.February
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4052b8
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141ce
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40533b
mov dword [esp + 8], 5
mov dword [esp + 4], ebx
mov dword [esp], str.March
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40539d
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141d8
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405393
mov dword [esp + 8], 5
mov dword [esp + 4], ebx
mov dword [esp], str.April
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405384
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141e2
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40537a
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141e2
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4053c5
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141e6
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4053bb
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [esp], str.June
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4053ac
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141ef
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4053d4
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [esp], str.July
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405401
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x4141f8
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4053f7
mov dword [esp + 8], 6
mov dword [esp + 4], ebx
mov dword [esp], str.August
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4053e8
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x414203
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4053de
mov dword [esp + 8], 9
mov dword [esp + 4], ebx
mov dword [esp], str.September
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40544c
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x414211
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405442
mov dword [esp + 8], 7
mov dword [esp + 4], ebx
mov dword [esp], str.October
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405433
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x41421d
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x405429
mov dword [esp + 8], 8
mov dword [esp + 4], ebx
mov dword [esp], str.November
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40545b
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], 0x41422a
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4052a0
mov dword [esp + 8], 8
mov dword [esp + 4], ebx
mov dword [esp], str.December
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x40546a
mov ecx, dword [esp + 0x48]
cmp dword [ecx + 0x10], 0xffffffff
jne 0x404c99
xor ebx, ebx
jmp 0x404a82
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x48]
mov dword [ecx + 8], 0
movzx ecx, byte [ebx]
add ebp, 8
lea eax, [ecx - 0x30]
cmp al, 9
ja case.0x404a06.1
mov edx, ebx
xor eax, eax
mov edi, ebx
nop
movsx ecx, cl
add edx, 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp], eax
movzx ecx, byte [edx]
lea ebx, [ecx - 0x30]
cmp bl, 9
jbe 0x404ff0
cmp edi, edx
je case.0x404a06.1
test eax, eax
js case.0x404a06.1
cmp eax, 0x17
nop
jg case.0x404a06.1
test edx, edx
je case.0x404a06.1
mov ebx, edx
add esi, 2
jmp 0x4049bf
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x48]
mov dword [edx + 4], 0
movzx ecx, byte [ebx]
add ebp, 4
lea eax, [ecx - 0x30]
cmp al, 9
ja case.0x404a06.1
mov edx, ebx
xor eax, eax
mov edi, ebx
nop
movsx ecx, cl
add edx, 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp], eax
movzx ecx, byte [edx]
lea ebx, [ecx - 0x30]
cmp bl, 9
jbe 0x405060
cmp edi, edx
je case.0x404a06.1
test eax, eax
js case.0x404a06.1
cmp eax, 0x3b
nop
jle 0x405026
xor ebx, ebx
jmp 0x404a82
mov ecx, dword [esp + 0x48]
mov dword [ecx], 0
movzx ecx, byte [ebx]
lea eax, [ecx - 0x30]
cmp al, 9
ja case.0x404a06.1
mov edi, dword [esp + 0x48]
mov edx, ebx
xor eax, eax
mov ebp, ebx
movsx ecx, cl
add edx, 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [edi], eax
movzx ecx, byte [edx]
lea ebx, [ecx - 0x30]
cmp bl, 9
jbe 0x4050c2
cmp ebp, edx
je case.0x404a06.1
test eax, eax
js case.0x404a06.1
cmp eax, 0x3c
nop
jle 0x405026
xor ebx, ebx
jmp 0x404a82
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x48]
mov dword [edx + 0x14], 0
movzx ecx, byte [ebx]
add edi, 0x14
lea eax, [ecx - 0x30]
cmp al, 9
ja case.0x404a06.1
mov edx, ebx
xor eax, eax
mov ebp, edi
mov dword [esp + 0x1c], ebx
lea esi, [esi]
lea eax, [eax + eax*4]
movsx ecx, cl
lea edi, [ecx + eax*2]
add edx, 1
lea eax, [edi - 0x30]
mov dword [ebp], eax
movzx ecx, byte [edx]
lea ebx, [ecx - 0x30]
cmp bl, 9
jbe 0x405130
mov ebx, dword [esp + 0x1c]
cmp ebx, edx
je case.0x404a06.1
cmp eax, 0x76b
jle case.0x404a06.1
cmp eax, 0x270f
jg case.0x404a06.1
test edx, edx
je case.0x404a06.1
mov ecx, dword [esp + 0x48]
sub edi, 0x79c
mov ebx, edx
mov dword [ecx + 0x14], edi
jmp 0x405030
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x48]
mov dword [edx + 0x10], 0
movzx ecx, byte [ebx]
add edi, 0x10
lea eax, [ecx - 0x30]
cmp al, 9
ja case.0x404a06.1
mov edx, ebx
xor eax, eax
mov ebp, edi
mov dword [esp + 0x1c], ebx
lea esi, [esi]
lea eax, [eax + eax*4]
movsx ecx, cl
lea edi, [ecx + eax*2]
add edx, 1
lea eax, [edi - 0x30]
mov dword [ebp], eax
movzx ecx, byte [edx]
lea ebx, [ecx - 0x30]
cmp bl, 9
jbe 0x4051c0
mov ebx, dword [esp + 0x1c]
cmp ebx, edx
je case.0x404a06.1
test eax, eax
jle case.0x404a06.1
cmp eax, 0xc
jg case.0x404a06.1
test edx, edx
lea esi, [esi]
je case.0x404a06.1
mov ecx, dword [esp + 0x48]
sub edi, 0x31
mov ebx, edx
mov dword [ecx + 0x10], edi
jmp 0x404a23
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x48]
mov dword [edx + 0x14], 0
movzx ecx, byte [ebx]
add edi, 0x14
lea eax, [ecx - 0x30]
cmp al, 9
ja case.0x404a06.1
mov edx, ebx
xor eax, eax
mov ebp, edi
mov dword [esp + 0x1c], ebx
lea eax, [eax + eax*4]
movsx ecx, cl
lea edi, [ecx + eax*2]
add edx, 1
lea eax, [edi - 0x30]
mov dword [ebp], eax
movzx ecx, byte [edx]
lea ebx, [ecx - 0x30]
cmp bl, 9
jbe 0x405241
mov ebx, dword [esp + 0x1c]
cmp ebx, edx
je case.0x404a06.1
test eax, eax
js case.0x404a06.1
cmp eax, 0x63
jg case.0x404a06.1
test edx, edx
lea esi, [esi]
je case.0x404a06.1
cmp eax, 0x44
mov ebx, edx
jg 0x404a23
mov ecx, dword [esp + 0x48]
add edi, 0x34
mov dword [ecx + 0x14], edi
jmp 0x404a23
mov eax, 0xb
mov edx, dword [esp + 0x48]
mov dword [edx + 0x10], eax
mov eax, 3
add ebx, eax
jmp 0x404ca0
mov eax, 8
mov edx, 1
mov ecx, dword [esp + 0x48]
add ebx, eax
mov dword [ecx + 0x10], edx
jmp 0x404ca0
mov eax, 1
jmp 0x4052a5
mov eax, 7
xor edx, edx
jmp 0x4052c2
xor eax, eax
jmp 0x4052a5
mov eax, 2
mov edx, dword [esp + 0x48]
mov dword [edx + 0x18], eax
mov eax, 3
add ebx, eax
jmp 0x404ca0
mov eax, 6
mov edx, 1
mov ecx, dword [esp + 0x48]
add ebx, eax
mov dword [ecx + 0x18], edx
jmp 0x404ca0
mov eax, 1
jmp 0x4052e9
mov eax, 6
xor edx, edx
jmp 0x405306
xor eax, eax
jmp 0x4052e9
mov eax, 3
jmp 0x4052e9
mov eax, 7
mov edx, 2
jmp 0x405306
mov eax, 2
jmp 0x4052a5
mov eax, 6
mov edx, 5
jmp 0x405306
mov eax, 5
jmp 0x4052e9
mov eax, 8
mov edx, 4
jmp 0x405306
mov eax, 4
jmp 0x4052e9
mov eax, 9
mov edx, 3
jmp 0x405306
mov eax, 4
jmp 0x4052a5
mov eax, 5
mov edx, 3
jmp 0x4052c2
mov eax, 3
jmp 0x4052a5
mov eax, 5
mov edx, 2
jmp 0x4052c2
mov eax, 4
mov edx, 5
jmp 0x4052c2
mov eax, 5
jmp 0x4052a5
mov eax, 3
mov edx, 4
jmp 0x4052c2
mov eax, 6
jmp 0x4052a5
mov eax, 8
jmp 0x4052a5
mov eax, 6
mov edx, 7
jmp 0x4052c2
mov eax, 7
jmp 0x4052a5
mov eax, 4
mov edx, 6
jmp 0x4052c2
mov eax, 6
jmp 0x4052e9
mov eax, 8
mov edx, 6
jmp 0x405306
mov eax, 0xa
jmp 0x4052a5
mov eax, 7
mov edx, 9
jmp 0x4052c2
mov eax, 9
jmp 0x4052a5
mov eax, 9
mov edx, 8
jmp 0x4052c2
mov eax, 8
mov edx, 0xa
jmp 0x4052c2
mov eax, 8
mov edx, 0xb
jmp 0x4052c2