Function at 0x4906f0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov esi, dword [ebp + 8]
test dword [esi + 0x18], 0x200
je 0x490766
cmp dword [esi + 0xc], 0
jne 0x490766
push 0x14
push dword [esi]
call fcn.0048b000
push 0
xorps xmm0, xmm0
push 0
movq qword [eax], xmm0
movq qword [eax + 8], xmm0
push 0
mov dword [eax + 0x10], 0
push 0
mov dword [esi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x10], 0
jne 0x490766
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x490758
pop esi
mov esp, ebp
pop ebp
ret 0xc
call esi
add eax, 0xafc80
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp byte [esi + 0x2c], 0
push ebx
push edi
je 0x49082e
mov eax, dword [ebp + 0xc]
push dword [esi + 0x58]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax]
call fcn.0048bb80
cmp dword [esi + 0x48], 0
jne 0x4907d2
mov edi, dword [esi + 0x3c]
xor edx, edx
sub edi, dword [esi + 0x44]
sbb edx, edx
add edi, dword [esi + 0x50]
adc edx, dword [esi + 0x54]
mov eax, edx
sar eax, 0x1f
mov dword [ebp + 0x10], edx
cmp edi, dword [esi + 0x50]
jne 0x4907ad
cmp edx, dword [esi + 0x54]
je 0x4907bd
push 0
lea eax, [ebp + 0x10]
push eax
push edi
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [esi + 0x44], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x48], 1
xor edi, edi
mov dword [ebp + 0x10], edi
test ebx, ebx
je 0x49081b
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x4907ec
push esi
call fcn.00490460
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0x40]
sub ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
cmp ebx, ecx
mov edi, ebx
cmova edi, ecx
add eax, dword [esi + 0x3c]
push edi
push dword [ebp + 0xc]
push eax
call fcn.00472780
add dword [esi + 0x3c], edi
add dword [ebp + 0xc], edi
sub ebx, edi
mov edi, dword [ebp + 0x10]
add esp, 0xc
test edi, edi
je 0x4907d7
push dword [esi + 0x58]
call fcn.0048bbe0
mov eax, edi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp byte [esi + 8], 0
jne 0x4908be
cmp dword [esi + 0x34], 0
xorps xmm0, xmm0
movlpd qword [ebp - 8], xmm0
je 0x49086e
push dword [esi + 0x58]
call fcn.0048bb80
push 2
push esi
call fcn.00495310
mov edi, eax
test edi, edi
jne 0x49081b
lea eax, [ebp - 8]
push eax
push 2
push esi
call fcn.004950a0
mov edi, eax
test edi, edi
jne 0x49081b
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x49088e
mov eax, dword [esi + 0x50]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
mov cl, 0x20
call fcn.00497550
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
push dword [esi + 0xc]
mov ebx, dword [ebp + 0x10]
lea eax, [ebp + 8]
push eax
push dword [ebx]
push dword [ebp + 0xc]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [esi + 0x34], 0
mov edi, eax
je 0x4908d8
push esi
call fcn.004953f0
push dword [esi + 0x58]
call fcn.0048bbe0
jmp 0x4908d8
push dword [esi + 0xc]
mov ebx, dword [ebp + 0x10]
lea eax, [ebp + 8]
push eax
push dword [ebx]
push dword [ebp + 0xc]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, eax
test edi, edi
je 0x4908e8
mov eax, dword [ebp + 8]
mov dword [ebx], eax
xor edi, edi
jmp 0x4909c1
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], 0
call edi
test eax, eax
jne 0x490901
xor edi, edi
jmp 0x4909c1
call edi
lea edi, [eax + 0xafc80]
cmp edi, 0xb0065
jne 0x4909bd
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov eax, edx
or eax, ecx
je 0x49093e
test ecx, ecx
jg 0x490930
jl 0x49092b
test edx, edx
jae 0x490930
or eax, 0xffffffff
jmp 0x49093e
push 0
push 0x3e8
push ecx
push edx
call fcn.00474320
mov ecx, dword [esi + 0xc]
push eax
push dword [ecx + 0x10]
mov dword [ebp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, eax
cmp edi, 0xffffffff
je 0x49098f
test edi, edi
je 0x490974
cmp edi, 0x102
jne 0x4909a7
cmp dword [ebp + 0x10], 0
mov edi, 0x11177
mov eax, 0xb
cmove edi, eax
jmp 0x4909a7
push 1
lea eax, [ebp + 8]
push eax
push dword [esi + 0xc]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
mov eax, dword [ebp + 8]
mov dword [ebx], eax
xor edi, edi
jmp 0x4909c1
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jne 0x49099f
xor edi, edi
jmp 0x4909c1
call edi
lea edi, [eax + 0xafc80]
test edi, edi
je 0x4909c1
cmp dword [0x502374], 0xe
jl 0x4909bd
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_CancelIo]
test edi, edi
jne 0x4909d6
cmp dword [esi + 0xc], 0
je 0x4909d6
cmp byte [esi + 8], 0
jne 0x4909d6
mov eax, dword [ebx]
add dword [esi + 0x50], eax
adc dword [esi + 0x54], 0
mov eax, edi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 0xc