Function at 0x4d05f0
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
mov esi, eax
mov ebx, edx
sub esp, 0x5c
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x4d0800
test ebx, ebx
mov dword [esi], 0
je 0x4d07e2
cmp dword [0x4f7268], 3
jg 0x4d07c1
lea edi, [esp + 0x20]
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.004dcd20
test eax, eax
je 0x4d0a2d
mov dword [esp], edi
call fcn.004dcd90
test eax, eax
je 0x4d0984
mov dword [esp + 4], 0x4ff0c4
mov dword [esp], ebx
call sub.msvcrt.dll_fopen
test eax, eax
mov ebp, eax
je 0x4d0aea
mov dword [esp], edi
call fcn.004dd0b0
mov edi, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], edx
mov eax, dword [eax]
test eax, eax
jne 0x4d0753
xor edx, edx
cmp dword [esp + 0x18], edx
mov eax, 0x2000000
mov ecx, 0x2000000
jbe 0x4d0767
cmp dword [0x4f7268], 0
jle 0x4d06bf
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.zstd:
mov dword [esp + 0x18], ecx
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
mov ecx, dword [esp + 0x18]
cmp dword [0x4f7268], 4
jg 0x4d0c2e
cmp dword [0x4f7268], 0
mov dword [esp + 0x18], ecx
jle 0x4d0747
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x22
mov dword [esp + 4], str.error__i_:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0747
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Dictionary_file__s_is_too_large_____u_bytes_
add eax, 0x40
mov dword [esp + 0xc], ecx
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0747
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4ff164
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
mov dword [esp], 0x22
call sub.msvcrt.dll_exit
mov eax, dword [esp + 0x1c]
xor edx, edx
cmp dword [esp + 0x18], edx
mov ecx, dword [eax]
mov eax, ecx
ja 0x4d0696
cmp edi, eax
ja 0x4d0696
mov dword [esp], edi
mov dword [esp + 0x1c], edi
call sub.msvcrt.dll_malloc
test eax, eax
mov dword [esi], eax
je 0x4d0821
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov ecx, edi
xor ecx, eax
mov eax, dword [esp + 0x18]
or eax, ecx
jne 0x4d08c7
mov dword [esp], ebp
call sub.msvcrt.dll_fclose
mov eax, dword [esp + 0x1c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Loading__s_as_dictionary__n
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
jmp 0x4d0622
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x2e1
mov dword [esp + 4], 0x4ff030
mov dword [esp], str.bufferPtr___NULL
call fcn.004ec460
jmp 0x4d0607
cmp dword [0x4f7268], 0
jle 0x4d0842
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.zstd:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 4
jg 0x4d0c90
cmp dword [0x4f7268], 0
jle 0x4d0747
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x22
mov dword [esp + 4], str.error__i_:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0747
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4ff30d
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jg 0x4d072f
jmp 0x4d0747
cmp dword [0x4f7268], 0
jle 0x4d08e8
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.zstd:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 4
jg 0x4d0c63
cmp dword [0x4f7268], 0
jle 0x4d0978
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x23
mov dword [esp + 4], str.error__i_:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0978
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Error_reading_dictionary_file__s_:__s
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0978
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4ff164
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
mov dword [esp], 0x23
call sub.msvcrt.dll_exit
cmp dword [0x4f7268], 0
jle 0x4d09a5
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.zstd:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 4
jg 0x4d0c01
cmp dword [0x4f7268], 0
jle 0x4d0a21
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x20
mov dword [esp + 4], str.error__i_:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0a21
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Dictionary__s_must_be_a_regular_file.
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0a21
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4ff164
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
mov dword [esp], 0x20
call sub.msvcrt.dll_exit
cmp dword [0x4f7268], 0
jle 0x4d0a4e
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.zstd:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 4
jg 0x4d0bd4
cmp dword [0x4f7268], 0
jle 0x4d0ade
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x1f
mov dword [esp + 4], str.error__i_:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0ade
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Stat_failed_on_dictionary_file__s:__s
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0ade
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4ff164
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
mov dword [esp], 0x1f
call sub.msvcrt.dll_exit
cmp dword [0x4f7268], 0
jle 0x4d0b0b
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.zstd:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 4
jg 0x4d0ba7
cmp dword [0x4f7268], 0
jle 0x4d0b9b
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x21
mov dword [esp + 4], str.error__i_:
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0b9b
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Couldnt_open_dictionary__s:__s
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
cmp dword [0x4f7268], 0
jle 0x4d0b9b
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4ff164
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
mov dword [esp], 0x21
call sub.msvcrt.dll_exit
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0x2f2
mov dword [esp + 8], 0x4ff030
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
jmp 0x4d0b18
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0x2e8
mov dword [esp + 8], 0x4ff030
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
jmp 0x4d0a5b
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0x2ec
mov dword [esp + 8], 0x4ff030
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
jmp 0x4d09b2
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0x2fa
mov dword [esp + 8], 0x4ff030
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
mov dword [esp + 0x18], ecx
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
mov ecx, dword [esp + 0x18]
jmp 0x4d06cc
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0x302
mov dword [esp + 8], 0x4ff030
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
jmp 0x4d08f5
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0x2fe
mov dword [esp + 8], 0x4ff030
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
add eax, 0x40
mov dword [esp], eax
call fcn.004cfcb0
jmp 0x4d084f