Function at 0x440980
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x22c
mov eax, dword [0x4b1074]
xor eax, esp
mov dword [esp + 0x228], eax
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
push ebx
mov dword [esp + 0x10], ebx
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 8]
sub esi, dword [eax]
sub esi, 8
sar esi, 3
dec esi
mov dword [esp + 0x18], esi
call fcn.0047320b
add esp, 4
mov ecx, edi
test esi, esi
jne 0x440a41
push 1
mov edx, ebx
call fcn.00440830
mov esi, dword [ebp + 8]
add esp, 4
mov ebx, eax
inc esi
push dword [esp + 0xc]
call fcn.0046f14e
add esp, 4
test eax, eax
je 0x440cb8
call fcn.0045e9ea
mov esi, dword [eax]
mov eax, dword [edi + 8]
push esi
mov dword [eax + 4], 0x7ff7a500
add dword [edi + 8], 8
call fcn.0047183a
add esp, 4
mov edx, eax
mov ecx, edi
call fcn.00425fb0
mov eax, dword [edi + 8]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movsd qword [eax], xmm0
mov eax, 3
add dword [edi + 8], 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x228]
xor ecx, esp
call fcn.00452966
mov esp, ebp
pop ebp
ret
lea edx, [esi + 0x28]
call fcn.004253a0
test eax, eax
je 0x440ce8
mov esi, dword [ebp + 8]
mov ebx, 1
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], esi
dec eax
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x4409d9
mov edx, esi
mov ecx, edi
call fcn.00425780
mov edx, esi
mov ecx, edi
push 0
cmp eax, 3
jne 0x440b5c
call fcn.00425ad0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x440b09
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0047178f
add esp, 4
mov dword [esp + 0x10], eax
push ebx
push eax
call fcn.00473d0a
mov ecx, dword [edi + 0xc]
add esp, 8
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x440ad7
cmp byte [ecx + 0x37], 0
je 0x440ac8
mov ecx, edi
call fcn.00430940
jmp 0x440ad7
add eax, 0x640
mov dword [ecx + 0xc], 0xfffff9c0
add dword [ecx + 8], eax
push 0
xor edx, edx
mov ecx, edi
call fcn.00431990
mov ecx, dword [edi + 8]
xor ebx, ebx
add esp, 4
mov dword [ecx], eax
movzx eax, byte [eax + 4]
or eax, 0x7ff7a540
mov dword [ecx + 4], eax
add dword [edi + 8], 8
cmp dword [esp + 0x10], 0xffffffff
setne bl
jmp 0x440ca2
lea eax, [esp + 0x30]
mov dword [esp + 0x2c], edi
mov edx, ebx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0x200
call fcn.00427f00
push dword [esp + 0xc]
push ebx
push 1
push eax
call fcn.00470fa0
add esp, 0x10
lea ecx, [esp + 0x20]
mov esi, eax
add dword [esp + 0x28], esi
call fcn.00427fb0
xor eax, eax
cmp eax, esi
sbb ebx, ebx
neg ebx
jmp 0x440c9e
call fcn.00425d10
add esp, 4
test eax, eax
je 0x440d11
cmp byte [eax], 0x2a
jne 0x440d11
movsx eax, byte [eax + 1]
add eax, 0xffffffb4
cmp eax, 0x22
ja case.0x440b8c.77
movzx eax, byte [eax + 0x440d34]
jmp dword [eax*4 + 0x440d20]
lea eax, [esp + 0x18]
push eax
push 0x4a0f98
push dword [esp + 0x14]
call fcn.0043f9b0
add esp, 0xc
cmp eax, 1
mov eax, dword [edi + 8]
jne 0x440be1
movsd xmm0, qword [esp + 0x18]
movsd qword [eax], xmm0
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 4]
and eax, 0x7fffff00
cmp eax, 0x7ff7a500
je 0x440cf8
lea eax, [ecx + 8]
mov ebx, 1
mov dword [edi + 8], eax
jmp 0x440ca2
mov dword [eax + 4], 0x7ff7a500
add dword [edi + 8], 8
xor ebx, ebx
jmp 0x440ca2
mov edx, dword [esp + 0xc]
mov ecx, edi
push 1
call fcn.00440830
add esp, 4
mov ebx, eax
jmp 0x440ca2
mov edx, dword [esp + 0xc]
mov ecx, edi
push 0
call fcn.00440830
add esp, 4
mov ebx, eax
jmp 0x440ca2
mov esi, 0x200
mov dword [esp + 0x2c], edi
lea eax, [esp + 0x30]
mov dword [esp + 0x28], 0
mov edx, esi
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], esi
call fcn.00427f00
mov ebx, dword [esp + 0xc]
push ebx
push esi
push 1
push eax
call fcn.00470fa0
add dword [esp + 0x38], eax
add esp, 0x10
cmp eax, esi
jb 0x440c90
cmp esi, 0x3fffffff
lea eax, [esi + esi]
lea ecx, [esp + 0x20]
cmova eax, esi
mov esi, eax
mov edx, esi
call fcn.00427f00
push ebx
push esi
push 1
push eax
call fcn.00470fa0
add dword [esp + 0x38], eax
add esp, 0x10
cmp eax, esi
jae 0x440c62
lea ecx, [esp + 0x20]
call fcn.00427fb0
mov ebx, 1
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc esi
mov dword [esp + 0x10], esi
test eax, eax
jne 0x440a61
jmp 0x4409d9
test ebx, ebx
jne 0x440cce
add dword [edi + 8], 0xfffffff8
mov eax, dword [edi + 8]
mov dword [eax + 4], 0x7ff7a500
add dword [edi + 8], 8
sub esi, dword [ebp + 8]
mov ecx, dword [esp + 0x234]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00452966
mov esp, ebp
pop ebp
ret
push 0x4a0f9c
push 0x49fae4
push edi
call fcn.004279d0
push 0x49f988
push edi
call fcn.0042a370
push 0x4a0fc0
mov edx, esi
mov ecx, edi
call fcn.004277b0
push 0x4a0fb0
mov edx, esi
mov ecx, edi
call fcn.004277b0
nop
or cl, byte [esp + eax*2]
add byte [ecx], ah
or al, 0x44
add bl, dh
or eax, dword [eax + eax - 0x6d]
or eax, dword [eax + eax + 3]
or eax, 0x4000044
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 1
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, byte [ebx + eax]
int3