Function at 0x440df0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x55d302
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5b2ae0]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov eax, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x20]
call fcn.00404fa0
mov ebp, dword [esp + 0x64]
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
mov esi, ebp
call fcn.00443f10
mov esi, eax
mov eax, dword [esi]
test eax, eax
je 0x440e4c
cmp eax, ebx
je 0x440e51
call fcn.005177ee
cmp dword [esi + 4], edi
mov eax, dword [esp + 0x1c]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x440e77
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x441013
call fcn.004eff6d
xor ecx, ecx
xor esi, esi
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x440e9b
push 0x80004005
call fcn.00401f30
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x64], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x60]
push 0x578290
push ecx
mov byte [esp + 0x60], 1
call fcn.00518533
mov edi, eax
add esp, 8
cmp edi, esi
je 0x440ef1
push edi
call fcn.005193b3
add esp, 4
push eax
call fcn.005193e5
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x440f1e
push edi
call fcn.005185c1
add esp, 4
mov edx, dword [esp + 0x60]
push edx
lea eax, [esp + 0x68]
push 0x57705c
push eax
call fcn.00401cc0
mov esi, dword [esp + 0x70]
add esp, 0xc
push 0
push 0
push esi
call fcn.004f030b
lea eax, [esi - 0x10]
jmp 0x441186
push ebx
call fcn.00518cd9
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
push edi
test esi, esi
je 0x440ee9
push 1
push ebx
push esi
call fcn.00519396
push edi
mov dword [esp + 0x30], esi
call fcn.005185c1
add esp, 0x14
cmp ebx, 4
jbe 0x44102c
cmp dword [esi], 0x414d53
jne 0x44102c
mov edi, dword [ebp + 0x1c]
mov eax, dword [esp + 0x68]
mov ecx, edi
push esi
or ecx, 0x53000000
push ecx
mov esi, ebx
call fcn.004c58d0
mov esi, dword [esp + 0x74]
add esp, 8
test esi, esi
je 0x440fb6
push esi
lea ecx, [esp + 0x1c]
call fcn.00404fa0
lea edx, [esp + 0x18]
push edx
mov ebx, ebp
mov byte [esp + 0x5c], 4
call fcn.0040ad60
lea ecx, [esp + 0x18]
mov dword [eax], edi
mov byte [esp + 0x58], 1
call fcn.00401ce0
or edi, 0x49000000
push edi
mov edi, esi
jmp 0x440ff0
mov ecx, dword [esp + 0x60]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00404fa0
lea edx, [esp + 0x18]
push edx
mov ebx, ebp
mov byte [esp + 0x5c], 5
call fcn.0040ad60
lea ecx, [esp + 0x18]
mov dword [eax], edi
mov byte [esp + 0x58], 1
call fcn.00401ce0
or edi, 0x49000000
push edi
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x6c]
push eax
call fcn.004c5a50
mov ecx, dword [esp + 0x28]
add esp, 8
push ecx
call fcn.00518bfc
add esp, 4
lea ecx, [esp + 0x64]
call fcn.00401ce0
mov eax, 1
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
xor edi, edi
cmp dword [esp + 0x6c], edi
jne 0x441157
lea edx, [esp + 0x28]
push edx
call fcn.00448460
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x28]
push eax
push ecx
mov byte [esp + 0x60], 2
call fcn.0042d8f0
add esp, 8
test eax, eax
jne 0x441097
lea edx, [esp + 0x28]
push edx
mov byte [esp + 0x5c], 1
call fcn.004050f0
push esi
call fcn.00518bfc
add esp, 4
lea ecx, [esp + 0x64]
call fcn.00401ce0
jmp 0x4411a3
lea ecx, [esp + 0x18]
call fcn.00401d00
mov byte [esp + 0x58], 3
mov eax, dword [0x5bffc0]
push eax
lea ecx, [esp + 0x1c]
push 0x57708c
push ecx
call fcn.00401cc0
mov ebx, dword [esp + 0x24]
lea edx, [esp + 0x34]
add esp, 0xc
push edx
call fcn.0042ae80
add esp, 4
test eax, eax
jne 0x441101
lea ecx, [esp + 0x18]
call fcn.00401ce0
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x5c], 1
call fcn.004050f0
lea esi, [esp + 0x1c]
call fcn.0044dd60
lea ecx, [esp + 0x64]
call fcn.00401ce0
jmp 0x4411a3
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
push ecx
push edx
push ebp
push ebx
call fcn.00440df0
add esp, 0x10
lea ecx, [esp + 0x18]
mov edi, eax
call fcn.00401ce0
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x5c], 1
call fcn.004050f0
lea esi, [esp + 0x1c]
call fcn.0044dd60
lea ecx, [esp + 0x64]
call fcn.00401ce0
mov eax, edi
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov ecx, dword [esp + 0x60]
push ecx
lea edx, [esp + 0x68]
push 0x574318
push edx
call fcn.00401cc0
add esp, 0xc
push edi
push edi
mov edi, dword [esp + 0x6c]
push edi
call fcn.004f030b
push esi
call fcn.00518bfc
add esp, 4
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x58], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4411a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret