Function at 0x40cee0
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x384
mov eax, dword [0x42ea5c]
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 0x4930bc]
mov dword [esp + 0x388], eax
mov eax, dword [esi + 0x4930b8]
mov edx, dword [eax + 0xb8]
mov eax, dword [eax + 0xbc]
push edi
mov edi, dword [ecx + 0xb8]
mov ecx, dword [ecx + 0xbc]
cmp eax, ecx
lea ebx, [esi + 0x489ff0]
jg 0x40cf45
jl 0x40cf31
cmp edx, edi
jae 0x40cf45
mov dword [esp + 0x28], edi
mov edi, ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edi
jmp 0x40cf5d
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], edi
mov edx, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov eax, ecx
mov ecx, dword [esp + 0x28]
cmp edx, ecx
jne 0x40cf6d
cmp eax, edi
je 0x40d4b8
sub ecx, edx
mov edx, edi
sbb edx, eax
mov eax, dword [esi + 0x4930b4]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x1c], edx
fild qword [esp + 0x18]
mov dl, byte [eax + 0x3324]
push 0xd4
mov dword [esp + 0x40], 0
fstp qword [esp + 0x54]
mov dword [esp + 0x34], 0
mov dword [esp + 0x60], ecx
mov byte [esp + 0x17], dl
call fcn.004060c0
add esp, 4
push eax
mov eax, dword [esi + 0x48b008]
push 2
push 0x400
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x427c50
push ebx
call fcn.004132eb
add esp, 8
test eax, eax
jne 0x40d107
push str..ALF
push ebx
call fcn.004132eb
add esp, 8
test eax, eax
jne 0x40d107
push 0x42797c
push ebx
mov dword [esp + 0x40], eax
call fcn.004131b2
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x48abf8]
add esp, 8
cmp eax, 1
jne 0x40d033
push str.From_Begin__mks_
lea edx, [esp + 0x18c]
push str._16s
push edx
call fcn.00412d6d
add esp, 0xc
mov eax, dword [esi + 0x48abf8]
test eax, eax
jne 0x40d05c
push str.Time
push str.Date
lea eax, [esp + 0x190]
push str._8s__14s
push eax
call fcn.00412d6d
add esp, 0x10
mov ecx, dword [esi + 0x4930b4]
mov eax, dword [ecx + 0x2c]
xor ebx, ebx
test eax, eax
jle 0x40d0b7
lea edi, [esi + 0x48a7f0]
cmp dword [edi], 0
je 0x40d0a2
lea eax, [esp + 0x188]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d080
sub eax, edx
lea edx, [ebx + 1]
push edx
lea eax, [esp + eax + 0x18c]
push 0x428470
push eax
call fcn.00412d6d
add esp, 0xc
mov ecx, dword [esi + 0x4930b4]
mov eax, dword [ecx + 0x2c]
inc ebx
add edi, 4
cmp ebx, eax
jl 0x40d071
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x188]
push edx
push 0x42749c
push eax
call fcn.004125e3
add esp, 0xc
mov eax, dword [esp + 0x24]
cmp eax, edi
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
jg 0x40d462
jl 0x40d0f7
cmp ecx, dword [esp + 0x28]
jae 0x40d462
fld qword [0x428428]
fdiv qword [esp + 0x50]
fstp qword [esp + 0x78]
jmp 0x40d160
mov ecx, dword [esi + 0x4930b4]
push 0
push 0
push 0
push 1
push ebx
mov dword [esp + 0x4c], 1
call fcn.00401630
push 0
push 0x20
push 3
push 0
push 0
push 0x40000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
je 0x40d498
push 2
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x40d0d1
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
sub edx, ecx
mov ecx, ebx
sbb ecx, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
fild qword [esp + 0x50]
fstp qword [esp + 0x40]
fld qword [esp + 0x78]
fmul qword [esp + 0x40]
fmul qword [0x4276c0]
call fcn.00412e7c
mov edi, eax
cmp edi, dword [esp + 0x3c]
je 0x40d1ae
mov edx, dword [esi + 0x48b008]
push edi
push 1
push 0x400
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x40d395
cmp dword [esi + 0x48abf8], 1
jne 0x40d1f4
mov eax, dword [esi + 0x4930b4]
fld dword [eax + 0x1b00]
sub esp, 8
fdivr qword [esp + 0x48]
lea ecx, [esp + 0x90]
fmul qword [0x428468]
fstp qword [esp]
push str._16.1lf
push ecx
call fcn.00412d6d
add esp, 0x10
mov eax, dword [esi + 0x48abf8]
test eax, eax
jne 0x40d2bc
mov eax, dword [esi + 0x4930b4]
fld dword [eax + 0x1b00]
fdivr qword [0x428390]
call fcn.00412e7c
mov ecx, dword [esp + 0x18]
push ebx
push ecx
push edx
push eax
call fcn.00412720
mov edi, dword [esi + 0x489ab0]
mov ebx, dword [esi + 0x489ab4]
mov ecx, dword [esi + 0x4930b4]
sub edi, eax
sbb ebx, edx
push ebx
push edi
lea edx, [esp + 0x78]
push edx
call fcn.00401170
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x74]
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
push 0
push 0x989680
push ebx
push edi
call fcn.00412b60
imul eax, eax, 0x989680
movzx ecx, word [esp + 0x68]
sub edi, eax
mov eax, 0x51eb851f
mul edi
movzx eax, word [esp + 0x6a]
shr edx, 5
push edx
movzx edx, word [esp + 0x70]
push edx
movzx edx, word [esp + 0x68]
push eax
movzx eax, word [esp + 0x6e]
push ecx
movzx ecx, word [esp + 0x76]
sub edx, 0x7d0
push edx
push eax
push ecx
lea edx, [esp + 0xa4]
push str._02d__02d__02d__02d:_02d:_02d__05d
push edx
call fcn.00412d6d
mov ebx, dword [esp + 0x40]
add esp, 0x24
mov eax, dword [esi + 0x4930b4]
mov edx, dword [eax + 0x2c]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x40], ecx
jle 0x40d376
lea edx, [esi + 0x48a7f0]
mov dword [esp + 0x14], edx
lea ecx, [ecx]
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
je 0x40d355
lea eax, [esp + 0x88]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d2f3
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
sub eax, edi
push ecx
mov ecx, dword [esi + 0x4930b4]
mov edi, eax
call fcn.004014c0
fst dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
sub esp, 8
fstp qword [esp]
push edx
mov ecx, esi
call fcn.00408fe0
push eax
lea eax, [esp + 0x194]
push eax
call fcn.00412d6d
lea ecx, [esp + 0x198]
push ecx
lea edx, [esp + edi + 0x9c]
push 0x428430
push edx
call fcn.00412d6d
mov ecx, dword [esp + 0x5c]
add esp, 0x1c
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x4930b4]
mov edx, dword [eax + 0x2c]
inc ecx
add edi, 4
cmp ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], edi
jl 0x40d2e0
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x88]
push ecx
push 0x42749c
push edx
call fcn.004125e3
add esp, 0xc
jmp 0x40d42c
mov eax, dword [esi + 0x4930b4]
mov ecx, dword [eax + 0x2c]
xor edi, edi
test ecx, ecx
jle 0x40d42c
lea ecx, [esi + 0x48a7f0]
mov dword [esp + 0x14], ecx
mov al, byte [esp + 0x13]
test al, al
je 0x40d3d2
mov eax, edi
cdq
idiv dword [esp + 0x5c]
mov edx, 1
mov ecx, eax
mov al, byte [esp + 0x13]
shl edx, cl
test al, dl
je 0x40d419
mov ecx, dword [esp + 0x14]
cmp dword [ecx], 0
jne 0x40d3e7
mov edx, dword [esi + 0x4930b4]
cmp dword [edx + 0x30], 1
je 0x40d419
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x4930b4]
push edi
push ebx
push eax
call fcn.004014c0
fstp dword [esp + 0x58]
mov eax, dword [esp + 0x30]
push 0
lea ecx, [esp + 0x88]
push ecx
push 4
lea edx, [esp + 0x64]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
add dword [esp + 0x14], 4
mov ecx, dword [esi + 0x4930b4]
mov eax, dword [ecx + 0x2c]
inc edi
cmp edi, eax
jl 0x40d3b2
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add edx, 1
adc ebx, 0
cmp ebx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
jl 0x40d158
jg 0x40d45a
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x18], edx
jb 0x40d158
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x40d481
mov edi, dword [esp + 0x30]
push eax
push ecx
push edi
mov ecx, esi
call fcn.0040ce30
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40d48e
mov eax, dword [esp + 0x34]
push eax
call fcn.00412592
add esp, 4
mov dword [esi + 0x48b028], 1
mov ecx, dword [esi + 0x48b008]
push 0x64
push 1
push 0x400
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esi + 0x48b008], 0
mov ecx, dword [esp + 0x38c]
call fcn.00412538
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret