Function at 0x300fe3f6
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x10
test eax, eax
push ebx
push esi
push edi
mov esi, ecx
je 0x300fe666
cmp eax, 0x1000000
je 0x300fe666
cmp eax, 0x6000000
je 0x300fe442
cmp eax, 0x7000000
je 0x300fe666
cmp eax, 0xa000000
je 0x300fe454
cmp eax, 0xc000000
je 0x300fe44b
cmp eax, 0xe000000
jne 0x300fe66a
mov byte [esi + 0xb], 1
jmp 0x300fe66a
and dword [esi + 0x1c], 0
jmp 0x300fe66a
lea eax, [esi + 0x20]
push eax
lea edi, [esi + 0x24]
push edi
lea ebx, [esi + 0x1c]
push ebx
push dword [ebp + 0xc]
call fcn.300fe317
test al, al
je 0x300fe66a
fldz
mov eax, dword [ebx]
dec eax
fstp qword [ebp - 0x10]
mov ecx, dword [esi + 0x20]
mov dword [ebp - 4], ecx
je 0x300fe5e9
dec eax
je 0x300fe59c
dec eax
je 0x300fe54a
dec eax
je 0x300fe4f3
dec eax
jne 0x300fe640
mov eax, 0x989680
cmp ecx, eax
jae 0x300fe4a8
mov dword [ebp - 4], eax
mov eax, dword [edi]
fild dword [edi]
test eax, eax
jge 0x300fe4b6
fadd qword [0x300025d8]
mov eax, dword [ebp - 4]
fmul qword [0x300042e0]
test eax, eax
fild dword [ebp - 4]
jge 0x300fe4cc
fadd qword [0x300025d8]
fdivp st(1)
fadd qword [0x300042d8]
fstp qword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [edi]
cmp dword [esi + 0x64], edi
mov dword [esi + 0x4c], eax
jae 0x300fe640
inc dword [esi + 0x60]
jmp 0x300fe63d
mov eax, dword [edi]
fild dword [edi]
test eax, eax
jge 0x300fe501
fadd qword [0x300025d8]
test ecx, ecx
fmul qword [0x300042d0]
mov dword [ebp - 8], ecx
fild dword [ebp - 8]
jge 0x300fe517
fadd qword [0x300025d8]
fdivp st(1)
fadd qword [0x300042c8]
fstp qword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [ebx], 4
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
jne 0x300fe640
mov edi, dword [edi]
cmp dword [esi + 0x64], edi
jae 0x300fe640
inc dword [esi + 0x5c]
jmp 0x300fe63d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [edi]
cmp dword [esi + 0x64], edi
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
jae 0x300fe566
inc dword [esi + 0x58]
mov dword [esi + 0x64], edi
test edi, edi
mov dword [ebp - 0xc], edi
fild dword [ebp - 0xc]
jge 0x300fe576
fadd qword [0x300025d8]
mov eax, dword [ebp - 4]
fmul qword [0x300042c0]
test eax, eax
fild dword [ebp - 4]
jge 0x300fe58c
fadd qword [0x300025d8]
fdivp st(1)
fadd qword [0x300042b8]
fstp qword [ebp - 0x10]
jmp 0x300fe640
mov eax, dword [edi]
fild dword [edi]
test eax, eax
jge 0x300fe5aa
fadd qword [0x300025d8]
test ecx, ecx
fmul qword [0x300042b0]
mov dword [ebp - 0xc], ecx
fild dword [ebp - 0xc]
jge 0x300fe5c0
fadd qword [0x300025d8]
fdivp st(1)
fadd qword [0x300042a8]
fstp qword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [edi]
cmp dword [esi + 0x64], edi
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
jae 0x300fe640
inc dword [esi + 0x54]
jmp 0x300fe63d
mov eax, 0x989680
cmp ecx, eax
jae 0x300fe5f5
mov dword [ebp - 4], eax
mov eax, dword [edi]
fild dword [edi]
test eax, eax
jge 0x300fe603
fadd qword [0x300025d8]
mov eax, dword [ebp - 4]
fmul qword [0x300042a8]
test eax, eax
fild dword [ebp - 4]
jge 0x300fe619
fadd qword [0x300025d8]
fdivp st(1)
fstp qword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [edi]
cmp dword [esi + 0x64], edi
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
jae 0x300fe640
inc dword [esi + 0x50]
mov dword [esi + 0x64], edi
fld qword [ebp - 0x10]
fmul qword [0x300042a0]
call fcn.301375d2
cmp dword [esi + 0x28], eax
jae 0x300fe66a
cmp eax, 0x64
ja 0x300fe66a
mov ecx, dword [esi + 4]
mov dword [esi + 0x28], eax
mov edx, dword [ecx]
push eax
call dword [edx + 8]
jmp 0x300fe66a
mov byte [esi + 9], 1
cmp byte [esi + 0xd], 0
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, 0x30004298
je 0x300fe6ad
cmp dword [ebp + 8], 0xa000000
je 0x300fe6ad
push dword [ebp + 0xc]
call fcn.301238f5
test eax, eax
je 0x300fe6ad
push 0
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp + 0xc]
push dword [esi + 0x38]
call edi
push 0
lea eax, [ebp - 8]
push eax
push 2
push ebx
push dword [esi + 0x38]
call edi
push 0x30004284
push dword [ebp + 0xc]
call fcn.3012a689
test eax, eax
mov dword [ebp + 8], eax
je 0x300fe70c
push 0x30004284
call fcn.301238f5
add dword [ebp + 8], eax
push dword [ebp + 8]
call fcn.301238f5
push 0
mov dword [ebp + 0xc], eax
lea eax, [ebp - 8]
push eax
push 2
push 0x30004280
push dword [esi + 0x38]
call edi
push 0
lea eax, [ebp - 8]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 0x38]
call edi
push 0
lea eax, [ebp - 8]
push eax
push 2
push ebx
push dword [esi + 0x38]
call edi
jmp 0x300fe746
push 0x30004270
push dword [ebp + 0xc]
call fcn.3012a689
mov edi, eax
test edi, edi
je 0x300fe746
inc dword [esi + 0x34]
push 0x30004264
push edi
call fcn.3012a689
test eax, eax
jne 0x300fe743
push 0x3000425c
push edi
call fcn.3012a689
test eax, eax
je 0x300fe746
inc dword [esi + 0x2c]
inc dword [esi + 0x30]
mov al, byte [esi + 8]
neg al
pop edi
pop esi
pop ebx
sbb eax, eax
and eax, 2
leave
ret 8