Function at 0x434a20
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
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 0x434a53
mov esi, dword [edi + 0x1324]
test esi, esi
jns 0x434a59
mov esi, dword [edi + 0x1330]
push 0xfffffffffffffff5
mov dword [edi + 0x1880], esi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x434a83
mov dword [ebp - 0x84], 0x20000
push dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [edi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
mov byte [edi + 0x23a1], 1
cmp esi, 3
ja case.default.0x434aa6
jmp dword [esi*4 + 0x434f90]
call ebx
cdq
mov ecx, 0x1e
idiv ecx
lea esi, [edx + 1]
call ebx
mov ecx, dword [edi + 0x239c]
mov eax, 0x7de
mov dword [ebp - 0x84], eax
test ecx, ecx
je 0x434ae1
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x30]
mov dword [ebp - 0x84], eax
test eax, eax
je 0x434ae5
test esi, esi
jne 0x434afd
mov eax, 0x7de
mov dword [ebp - 0x84], eax
call ebx
cdq
mov ecx, 0x1e
idiv ecx
lea esi, [edx + 1]
mov ecx, dword [ebp - 0x84]
lea ebx, [esi - 1]
lea eax, [ecx - 0x7c6]
cmp eax, 0x1a
ja 0x434f66
cmp ebx, 0x1d
ja 0x434f66
cmp ecx, 0x7de
jne 0x434f66
push 0x78
lea eax, [ebp - 0x80]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x80]
push esi
push 0x7de
push str.__d_MC_State_Sprint__d_
push eax
call fcn.004011b0
lea esi, [ebx*8]
sub esi, ebx
lea eax, [ebp - 0x80]
push eax
lea eax, [edi + 0x138a]
push dword [esi*8 + 0x477bdc]
push str._s_n_n_s
push eax
call fcn.004011b0
push dword [esi*8 + 0x477be8]
lea eax, [edi + 0x1772]
push 0x439450
push eax
call fcn.004011b0
mov esi, dword [esi*8 + 0x477be4]
add esp, 0x2c
mov ecx, 0x467a78
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x434f30
test dl, dl
je 0x434f2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x434f30
add eax, 2
add ecx, 2
test dl, dl
jne 0x434ba0
xor eax, eax
jmp 0x434f35
call ebx
mov esi, eax
and esi, 0x80000007
jns 0x434be0
dec esi
or esi, 0xfffffff8
inc esi
inc esi
call ebx
mov ecx, dword [edi + 0x239c]
mov eax, 0x7de
mov dword [ebp - 0x84], eax
test ecx, ecx
je 0x434c08
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x30]
mov dword [ebp - 0x84], eax
test eax, eax
je 0x434c0c
test esi, esi
jne 0x434c29
mov eax, 0x7de
mov dword [ebp - 0x84], eax
call ebx
mov esi, eax
and esi, 0x80000007
jns 0x434c28
dec esi
or esi, 0xfffffff8
inc esi
inc esi
mov ecx, dword [ebp - 0x84]
lea ebx, [esi - 1]
lea eax, [ecx - 0x7c6]
cmp eax, 0x1a
ja 0x434f66
cmp ebx, 7
ja 0x434f66
cmp ecx, 0x7de
jne 0x434f66
push 0x78
lea eax, [ebp - 0x80]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x80]
push esi
push 0x7de
push str.__d_MC_State_Target__d_
push eax
call fcn.004011b0
lea esi, [ebx*8]
sub esi, ebx
lea eax, [ebp - 0x80]
push eax
lea eax, [edi + 0x138a]
push dword [esi*8 + 0x4775bc]
push str._s_n_n_s
push eax
call fcn.004011b0
push dword [esi*8 + 0x4775c8]
lea eax, [edi + 0x1772]
push 0x439450
push eax
call fcn.004011b0
mov esi, dword [esi*8 + 0x4775c4]
add esp, 0x2c
mov ecx, 0x467a78
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x434f30
test dl, dl
je 0x434f2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x434f30
add eax, 2
add ecx, 2
test dl, dl
jne 0x434cd0
xor eax, eax
jmp 0x434f35
call ebx
cdq
mov ecx, 0xa
idiv ecx
lea esi, [edx + 1]
call ebx
mov ecx, dword [edi + 0x239c]
mov eax, 0x7de
mov dword [ebp - 0x84], eax
test ecx, ecx
je 0x434d33
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x30]
mov dword [ebp - 0x84], eax
test eax, eax
je 0x434d37
test esi, esi
jne 0x434d4f
mov eax, 0x7de
mov dword [ebp - 0x84], eax
call ebx
cdq
mov ecx, 0xa
idiv ecx
lea esi, [edx + 1]
mov ecx, dword [ebp - 0x84]
lea ebx, [esi - 1]
lea eax, [ecx - 0x7c6]
cmp eax, 0x1a
ja 0x434f66
cmp ebx, 0x1d
ja 0x434f66
cmp ecx, 0x7de
jne 0x434f66
push 0x78
lea eax, [ebp - 0x80]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x80]
push esi
push 0x7de
push str.__d_MC_State_Sprint__d_
push eax
call fcn.004011b0
lea esi, [ebx*8]
sub esi, ebx
lea eax, [ebp - 0x80]
push eax
lea eax, [edi + 0x138a]
push dword [esi*8 + 0x47777c]
push str._s_n_n_s
push eax
call fcn.004011b0
push dword [esi*8 + 0x477788]
lea eax, [edi + 0x1772]
push 0x439450
push eax
call fcn.004011b0
mov esi, dword [esi*8 + 0x477784]
add esp, 0x2c
mov ecx, 0x467a78
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x434f30
test dl, dl
je 0x434f2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x434f30
add eax, 2
add ecx, 2
test dl, dl
jne 0x434df0
xor eax, eax
jmp 0x434f35
call ebx
cdq
mov ecx, 0x32
idiv ecx
lea esi, [edx + 1]
call ebx
mov ecx, dword [edi + 0x239c]
mov eax, 0x7de
mov dword [ebp - 0x84], eax
test ecx, ecx
je 0x434e53
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x30]
mov dword [ebp - 0x84], eax
test eax, eax
je 0x434e57
test esi, esi
jne 0x434e6f
mov eax, 0x7de
mov dword [ebp - 0x84], eax
call ebx
cdq
mov ecx, 0x32
idiv ecx
lea esi, [edx + 1]
mov ecx, dword [ebp - 0x84]
lea ebx, [esi - 1]
lea eax, [ecx - 0x7c6]
cmp eax, 0x1a
ja 0x434f66
cmp ebx, 0x31
ja 0x434f66
cmp ecx, 0x7de
jne 0x434f66
push 0x78
lea eax, [ebp - 0x80]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x80]
push esi
push 0x7de
push str.__d_MC_State_CDR__d_
push eax
call fcn.004011b0
lea esi, [ebx*8]
sub esi, ebx
lea eax, [ebp - 0x80]
push eax
lea eax, [edi + 0x138a]
push dword [esi*8 + 0x4779ac]
push str._s_n_n_s
push eax
call fcn.004011b0
push dword [esi*8 + 0x4779b8]
lea eax, [edi + 0x1772]
push 0x439450
push eax
call fcn.004011b0
mov esi, dword [esi*8 + 0x4779b4]
add esp, 0x2c
mov ecx, 0x467a78
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x434f30
test dl, dl
je 0x434f2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x434f30
add eax, 2
add ecx, 2
test dl, dl
jne 0x434f10
xor eax, eax
jmp 0x434f35
sbb eax, eax
or eax, 1
test eax, eax
je case.default.0x434aa6
push esi
lea eax, [edi + 0x21de]
mov byte [edi + 0x21dd], 1
push str.Images__s
push eax
call fcn.004011b0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043574b
mov esp, ebp
pop ebp
ret
push esi
push ecx
lea eax, [edi + 0x138a]
push str.Year__d_Num__d
push eax
call fcn.004011b0
add esp, 0x10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043574b
mov esp, ebp
pop ebp
ret