Function at 0x45e260
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44c
mov eax, dword [0x55e2f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
push 0x200
mov dword [ebp - 0x42c], esi
xor edi, edi
mov dword [ebp - 0x408], ebx
call fcn.004e240a
add esp, 4
mov dword [ebp - 0x414], eax
test eax, eax
jne 0x45e2aa
mov ebx, 1
jmp 0x45e6ad
push 0
lea ecx, [ebp - 0x408]
push ecx
push 0x200
push eax
push 0
push 0
push 0x700a0
push esi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45e2a0
mov eax, dword [ebp - 0x414]
mov ecx, dword [eax + 0x10]
imul ecx, dword [eax + 0x14]
mov dword [ebp - 0x428], ecx
cmp dword [ebp + 0x14], ebx
je 0x45e32e
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x410]
push eax
push esi
call fcn.00460320
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x45e6ad
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x40c]
mov dword [ebp - 0x420], eax
jmp 0x45e33d
mov eax, ecx
cdq
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x420], edx
push 0
push 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x410], xmm0
push dword [ebp - 0x40c]
push dword [ebp - 0x410]
push esi
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x45e2a0
push 0
lea eax, [ebp - 0x408]
push eax
push 0x200
lea eax, [ebp - 0x404]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x45e2a0
push 0x200
lea eax, [ebp - 0x204]
xorps xmm0, xmm0
push 0
push eax
movlpd qword [ebp - 0x410], xmm0
call fcn.004e46b0
add esp, 0xc
push 0
push 0
push dword [ebp - 0x40c]
push dword [ebp - 0x410]
push esi
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x45e2a0
push 0
lea eax, [ebp - 0x408]
push eax
push 0x200
lea eax, [ebp - 0x204]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x45e2a0
push esi
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
mov eax, dword [ebp - 0x414]
push 0
mov dword [ebp - 0x44c], edi
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x448], eax
lea eax, [ebp - 0x408]
push eax
push 0
push 0
push 0x18
lea eax, [ebp - 0x44c]
push eax
push 0x7c058
push esi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45e2a0
push 0
lea eax, [ebp - 0x408]
push eax
push 0
push 0
push 0
push 0
push 0x70140
push esi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45e2a0
push 0x270
call fcn.004e240a
mov edi, eax
add esp, 4
mov dword [ebp - 0x40c], edi
test edi, edi
je 0x45e2a0
push 0x270
push 0
push edi
call fcn.004e46b0
mov eax, dword [ebp - 0x414]
add esp, 0xc
mov byte [edi + 0x4c], 1
mov dword [edi + 0x48], 0
mov byte [edi + 0xdc], 1
mov dword [edi + 0xd8], 0
mov byte [edi + 0x16c], 1
mov dword [edi + 0x168], 0
mov byte [edi + 0x1fc], 1
mov dword [edi + 0x1f8], 0
mov dword [edi], 0
mov dword [edi + 4], 4
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 0x418]
mov dword [edi + 8], ecx
mov dword [edi + 0x38], eax
mov eax, dword [ebp - 0x420]
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0x428]
cdq
mov esi, edx
mov dword [edi + 0x30], 0
push esi
mov edi, eax
push edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.004e2b80
push esi
push edi
push edx
push eax
call fcn.004e2b40
mov edi, dword [ebp - 0x40c]
mov ecx, eax
mov esi, dword [ebp - 0x420]
mov dword [edi + 0x44], edx
mov edx, dword [ebp - 0x418]
add ecx, edx
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x44]
adc eax, esi
cmp eax, 0x200
jl 0x45e557
jg 0x45e546
test ecx, ecx
je 0x45e557
xor ecx, ecx
mov eax, 0x200
sub ecx, edx
mov dword [edi + 0x40], ecx
sbb eax, esi
mov dword [edi + 0x44], eax
mov eax, dword [ebp - 0x414]
push 0
mov dword [edi + 0x48], 1
mov byte [edi + 0x4c], 1
mov word [edi + 0x50], 0x107
mov byte [edi + 0x52], 1
push dword [eax + 0x14]
push esi
push edx
call fcn.004e2b80
mov esi, dword [ebp - 0x42c]
push 0
mov dword [edi + 0x54], eax
lea eax, [ebp - 0x408]
push eax
push 0
push 0
push 0x270
push edi
push 0x7c054
push esi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45e2a0
push 0
lea eax, [ebp - 0x408]
push eax
push 0
push 0
push 0
push 0
push 0x70140
push esi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45e2a0
push 0
push 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x410], xmm0
push dword [ebp - 0x40c]
push dword [ebp - 0x410]
push esi
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x45e2a0
push 0
lea eax, [ebp - 0x408]
push eax
push 0x200
lea eax, [ebp - 0x204]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x45e2a0
movups xmm0, xmmword [ebp - 0x46]
mov ax, word [ebp - 6]
push 0
movups xmmword [ebp - 0x246], xmm0
push 0
movups xmm0, xmmword [ebp - 0x36]
mov word [ebp - 0x206], ax
movups xmmword [ebp - 0x236], xmm0
movups xmm0, xmmword [ebp - 0x26]
movups xmmword [ebp - 0x226], xmm0
movups xmm0, xmmword [ebp - 0x16]
movups xmmword [ebp - 0x216], xmm0
xorps xmm0, xmm0
movlpd qword [ebp - 0x410], xmm0
push dword [ebp - 0x40c]
push dword [ebp - 0x410]
push esi
call dword [sym.imp.KERNEL32.DLL_SetFilePointerEx]
test eax, eax
je 0x45e2a0
push 0
lea eax, [ebp - 0x408]
push eax
push 0x200
lea eax, [ebp - 0x404]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x45e2a0
push esi
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push edi
mov esi, eax
call fcn.004e2413
push dword [ebp - 0x414]
call fcn.004e2413
add esp, 8
push esi
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e1f40
mov esp, ebp
pop ebp
ret