Function at 0x10074140
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
push 0
push 0x20
push 0x8000
push eax
lea eax, [ebp - 8]
mov dword [ebp - 0x14], ecx
push eax
call dword [sym.imp.MSVCR120.dll__wsopen_s]
add esp, 0x14
test eax, eax
je 0x10074189
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100944ae
mov esp, ebp
pop ebp
ret
push ebx
mov ebx, dword [sym.imp.MSVCR120.dll__read]
push 4
test esi, esi
jne 0x100741b9
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 8]
call ebx
add esp, 0xc
cmp eax, 4
je 0x100741ef
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100944ae
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x100741cf
lea ecx, [ebp - 0xc]
push ecx
push eax
call sym.HncFoundation.dll__HncGZRead_12
jmp 0x100741d8
mov eax, dword [ecx]
lea edx, [ebp - 0xc]
push edx
call dword [eax + 0x10]
cmp eax, 4
je 0x100741ef
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100944ae
mov esp, ebp
pop ebp
ret
push edi
push dword [ebp - 0xc]
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
test edi, edi
jne 0x10074222
call fcn.10046710
mov dword [eax + 4], edi
pop edi
pop ebx
mov dword [eax], 2
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100944ae
mov esp, ebp
pop ebp
ret
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, eax
push dword [ebp - 0xc]
push ecx
test esi, esi
jne 0x1007423d
push dword [ebp - 8]
call ebx
add esp, 0xc
jmp 0x10074256
mov edx, dword [esi + 4]
mov eax, dword [edx + 4]
test eax, eax
je 0x1007424f
push eax
call sym.HncFoundation.dll__HncGZRead_12
jmp 0x10074256
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x10]
push dword [ebp - 8]
mov esi, eax
call dword [sym.imp.MSVCR120.dll__close]
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp esi, dword [ebp - 0xc]
je 0x1007428a
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100944ae
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x10]
xor ebx, ebx
push eax
push 1
push edi
call dword [sym.imp.ole32.dll_CreateILockBytesOnHGlobal]
mov esi, eax
test esi, esi
je 0x100742d0
js 0x100742ac
jle 0x100742ac
movzx esi, si
or esi, 0x80070000
call fcn.10046710
push edi
mov dword [eax], esi
mov dword [eax + 4], ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
mov eax, ebx
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100944ae
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push 0x12
push 0
push dword [ebp - 0x10]
call dword [sym.imp.ole32.dll_StgOpenStorageOnILockBytes]
test eax, eax
je 0x100742fd
js 0x100742f5
jle 0x100742f5
movzx eax, ax
or eax, 0x80070000
push eax
call sym.HncFoundation.dll_HncSetError
jmp 0x1007433b
push dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
push 0
push 0
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov esi, eax
test esi, esi
je 0x1007432b
js 0x10074319
jg 0x1007431d
mov eax, esi
jmp 0x10074325
movzx eax, si
or eax, 0x80070000
push eax
call sym.HncFoundation.dll_HncSetError
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
xor ebx, ebx
test esi, esi
sete bl
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop ebx
xor ecx, ebp
pop esi
call fcn.100944ae
mov esp, ebp
pop ebp
ret