Function at 0x10003e90
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [esp + 8]
push esi
mov esi, dword [esp + 8]
test esi, esi
push edi
mov edi, eax
je 0x100040cc
cmp byte [esi + 0x5c], 0x72
jne 0x100040cc
mov ecx, dword [esi + 0x38]
or edx, 0xffffffff
cmp ecx, 0xfffffffd
je 0x100040c7
cmp ecx, edx
je 0x100040c7
cmp ecx, 1
jne 0x10003ecf
pop edi
xor eax, eax
pop esi
ret
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
test ebp, ebp
mov ebx, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebp
je 0x10003f0f
cmp dword [esi + 0x6c], edx
je 0x10003f0f
mov cl, byte [esi + 0x6c]
mov byte [eax], cl
add dword [esi + 0x10], edx
lea ebx, [eax + 1]
mov eax, 1
add dword [esi + 0xc], eax
add dword [esi + 0x68], eax
cmp dword [esi + 0x70], 0
mov dword [esi + 0x6c], edx
mov edi, ebx
je 0x10003f0f
pop ebp
pop ebx
pop edi
mov dword [esi + 0x38], eax
pop esi
ret
cmp dword [esi + 0x10], 0
je 0x1000408c
lea esp, [esp]
cmp dword [esi + 0x58], 0
jne 0x10004023
cmp dword [esi + 4], 0
jne 0x10003f7f
cmp dword [esi + 0x3c], 0
jne 0x10003f7f
call fcn.10009c9c
mov dword [eax], 0
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
push edx
push 0x4000
push 1
push eax
call fcn.10009c46
add esp, 0x10
test eax, eax
mov dword [esi + 4], eax
jne 0x10003f7a
mov ecx, dword [esi + 0x40]
push ecx
mov dword [esi + 0x3c], 1
call fcn.1000997b
add esp, 4
test eax, eax
jne 0x10004085
mov edx, dword [esi + 0x44]
mov dword [esi], edx
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
add dword [esi + 0x64], eax
add dword [esi + 0x68], ecx
push 0
push esi
call sym.zlib1.dll_inflate
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
sub dword [esi + 0x64], edx
sub dword [esi + 0x68], ecx
add esp, 8
cmp eax, 1
mov dword [esi + 0x38], eax
jne 0x10003ffe
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x4c]
sub edx, edi
push edx
push edi
push eax
call sym.zlib1.dll_crc32
mov edi, dword [esi + 0xc]
mov dword [esi + 0x4c], eax
add esp, 0xc
mov eax, esi
call fcn.10003990
cmp eax, dword [esi + 0x4c]
jne 0x1000401a
mov eax, esi
call fcn.10003990
mov eax, esi
call fcn.100033a0
cmp dword [esi + 0x38], 0
jne 0x1000408c
push esi
call sym.zlib1.dll_inflateReset
push 0
push 0
push 0
call sym.zlib1.dll_crc32
add esp, 0x10
mov dword [esi + 0x4c], eax
cmp dword [esi + 0x38], 0
jne 0x1000408c
cmp dword [esi + 0x3c], 0
jne 0x1000408c
cmp dword [esi + 0x10], 0
jne 0x10003f20
jmp 0x1000408c
mov dword [esi + 0x38], 0xfffffffd
jmp 0x1000408c
mov edi, dword [esi + 4]
mov eax, dword [esi + 0x10]
cmp edi, eax
jbe 0x1000402f
mov edi, eax
test edi, edi
jbe 0x10004050
mov ecx, dword [esi]
mov edx, dword [esi + 0xc]
push edi
push ecx
push edx
call fcn.100093b0
add dword [esi], edi
sub dword [esi + 0x10], edi
add ebx, edi
add esp, 0xc
sub dword [esi + 4], edi
mov dword [esi + 0xc], ebx
mov eax, dword [esi + 0x10]
test eax, eax
jbe 0x1000406a
mov ecx, dword [esi + 0x40]
push ecx
push eax
push 1
push ebx
call fcn.10009c46
add esp, 0x10
sub dword [esi + 0x10], eax
sub ebp, dword [esi + 0x10]
add dword [esi + 0x64], ebp
add dword [esi + 0x68], ebp
test ebp, ebp
jne 0x1000407e
mov dword [esi + 0x3c], 1
mov eax, ebp
pop ebp
pop ebx
pop edi
pop esi
ret
mov dword [esi + 0x38], 0xffffffff
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x4c]
sub edx, edi
push edx
push edi
push eax
call sym.zlib1.dll_crc32
mov ecx, dword [esi + 0x10]
add esp, 0xc
cmp ebp, ecx
mov dword [esi + 0x4c], eax
jne 0x100040be
mov esi, dword [esi + 0x38]
cmp esi, 0xfffffffd
je 0x100040b6
cmp esi, 0xffffffff
jne 0x100040be
pop ebp
pop ebx
pop edi
or eax, 0xffffffff
pop esi
ret
mov eax, ebp
pop ebp
pop ebx
pop edi
sub eax, ecx
pop esi
ret
pop edi
mov eax, edx
pop esi
ret
pop edi
mov eax, 0xfffffffe
pop esi
ret