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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x52cb81
mov eax, dword fs:[0]
push eax
sub esp, 0x3e0
mov eax, dword [0x588790]
xor eax, esp
mov dword [esp + 0x3d8], eax
push ebx
push esi
push edi
mov eax, dword [0x588790]
xor eax, esp
push eax
lea eax, [esp + 0x3f0]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov esi, ecx
mov eax, dword [esi]
xor ebx, ebx
mov dword [esp + 0x18], edi
cmp eax, ebx
je 0x437cda
push eax
call fcn.0050567c
add esp, 4
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x437cea
push eax
call fcn.0050567c
add esp, 4
xor ecx, ecx
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov edx, dword [sym.zSignInstall.exe_class_DuiLib::CDuiString_DuiLib::CPaintManagerUI::m_pStrResourcePath]
push 0xffffffffffffffff
lea eax, [esp + 0x24]
mov word [esp + 0x24], cx
push edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
call sym.zSignInstall.exe_public:_void___thiscall_DuiLib::CDuiString::Assign_wchar_t_const___int_
mov dword [esp + 0x3f8], ebx
mov eax, dword [sym.zSignInstall.exe_class_DuiLib::CDuiString_DuiLib::CPaintManagerUI::m_pStrResourceZip]
cmp word [eax], bx
jne 0x437e74
cmp edi, ebx
je 0x437d36
push edi
lea ecx, [esp + 0x20]
call sym.zSignInstall.exe_public:_void___thiscall_DuiLib::CDuiString::Append_wchar_t_const__
mov eax, dword [esp + 0x1c]
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x437d9f
push 0x63
lea ecx, [esi + 0x10]
push str.Error_opening_file
push ecx
call fcn.0050754b
add esp, 0xc
push 0x31
push 0x53629c
add esi, 0xd8
push esi
call fcn.0050754b
add esp, 0xc
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x20]
cmp eax, edx
je 0x437d98
push eax
call fcn.0050567c
add esp, 4
xor al, al
jmp 0x43812e
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, ebx
jne 0x437de2
push 0x63
push str.File_is_empty
lea eax, [esi + 0x10]
push eax
call fcn.0050754b
add esp, 0xc
push 0x31
push 0x53629c
add esi, 0xd8
push esi
call fcn.0050754b
add esp, 0xc
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
cmp eax, ecx
jmp 0x437d8d
cmp edi, 0x400000
jbe 0x437df7
push 0x63
push str.File_too_large
lea edx, [esi + 0x10]
push edx
jmp 0x437db8
push edi
mov dword [esp + 0x18], ebx
call fcn.004ef56e
add esp, 4
push 0
lea edx, [esp + 0x18]
push edx
mov ebx, eax
mov eax, dword [esp + 0x20]
push edi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x14], edi
je 0x437e4b
push ebx
call fcn.00506929
add esp, 4
mov ecx, esi
call sym.zSignInstall.exe_public:_void___thiscall_DuiLib::CMarkup::destructor_void_
push 0x63
push str.Could_not_read_file
lea edx, [esi + 0x10]
push edx
jmp 0x437db8
mov edx, dword [ebp + 0xc]
push edx
push edi
push ebx
mov ecx, esi
call sym.zSignInstall.exe_public:_bool___thiscall_DuiLib::CMarkup::LoadFromMem_unsigned_char___unsigned_long_int__int_
push ebx
mov byte [esp + 0x17], al
call fcn.00506929
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x24]
add esp, 4
cmp eax, ecx
jmp 0x43811f
push eax
lea ecx, [esp + 0x20]
call sym.zSignInstall.exe_public:_void___thiscall_DuiLib::CDuiString::Append_wchar_t_const__
cmp byte [sym.zSignInstall.exe_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
je 0x437e92
mov edi, dword [sym.zSignInstall.exe_void__DuiLib::CPaintManagerUI::m_hResourceZip]
jmp 0x437f20
mov ecx, dword [sym.zSignInstall.exe_class_DuiLib::CDuiString_DuiLib::CPaintManagerUI::m_pStrResourceZipPwd]
push 0xffffffffffffffff
lea edx, [esp + 0x134]
xor eax, eax
push ecx
lea ecx, [esp + 0x134]
mov dword [esp + 0x134], edx
mov word [esp + 0x138], ax
call sym.zSignInstall.exe_public:_void___thiscall_DuiLib::CDuiString::Assign_wchar_t_const___int_
mov byte [esp + 0x3f8], 1
mov edx, dword [esp + 0x12c]
push edx
call fcn.0048eb70
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x1c]
push 2
push 0
push eax
mov edi, ebx
call fcn.00426ef0
add esp, 0xc
mov edi, eax
test ebx, ebx
je 0x437efb
push ebx
call fcn.00506929
add esp, 4
mov byte [esp + 0x3f8], 0
mov eax, dword [esp + 0x12c]
lea ecx, [esp + 0x130]
cmp eax, ecx
je 0x437f1e
push eax
call fcn.0050567c
add esp, 4
xor ebx, ebx
cmp edi, ebx
jne 0x437f34
push 0x63
push str.Error_opening_zip_file
lea edx, [esi + 0x10]
push edx
jmp 0x437db8
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
lea edx, [esp + 0xac]
xor eax, eax
push ecx
lea ecx, [esp + 0xac]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xac], edx
mov word [esp + 0xb0], ax
call sym.zSignInstall.exe_public:_void___thiscall_DuiLib::CDuiString::Assign_wchar_t_const___int_
push 0x537b74
push 0x536fac
lea ecx, [esp + 0xac]
mov byte [esp + 0x400], 2
call sym.zSignInstall.exe_public:_int___thiscall_DuiLib::CDuiString::Replace_wchar_t_const___wchar_t_const__
cmp dword [edi], 1
je 0x437f92
mov dword [0x58f510], 0x80000
jmp 0x437fb7
mov ecx, dword [esp + 0xa4]
mov edx, dword [edi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
lea ecx, [esp + 0x1bc]
call fcn.004267d0
mov dword [0x58f510], eax
cmp eax, ebx
je 0x438004
push 0x63
push str.Could_not_find_ziped_file
lea edx, [esi + 0x10]
push edx
call fcn.0050754b
add esp, 0xc
push 0x31
push 0x53629c
add esi, 0xd8
push esi
call fcn.0050754b
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0xb4]
add esp, 0xc
cmp eax, ecx
je 0x437d83
push eax
call fcn.0050567c
add esp, 4
jmp 0x437d83
mov eax, dword [esp + 0x3e0]
cmp eax, ebx
jne 0x43801c
push 0x63
push str.File_is_empty
lea eax, [esi + 0x10]
push eax
jmp 0x437fc2
cmp eax, 0x400000
jbe 0x438030
push 0x63
push str.File_too_large
lea eax, [esi + 0x10]
push eax
jmp 0x437fc2
push eax
call fcn.004ef56e
mov ecx, dword [esp + 0x3e4]
mov ebx, eax
mov eax, dword [esp + 0x18]
add esp, 4
push ebx
push eax
mov eax, edi
call fcn.00427380
add esp, 8
test eax, eax
je 0x4380cb
cmp eax, 0x600
je 0x4380cb
push ebx
call fcn.00506929
add esp, 4
cmp byte [sym.zSignInstall.exe_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
jne 0x438074
call fcn.00427400
push 0x63
lea ecx, [esi + 0x10]
push str.Could_not_unzip_file
push ecx
call fcn.0050754b
add esp, 0xc
push 0x31
push 0x53629c
add esi, 0xd8
push esi
call fcn.0050754b
mov eax, dword [esp + 0xb0]
lea edx, [esp + 0xb4]
add esp, 0xc
cmp eax, edx
je 0x437dd6
push eax
call fcn.0050567c
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x24]
add esp, 4
cmp eax, ecx
jmp 0x437d8d
cmp byte [sym.zSignInstall.exe_bool_DuiLib::CPaintManagerUI::m_bCachedResourceZip], 0
jne 0x4380d9
call fcn.00427400
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x3e0]
push edx
push eax
push ebx
mov ecx, esi
call sym.zSignInstall.exe_public:_bool___thiscall_DuiLib::CMarkup::LoadFromMem_unsigned_char___unsigned_long_int__int_
push ebx
mov byte [esp + 0x17], al
call fcn.00506929
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0xac]
add esp, 4
cmp eax, ecx
je 0x438115
push eax
call fcn.0050567c
add esp, 4
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x20]
cmp eax, edx
je 0x43812a
push eax
call fcn.0050567c
add esp, 4
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x3f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3d8]
xor ecx, esp
call fcn.00503edf
mov esp, ebp
pop ebp
ret 8