Function at 0x42df70
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd4
mov eax, dword [0x47700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
push esi
push edi
mov edi, ecx
call ebx
cmp byte [edi + 0x1319], 0
je 0x42dfa3
mov esi, dword [edi + 0x1324]
test esi, esi
jns 0x42dfa9
mov esi, dword [edi + 0x1330]
push 0xfffffffffffffff5
mov dword [edi + 0x1880], esi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x42dfd3
mov dword [ebp - 0xc8], 0x20000
push dword [ebp - 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [edi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp esi, 3
ja case.default.0x42dfef
jmp dword [esi*4 + 0x42e4d0]
call ebx
xorps xmm0, xmm0
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x44], xmm0
mov word [ebp - 0x28], 0
movq qword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0xc], 0
movq qword [ebp - 0x14], xmm0
mov word [ebp - 8], 0
call ebx
cdq
mov ecx, 0xfa
idiv ecx
lea esi, [edx + 0x3c]
mov dword [ebp - 0xc8], esi
call ebx
mov ecx, 0x163
cdq
sub ecx, esi
idiv ecx
lea eax, [esi - 1]
mov ecx, esi
lea ebx, [edx + 0xa]
add ebx, esi
mov esi, 1
cmp eax, 0x16c
ja 0x42e08b
xor eax, eax
cmp ecx, 0x1f
jle 0x42e08d
xor edx, edx
nop word [eax + eax]
sub ecx, dword [edx + 0x45ceec]
lea eax, [eax + 1]
lea edx, [eax*4]
inc esi
cmp ecx, dword [edx + 0x45ec2c]
jg 0x42e070
jmp 0x42e08d
mov ecx, esi
push dword [ecx*4 + 0x45cb98]
lea eax, [ebp - 0x44]
push dword [esi*4 + 0x45ceb8]
push str._s__s
push eax
call fcn.004011b0
lea eax, [ebx - 1]
add esp, 0x10
mov ecx, ebx
mov esi, 1
cmp eax, 0x16c
ja 0x42e0eb
xor eax, eax
cmp ebx, 0x1f
jle 0x42e0ed
xor edx, edx
nop word [eax + eax]
sub ecx, dword [edx + 0x45ceec]
lea eax, [eax + 1]
lea edx, [eax*4]
inc esi
cmp ecx, dword [edx + 0x45ec2c]
jg 0x42e0d0
jmp 0x42e0ed
mov ecx, esi
push dword [ecx*4 + 0x45cb98]
lea eax, [ebp - 0x24]
push dword [esi*4 + 0x45ceb8]
push str._s__s
push eax
call fcn.004011b0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [edi + 0x138a]
push str.How_many_days_are_between__s_and__s_
push eax
call fcn.004011b0
sub ebx, dword [ebp - 0xc8]
lea eax, [edi + 0x1772]
push ebx
push 0x439470
push eax
call fcn.004011b0
add esp, 0x2c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043574b
mov esp, ebp
pop ebp
ret
call ebx
xorps xmm0, xmm0
mov dword [ebp - 0x6c], 0
movups xmmword [ebp - 0x84], xmm0
mov word [ebp - 0x68], 0
movq qword [ebp - 0x74], xmm0
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x4c], 0
movq qword [ebp - 0x54], xmm0
mov word [ebp - 0x48], 0
call ebx
cdq
mov ecx, 0xfa
idiv ecx
lea esi, [edx + 0x3c]
mov dword [ebp - 0xc8], esi
call ebx
cdq
mov ecx, 0x163
sub ecx, esi
idiv ecx
lea eax, [edx + 0xa]
add eax, esi
mov dword [ebp - 0xcc], eax
call ebx
cdq
mov ecx, 7
idiv ecx
lea eax, [esi - 1]
mov ecx, esi
mov dword [ebp - 0xd0], edx
mov esi, 1
cmp eax, 0x16c
ja 0x42e1fb
xor eax, eax
cmp ecx, 0x1f
jle 0x42e1fd
xor edx, edx
nop word [eax + eax]
sub ecx, dword [edx + 0x45ceec]
lea eax, [eax + 1]
lea edx, [eax*4]
inc esi
cmp ecx, dword [edx + 0x45ec2c]
jg 0x42e1e0
jmp 0x42e1fd
mov ecx, esi
push dword [ecx*4 + 0x45cb98]
lea eax, [ebp - 0x84]
push dword [esi*4 + 0x45ceb8]
push str._s__s
push eax
call fcn.004011b0
mov ebx, dword [ebp - 0xcc]
add esp, 0x10
mov ecx, ebx
mov esi, 1
lea eax, [ebx - 1]
cmp eax, 0x16c
ja 0x42e25b
xor eax, eax
cmp ebx, 0x1f
jle 0x42e25d
xor edx, edx
nop
sub ecx, dword [edx + 0x45ceec]
lea eax, [eax + 1]
lea edx, [eax*4]
inc esi
cmp ecx, dword [edx + 0x45ec2c]
jg 0x42e240
jmp 0x42e25d
mov ecx, esi
push dword [ecx*4 + 0x45cb98]
lea eax, [ebp - 0x64]
push dword [esi*4 + 0x45ceb8]
push str._s__s
push eax
call fcn.004011b0
mov esi, dword [ebp - 0xd0]
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x84]
push dword [esi*4 + 0x45c6c4]
push eax
lea eax, [edi + 0x138a]
push str.If__s_is_a__s__what_day_of_the_week_is__s__nin_the_same_year__n_nType_the_first_three_letters_with_no_capitalization.
push eax
call fcn.004011b0
sub esi, dword [ebp - 0xc8]
mov ecx, 7
add esp, 0x24
lea eax, [ebx + esi]
cdq
idiv ecx
mov ecx, dword [edx*4 + 0x45c6c4]
movsx eax, byte [ecx + 2]
push eax
movsx eax, byte [ecx + 1]
push eax
movsx eax, byte [ecx]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
add esp, 4
push eax
lea eax, [edi + 0x1772]
push str._c_c_c
push eax
call fcn.004011b0
add esp, 0x14
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043574b
mov esp, ebp
pop ebp
ret
mov ecx, edi
call fcn.0042e4e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043574b
mov esp, ebp
pop ebp
ret
call ebx
xorps xmm0, xmm0
mov dword [ebp - 0xac], 0
movups xmmword [ebp - 0xc4], xmm0
mov word [ebp - 0xa8], 0
movq qword [ebp - 0xb4], xmm0
movups xmmword [ebp - 0xa4], xmm0
mov dword [ebp - 0x8c], 0
movq qword [ebp - 0x94], xmm0
mov word [ebp - 0x88], 0
call ebx
cdq
mov ecx, 0xfa
idiv ecx
lea esi, [edx + 0x3c]
mov dword [ebp - 0xc8], esi
call ebx
cdq
mov ecx, 0x163
sub ecx, esi
idiv ecx
lea eax, [edx + 0xa]
add eax, esi
mov dword [ebp - 0xd0], eax
call ebx
cdq
mov ecx, 7
idiv ecx
lea eax, [esi - 1]
mov ecx, esi
mov dword [ebp - 0xcc], edx
mov esi, 1
cmp eax, 0x16c
ja 0x42e3cb
xor eax, eax
cmp ecx, 0x1f
jle 0x42e3cd
xor edx, edx
nop
sub ecx, dword [edx + 0x45ceec]
lea eax, [eax + 1]
lea edx, [eax*4]
inc esi
cmp ecx, dword [edx + 0x45ec2c]
jg 0x42e3b0
jmp 0x42e3cd
mov ecx, esi
push dword [ecx*4 + 0x45cb98]
lea eax, [ebp - 0xc4]
push dword [esi*4 + 0x45ceb8]
push str._s__s
push eax
call fcn.004011b0
mov ebx, dword [ebp - 0xd0]
add esp, 0x10
mov ecx, ebx
mov esi, 1
lea eax, [ebx - 1]
cmp eax, 0x16c
ja 0x42e42b
xor eax, eax
cmp ebx, 0x1f
jle 0x42e42d
xor edx, edx
nop
sub ecx, dword [edx + 0x45ceec]
lea eax, [eax + 1]
lea edx, [eax*4]
inc esi
cmp ecx, dword [edx + 0x45ec2c]
jg 0x42e410
jmp 0x42e42d
mov ecx, esi
push dword [ecx*4 + 0x45cb98]
lea eax, [ebp - 0xa4]
push dword [esi*4 + 0x45ceb8]
push str._s__s
push eax
call fcn.004011b0
mov esi, dword [ebp - 0xcc]
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xc4]
push dword [esi*4 + 0x45c6c4]
push eax
lea eax, [edi + 0x138a]
push str.If__s_is_a__s__what_day_of_the_week_is__s___n_tType_the_first_two_letters__lower_case_.
push eax
call fcn.004011b0
sub esi, dword [ebp - 0xc8]
mov ecx, 7
add esp, 0x24
lea eax, [ebx + esi]
cdq
idiv ecx
mov eax, dword [edx*4 + 0x45c6c4]
push eax
lea eax, [edi + 0x1772]
push 0x439450
push eax
call fcn.004011b0
xorps xmm0, xmm0
add esp, 0xc
movups xmmword [edi + 0x1774], xmm0
mov dword [edi + 0x1784], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043574b
mov esp, ebp
pop ebp
ret