Function at 0x401a90
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x428
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp ecx, 0x4e
je 0x401bc0
cmp ecx, 0x111
je 0x401cb0
cmp ecx, 0x110
jne 0x401cf8
push 0x191
push eax
call dword [sym.imp.user32.dll_GetDlgItem]
mov dword [0x408208], eax
xor edi, edi
lea ebx, [ebp - 0x212]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
jmp 0x401b21
push 0xff
push ebx
push 0x182
push dword [0x40820c]
call dword [sym.imp.user32.dll_LoadStringW]
push ebx
push 0
push 0x143
push dword [0x408208]
call esi
inc edi
cmp edi, 4
je 0x401cdf
cmp edi, 3
ja case.default.0x401b2a
jmp dword [edi*4 + section..rdata]
lea eax, [ebp - 0x434]
push eax
push 0
push 0
call dword [sym.imp.kernel32.dll_GetCPInfoExW]
mov ecx, 0xff
lea eax, [ebp - 0x210]
lea edx, [ebp - 0x41c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx]
test si, si
je 0x401b86
mov word [eax - 2], si
movzx esi, word [edx + 2]
test si, si
je 0x401b89
add ecx, 0xfffffffe
mov word [eax], si
add eax, 4
add edx, 4
cmp ecx, 1
ja 0x401b60
add eax, 0xfffffffe
mov word [eax], 0
mov esi, dword [sym.imp.user32.dll_SendMessageW]
jmp 0x401b07
push 0xff
push ebx
push 0x181
jmp 0x401afb
push 0xff
push ebx
push 0x180
jmp 0x401afb
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 8], 0xfffffda6
jne 0x401cf8
cmp dword [0x408f78], 0
je 0x401cf8
push eax
call dword [sym.imp.user32.dll_GetParent]
lea esi, [ebp - 0x434]
push esi
push 0x104
push 0x465
push eax
call dword [sym.imp.user32.dll_SendMessageW]
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push esi
call dword [sym.imp.kernel32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x401cf8
mov esi, eax
push 0
push eax
call dword [sym.imp.kernel32.dll_GetFileSize]
cmp eax, 0xffffffff
je 0x401d07
cmp eax, 0xff
jb 0x401c3e
mov eax, 0xff
lea ecx, [ebp - 0x14]
lea ebx, [ebp - 0x212]
push 0
push ecx
push eax
push ebx
push esi
call dword [sym.imp.kernel32.dll_ReadFile]
mov edi, eax
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
test edi, edi
je 0x401cf8
mov eax, dword [ebp - 0x14]
cmp eax, 3
jb 0x401c8f
movzx ecx, word [ebp - 0x212]
xor ecx, 0xbbef
movzx edx, byte [ebp - 0x210]
xor edx, 0xbf
or dx, cx
je 0x401d18
mov dword [ebp - 0x10], 0x288
lea ecx, [ebp - 0x10]
push ecx
push eax
push ebx
call dword [sym.imp.advapi32.dll_IsTextUnicode]
mov eax, dword [ebp - 0x10]
test al, 8
je 0x401d10
mov eax, 1
jmp 0x401d1d
cmp dword [ebp + 0x10], 0x10191
jne 0x401cf8
push 0
push 0
push 0x147
push dword [0x408208]
call dword [sym.imp.user32.dll_SendMessageW]
xor ecx, ecx
cmp eax, 0xffffffff
je 0x401cd7
mov ecx, eax
mov dword [0x408f74], ecx
jmp 0x401cf8
push 0
push dword [0x408f74]
push 0x14e
push dword [0x408208]
call dword [sym.imp.user32.dll_SendMessageW]
xor eax, eax
add esp, 0x428
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x401cf8
shr eax, 6
and eax, 2
jmp 0x401d1d
mov eax, 3
mov dword [0x408f74], eax
push 0
push eax
jmp 0x401ce7
push 0x4c
push str.programs_notepad_dialog.c
push str.0___bad_encoding_in_load_encoding_name_
call dword [sym.imp.ucrtbase.dll__assert]
nop
nop
nop
nop
nop
nop
nop