Function at 0x4158b0
Capabilities:
Create thread
Get system information on windows
Resolve function by parsing pe exports
Timestomp file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x20370
call fcn.00424d30
push ebx
mov ebx, ecx
mov ecx, dword [ebx + 0x10cc080]
lea eax, [ebx + 0x10969f8]
push ebp
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x10cc07c]
mov edx, dword [eax + 0xe0]
mov eax, dword [eax + 0xe4]
push esi
mov esi, dword [ecx + 0xe0]
mov ecx, dword [ecx + 0xe4]
cmp eax, ecx
push edi
jg 0x415908
jl 0x4158fe
cmp edx, esi
jae 0x415908
mov edi, edx
mov ebp, eax
mov edx, esi
mov eax, ecx
jmp 0x41590c
mov edi, esi
mov ebp, ecx
cmp edi, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edi
jne 0x415928
cmp ebp, eax
je 0x4163df
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
sbb edx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x10cbf38]
mov ebp, dword [ebx + 0x10cbbb4]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebx + 0x10cbf3c]
mov dword [esp + 0x64], edx
fild qword [esp + 0x60]
mov dword [esp + 0x54], ecx
mov ecx, 0x3e
lea esi, [esp + 0x258]
fstp qword [esp + 0x68]
lea edi, [esp + 0x260]
fld qword [ebx + 0x10cbf40]
push 0xcc
fstp qword [esp + 0x64]
mov dword [esp + 0x2c], eax
fld qword [ebx + 0x10cbf48]
fstp qword [esp + 0x94]
fld qword [0x43eb00]
fstp qword [esp + 0x25c]
rep movsd dword es:[edi], dword [esi]
fld qword [0x43eaf8]
fstp qword [esp + 0xdc]
mov ecx, 0x3e
lea esi, [esp + 0xdc]
lea edi, [esp + 0xe4]
rep movsd dword es:[edi], dword [esi]
call fcn.00416f80
mov edx, dword [ebx + 0x1097a10]
add esp, 4
push eax
push 2
push 0x400
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [esp + 0x28]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
imul esi, ebp
add esi, esi
add esi, esi
add esi, esi
push esi
push 0x40
call edi
push eax
mov dword [esp + 0x90], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push esi
push 0x40
mov dword [esp + 0x34], eax
call edi
push eax
mov dword [esp + 0x74], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push esi
push 0x40
mov dword [esp + 0x60], eax
call edi
push eax
mov dword [esp + 0x78], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, dword [esp + 0x30]
sub edi, dword [esp + 0x38]
mov dword [esp + 0x44], eax
imul edi, ebp
add edi, edi
add edi, edi
push edi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [esp + 0x8c], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
push 0
push eax
call fcn.004238f0
mov ecx, dword [esp + 0x38]
push esi
push 0
push ecx
call fcn.004238f0
mov edx, dword [esp + 0x5c]
push esi
push 0
push edx
call fcn.004238f0
mov eax, dword [esp + 0x44]
push edi
push 0
push eax
call fcn.004238f0
mov ecx, dword [ebx + 0x10cc078]
fld dword [ecx + 0x4ff0]
mov edi, dword [esp + 0x58]
fdivr qword [esp + 0x98]
xor esi, esi
add esp, 0x30
cmp dword [esp + 0x28], esi
mov dword [esp + 0x18], esi
fst qword [esp + 0xb8]
fld qword [0x43dab0]
jle 0x415b2f
fld st(1)
fadd st(0), st(0)
fld qword [esp + 0x90]
fld qword [esp + 0x60]
fsub st(1), st(0)
fild dword [esp + 0x28]
fild dword [esp + 0x18]
fmul st(3)
fdiv st(1)
fadd st(2)
fdivr st(5)
fdivr st(4)
call fcn.00423f00
mov edx, eax
and edx, 0x80000001
jns 0x415af9
dec edx
or edx, 0xfffffffe
inc edx
cdq
je 0x415b05
sub eax, edx
sar eax, 1
add eax, 1
jmp 0x415b09
sub eax, edx
sar eax, 1
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
add esi, 1
cmp esi, edi
mov dword [esp + 0x18], esi
fmul st(5)
fdiv st(6)
fstp qword [esp + esi*8 + 0x10378]
jl 0x415ad7
fstp st(3)
fstp st(1)
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x3c]
fstp st(1)
cmp eax, dword [esp + 0x34]
fstp st(0)
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
jg 0x415c21
jl 0x415b60
cmp ecx, dword [esp + 0x30]
jae 0x415c21
lea esp, [esp]
mov esi, dword [esp + 0x48]
sub esi, dword [esp + 0x38]
test ebp, ebp
jle 0x415bf7
fld qword [esp + 0x68]
sub esp, 0x10
mov eax, esi
fstp qword [esp + 8]
test eax, eax
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
jge 0x415b8f
fadd qword [0x43d7e8]
mov ecx, dword [esp + 0x64]
fstp qword [esp]
push ecx
mov ecx, ebx
call fcn.00415060
imul esi, ebp
fstp dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea eax, [edx + esi*4]
mov dword [esp + 0x18], eax
lea esi, [ebx + 0x10cbc38]
mov dword [esp + 0x1c], ebp
lea ebx, [ebx]
mov ecx, dword [esi]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, 1
push ecx
mov ecx, dword [ebx + 0x10cc078]
push edx
push eax
call fcn.004018f0
fmul dword [esp + 0x24]
mov eax, dword [esp + 0x18]
add eax, 4
fstp dword [eax - 4]
add esi, 4
sub dword [esp + 0x1c], 1
mov dword [esp + 0x18], eax
jne 0x415bc0
add dword [esp + 0x48], 1
mov eax, dword [esp + 0x4c]
adc eax, 0
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
jl 0x415b60
jg 0x415c21
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x48], ecx
jb 0x415b60
mov edx, dword [ebx + 0x1097a10]
push 2
push 1
push 0x400
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x35c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x10cbf58], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x10cbf64], eax
mov dword [ebx + 0x10cbf54], edx
mov edx, dword [esp + 0x38]
mov dword [ebx + 0x10cbf60], edx
mov edx, dword [esp + 0x34]
mov dword [ebx + 0x10cbf6c], edx
mov eax, edi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea ecx, [esp + 0x10380]
mov dword [ebx + 0x10cbf50], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x10cbf5c], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x10cbf68], ecx
mov dword [ebx + 0x10cc010], edi
xor esi, esi
mov dword [ebx + 0x10cbff0], esi
mov dword [ebx + 0x10cbff4], eax
lea eax, [edi + edi]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cbff8], eax
lea eax, [edi + edi*2]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cbffc], eax
lea eax, [edi*4]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cc000], eax
lea eax, [edi + edi*4]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cc004], eax
lea eax, [edi + edi*2]
add eax, eax
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cc008], eax
lea eax, [edi*8]
sub eax, edi
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cc00c], eax
lea eax, [esp + 0x1d8]
mov dword [esp + 0x18], eax
lea eax, [ebx + 0x10cbf70]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 0
push 0
push eax
push 0x415860
push 0
push 0
mov dword [ecx], 0
mov dword [eax], esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xfffffffffffffffe
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, 4
add dword [esp + 0x20], eax
add dword [esp + 0x18], eax
add esi, 1
cmp esi, 8
jl 0x415d44
jmp 0x415d90
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [ebx + 0x10cbf80]
add esi, dword [ebx + 0x10cbf88]
add esi, dword [ebx + 0x10cbf78]
add esi, dword [ebx + 0x10cbf84]
add esi, dword [ebx + 0x10cbf74]
add esi, dword [ebx + 0x10cbf70]
add esi, dword [ebx + 0x10cbf8c]
add esi, dword [ebx + 0x10cbf7c]
mov eax, esi
cdq
and edx, 7
add eax, edx
mov edx, dword [ebx + 0x1097a10]
sar eax, 3
push eax
push 1
push 0x400
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, 0x320
jl 0x415d90
mov ecx, dword [ebx + 0x10cc078]
xor eax, eax
cmp edi, eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
fld dword [ecx + 0x4ff0]
fdivr qword [0x43d8c0]
mov dword [esp + 0x18], eax
fst qword [esp + 0x48]
fld qword [0x43eaf0]
fstp qword [esp + 0x68]
fld qword [0x43eae8]
jle 0x415f8b
mov edx, dword [esp + 0x58]
mov dword [esp + 0x20], edx
xor esi, esi
test ebp, ebp
jle 0x415f6b
mov eax, dword [esp + 0x58]
fstp st(0)
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x44]
sub ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x415e97
fstp st(0)
fld qword [esp + 0x48]
mov eax, dword [esp + 0x24]
fld qword [eax + edi]
fmul st(1)
fld qword [esp + 0xb8]
fdiv st(1), st(0)
fxch st(1)
fst qword [esp + 0x30]
fxch st(2)
fmul qword [edi]
fdivrp st(1)
fst qword [esp + 0xb0]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
call fcn.00424de0
fst qword [esp + 0xc0]
call fcn.00425540
fstp dword [esp + 0x54]
fld dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
fld qword [0x43eae8]
fmul st(1), st(0)
fxch st(1)
fst qword [ecx + edi]
fcom qword [esp + esi*8 + 0xd8]
fnstsw ax
test ah, 5
jp 0x415f03
fst qword [esp + esi*8 + 0xd8]
fcom qword [esp + esi*8 + 0x258]
fnstsw ax
test ah, 0x41
jne 0x415f1a
fstp qword [esp + esi*8 + 0x258]
jmp 0x415f1c
fstp st(0)
mov eax, dword [esp + 0x18]
fld qword [esp + 0x30]
fstp qword [esp + eax*8 + 0x380]
fld qword [esp + 0xb0]
fstp qword [esp + eax*8 + 0x8380]
fld qword [esp + 0x68]
fld qword [esp + 0xc0]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x415f55
fstp qword [esp + 0x68]
jmp 0x415f57
fstp st(0)
add esi, 1
add edi, 8
cmp esi, ebp
jl 0x415e91
fld qword [esp + 0x48]
fxch st(1)
mov eax, dword [esp + 0x18]
add eax, 1
lea ecx, [ebp*8]
add dword [esp + 0x20], ecx
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jl 0x415e67
xor eax, eax
fstp st(1)
cmp ebp, 4
jl 0x415ff2
lea ecx, [ebp - 3]
fld qword [esp + eax*8 + 0xd8]
add eax, 4
cmp eax, ecx
fsub qword [esp + eax*8 + 0x238]
fstp qword [esp + eax*8 + 0xb8]
fld qword [esp + eax*8 + 0xc0]
fsub qword [esp + eax*8 + 0x240]
fstp qword [esp + eax*8 + 0xc0]
fld qword [esp + eax*8 + 0xc8]
fsub qword [esp + eax*8 + 0x248]
fstp qword [esp + eax*8 + 0xc8]
fld qword [esp + eax*8 + 0xd0]
fsub qword [esp + eax*8 + 0x250]
fstp qword [esp + eax*8 + 0xd0]
jl 0x415f97
cmp eax, ebp
jge 0x416012
fld qword [esp + eax*8 + 0xd8]
add eax, 1
cmp eax, ebp
fsub qword [esp + eax*8 + 0x250]
fstp qword [esp + eax*8 + 0xd0]
jl 0x415ff6
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x4160a7
mov edi, dword [esp + 0x44]
xor esi, esi
mov dword [esp + 0x1c], eax
xor eax, eax
cmp ebp, 4
jl 0x416071
lea edx, [ebp - 3]
mov ecx, edi
fld qword [ecx]
add eax, 4
fsub qword [esp + eax*8 + 0x238]
add ecx, 0x20
cmp eax, edx
fstp qword [ecx - 0x20]
fld qword [ecx - 0x18]
fsub qword [esp + eax*8 + 0x240]
fstp qword [ecx - 0x18]
fld qword [ecx - 0x10]
fsub qword [esp + eax*8 + 0x248]
fstp qword [ecx - 0x10]
fld qword [ecx - 8]
fsub qword [esp + eax*8 + 0x250]
fstp qword [ecx - 8]
jl 0x416034
cmp eax, ebp
jge 0x416095
mov ecx, dword [esp + 0x44]
lea edx, [esi + eax]
lea ecx, [ecx + edx*8]
fld qword [ecx]
add eax, 1
fsub qword [esp + eax*8 + 0x250]
add ecx, 8
cmp eax, ebp
fstp qword [ecx - 8]
jl 0x41607f
lea eax, [ebp*8]
add esi, ebp
add edi, eax
sub dword [esp + 0x1c], 1
jne 0x416028
xor esi, esi
test ebp, ebp
jle 0x4160ee
fldz
lea edi, [ebx + 0x10cbcb8]
fst dword [edi + 0x80]
fld qword [esp + esi*8 + 0xd8]
fabs
fdiv st(2)
call fcn.00423f00
or ecx, 0xffffffff
sub ecx, eax
lea edx, [ecx + ecx*4]
add edx, edx
add edx, edx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
add esi, 1
add edi, 4
cmp esi, ebp
fstp dword [edi - 4]
jl 0x4160b5
fstp st(1)
fstp st(0)
mov edi, dword [esp + 0x5c]
fild dword [esp + 0x28]
push ecx
mov ecx, dword [ebx + 0x10cc078]
lea eax, [ebx + 0x10cbbb4]
fmul qword [0x43dab0]
fld qword [esp + 0x94]
fsub qword [esp + 0x64]
fdivp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
push eax
push edi
call fcn.00402280
push 0
push 0x20
push 3
push 0
push 0
push 0x40000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x41616f
mov eax, dword [ebx + 0x1097a10]
push 0x64
push 1
push 0x400
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebx + 0x1097a10], 0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 2
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x416230
mov ecx, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
xor eax, eax
cmp ebp, 4
jl 0x4161d5
mov ecx, dword [esp + 0x2c]
lea edx, [ebp - 3]
fld qword [ecx]
add eax, 4
fstp dword [esp + eax*4 + 0xc8]
add ecx, 0x20
cmp eax, edx
fld qword [ecx - 0x18]
fstp dword [esp + eax*4 + 0xcc]
fld qword [ecx - 0x10]
fstp dword [esp + eax*4 + 0xd0]
fld qword [ecx - 8]
fstp dword [esp + eax*4 + 0xd4]
jl 0x4161a4
cmp eax, ebp
jge 0x4161f6
mov ecx, dword [esp + 0x44]
lea edx, [edi + eax]
lea ecx, [ecx + edx*8]
fld qword [ecx]
add eax, 1
fstp dword [esp + eax*4 + 0xd4]
add ecx, 8
cmp eax, ebp
jl 0x4161e3
push 0
lea edx, [esp + 0x28]
push edx
lea eax, [ebp*4]
push eax
lea eax, [esp + 0xe4]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp*8]
add dword [esp + 0x2c], eax
add edi, ebp
sub dword [esp + 0x1c], 1
jne 0x416196
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
push esi
mov ecx, ebx
call fcn.004130e0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea ecx, [esp + 0xc8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx edx, word [esp + 0x80]
movzx esi, word [esp + 0xd0]
push 0
push 0
push 3
push 0
push 0
push 0x40000000
push edi
sub esi, edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esp + 0xa0]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileTime]
cmp ebp, 0xffffffff
je 0x41633e
fld qword [esp + 0x60]
mov edi, 0x18
fdiv qword [0x43dab0]
sub edi, esi
call fcn.00423f00
cdq
mov ecx, 0x3c
idiv ecx
lea esi, [esp + 0x98]
mov dword [esp + 0x1c], 3
mov dword [esp + 0x54], edx
mov dword [esp + 0x24], eax
lea esp, [esp]
lea edx, [esp + 0x78]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov ax, word [esp + 0x24]
mov cx, word [esp + 0x54]
push esi
lea edx, [esp + 0x7c]
push edx
mov word [esp + 0x88], di
mov word [esp + 0x8a], ax
mov word [esp + 0x8c], cx
mov word [esp + 0x8e], 0
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
add esi, 8
sub dword [esp + 0x1c], 1
jne 0x4162f0
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esp + 0xa0]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esp + 0x88]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
call esi
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalFree]
push edi
call ebp
mov edi, dword [esp + 0x74]
push edi
call esi
push edi
call ebp
mov edi, dword [esp + 0x8c]
push edi
call esi
push edi
call ebp
mov edi, dword [esp + 0x70]
push edi
call esi
push edi
call ebp
mov eax, dword [ebx + 0x1097a10]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x64
push 1
push 0x400
push eax
mov dword [ebx + 0x1097a30], 1
call esi
mov ecx, dword [esp + 0x5c]
push ecx
push 1
mov dword [ebx + 0x1097a10], 0
mov edx, dword [0x454174]
push 0x400
push edx
call esi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret