Function at 0x439420
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 0x43965c
cmp byte [esi + 0x5c], 0x72
jne 0x43965c
mov ecx, dword [esi + 0x38]
or edx, 0xffffffff
cmp ecx, 0xfffffffd
je 0x439657
cmp ecx, edx
je 0x439657
cmp ecx, 1
jne 0x43945f
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 0x43949f
cmp dword [esi + 0x6c], edx
je 0x43949f
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 0x43949f
pop ebp
pop ebx
pop edi
mov dword [esi + 0x38], eax
pop esi
ret
cmp dword [esi + 0x10], 0
je 0x43961c
lea esp, [esp]
cmp dword [esi + 0x58], 0
jne 0x4395b3
cmp dword [esi + 4], 0
jne 0x43950f
cmp dword [esi + 0x3c], 0
jne 0x43950f
call fcn.00447a33
mov dword [eax], 0
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
push edx
push 0x4000
push 1
push eax
call fcn.00448e43
add esp, 0x10
test eax, eax
mov dword [esi + 4], eax
jne 0x43950a
mov ecx, dword [esi + 0x40]
push ecx
mov dword [esi + 0x3c], 1
call fcn.00448b78
add esp, 4
test eax, eax
jne 0x439615
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 fcn.0043b120
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 0x43958e
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x4c]
sub edx, edi
push edx
push edi
push eax
call fcn.0043ca00
mov edi, dword [esi + 0xc]
mov dword [esi + 0x4c], eax
add esp, 0xc
mov eax, esi
call fcn.004390e0
cmp eax, dword [esi + 0x4c]
jne 0x4395aa
mov eax, esi
call fcn.004390e0
mov eax, esi
call fcn.00438de0
cmp dword [esi + 0x38], 0
jne 0x43961c
push esi
call fcn.0043aee0
push 0
push 0
push 0
call fcn.0043ca00
add esp, 0x10
mov dword [esi + 0x4c], eax
cmp dword [esi + 0x38], 0
jne 0x43961c
cmp dword [esi + 0x3c], 0
jne 0x43961c
cmp dword [esi + 0x10], 0
jne 0x4394b0
jmp 0x43961c
mov dword [esi + 0x38], 0xfffffffd
jmp 0x43961c
mov edi, dword [esi + 4]
mov eax, dword [esi + 0x10]
cmp edi, eax
jbe 0x4395bf
mov edi, eax
test edi, edi
jbe 0x4395e0
mov ecx, dword [esi]
mov edx, dword [esi + 0xc]
push edi
push ecx
push edx
call fcn.00449580
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 0x4395fa
mov ecx, dword [esi + 0x40]
push ecx
push eax
push 1
push ebx
call fcn.00448e43
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 0x43960e
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 fcn.0043ca00
mov ecx, dword [esi + 0x10]
add esp, 0xc
cmp ebp, ecx
mov dword [esi + 0x4c], eax
jne 0x43964e
mov esi, dword [esi + 0x38]
cmp esi, 0xfffffffd
je 0x439646
cmp esi, 0xffffffff
jne 0x43964e
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