Function at 0x10045410
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10055b91
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x48
push ebx
push esi
push edi
mov eax, dword [0x1006dd60]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x10]
and eax, 1
neg eax
sbb eax, eax
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0x10]
and ecx, 8
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0
mov edx, dword [ebp + 8]
push edx
call fcn.10044f60
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0
push 0x1005eb5c
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.1002c77c
add esp, 0xc
test eax, eax
jne 0x10045500
cmp dword [ebp - 0x24], 0
je 0x10045500
mov edx, dword [ebp - 0x28]
add edx, 4
push edx
call fcn.100198f0
add esp, 4
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
je 0x100454f4
mov edx, dword [ebp - 0x28]
add edx, 4
push edx
push 0
mov eax, dword [ebp - 0x14]
push eax
call fcn.1002c440
add esp, 0xc
mov ecx, dword [ebp - 0x24]
push ecx
push 1
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.1002e17e
add esp, 0x10
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.1002ca2a
add esp, 4
cmp dword [ebp - 0x14], 0
je 0x10045600
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
cmp ecx, 0xff
jne 0x10045535
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
cmp eax, 0xfe
jne 0x10045535
mov dword [ebp - 0x4c], 1
jmp 0x1004553c
mov dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx]
cmp eax, 0xef
jne 0x10045576
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 1]
cmp edx, 0xbb
jne 0x10045576
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 2]
cmp ecx, 0xbf
jne 0x10045576
mov dword [ebp - 0x50], 1
jmp 0x1004557d
mov dword [ebp - 0x50], 0
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x28], 2
jb 0x10045598
cmp dword [ebp - 0x3c], 0
je 0x10045598
mov dword [ebp - 0x54], 1
jmp 0x1004559f
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x28], 3
jb 0x100455ba
cmp dword [ebp - 0x38], 0
je 0x100455ba
mov dword [ebp - 0x58], 1
jmp 0x100455c1
mov dword [ebp - 0x58], 0
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x30], 0
jne 0x10045600
cmp dword [ebp - 0x34], 0
je 0x100455d9
cmp dword [ebp - 0x1c], 0
je 0x10045600
mov edx, dword [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.10014ea0
add esp, 0xc
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp + 0xc]
call fcn.10006730
mov dword [ebp - 0x18], 1
jmp 0x1004560f
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.100198fb
add esp, 4
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret