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

Disassembly:
mov eax, 0x20360
call fcn.0041d650
mov ecx, dword [ebx + 0x10cc07c]
mov edx, dword [ecx + 0xe0]
lea eax, [ebx + 0x10969f8]
push ebp
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0xe4]
mov ecx, dword [ebx + 0x10cc080]
push esi
mov esi, dword [ecx + 0xe0]
mov ecx, dword [ecx + 0xe4]
cmp eax, ecx
push edi
jg 0x415c0f
jl 0x415c05
cmp edx, esi
jae 0x415c0f
mov edi, edx
mov ebp, eax
mov edx, esi
mov eax, ecx
jmp 0x415c13
mov edi, esi
mov ebp, ecx
cmp edi, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jne 0x415c2f
cmp ebp, eax
je 0x41673d
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x34]
mov ecx, dword [ebx + 0x10cbf38]
sub edx, eax
mov eax, dword [esp + 0x24]
sbb eax, ebp
mov ebp, dword [ebx + 0x10cbbb4]
mov dword [esp + 0x5c], eax
mov eax, dword [0x43c548]
mov dword [esp + 0x58], edx
fild qword [esp + 0x58]
mov edx, dword [ebx + 0x10cbf3c]
mov dword [esp + 0x18], ecx
push pe_nt_image_headers32
fstp qword [esp + 0x64]
shl eax, 9
fld qword [ebx + 0x10cbf40]
mov ecx, 0x3e
fstp qword [esp + 0x5c]
lea esi, [esp + 0x244]
fld qword [ebx + 0x10cbf48]
lea edi, [esp + 0x24c]
fstp qword [esp + 0x8c]
add eax, 0x43b548
fld qword [0x433de0]
push eax
fstp qword [esp + 0x248]
rep movsd dword es:[edi], dword [esi]
fld qword [0x433dd8]
fstp qword [esp + 0xc8]
mov ecx, 0x3e
lea esi, [esp + 0xc8]
lea edi, [esp + 0xd0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x43b4b0]
push 0xcc
push ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x64], edx
call dword [sym.imp.USER32.dll_LoadStringW]
mov eax, dword [0x43c548]
lea edx, [eax + 1]
and edx, 0x80000007
jns 0x415d06
dec edx
or edx, 0xfffffff8
inc edx
shl eax, 9
add eax, 0x43b548
push eax
mov eax, dword [ebx + 0x1097a10]
push 2
push 0x400
push eax
mov dword [0x43c548], edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [esp + 0x18]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
imul esi, ebp
shl esi, 3
push esi
push 0x40
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
mov dword [esp + 0x74], eax
call ebp
push esi
push 0x40
mov dword [esp + 0x18], eax
call edi
push eax
mov dword [esp + 0x70], eax
call ebp
push esi
push 0x40
mov dword [esp + 0x58], eax
call edi
push eax
mov dword [esp + 0x78], eax
call ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
sub ebp, dword [esp + 0x30]
imul ebp, dword [esp + 0x3c]
shl ebp, 2
push ebp
push 0x40
call edi
push eax
mov dword [esp + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
xor eax, eax
mov ecx, esi
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x10]
xor eax, eax
mov ecx, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x2c]
xor eax, eax
mov ecx, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx + 0x10cc078]
fld dword [eax + 0x4ff0]
mov eax, dword [esp + 0x18]
fdivr qword [esp + 0x60]
xor esi, esi
test eax, eax
mov dword [esp + 0xc], esi
fst qword [esp + 0xa8]
jle 0x415e83
fld qword [esp + 0x88]
mov edi, eax
fsub qword [esp + 0x58]
fild dword [esp + 0x18]
fld qword [0x433c28]
fdiv st(3)
fild dword [esp + 0xc]
fmul st(3)
fdiv st(2)
fadd qword [esp + 0x58]
fdivr qword [0x433c78]
fdivr st(4)
fadd st(0), st(0)
call fcn.0041d6e4
mov ecx, eax
and ecx, 0x80000001
jns 0x415e4f
dec ecx
or ecx, 0xfffffffe
inc ecx
cdq
je 0x415e59
sub eax, edx
sar eax, 1
inc eax
jmp 0x415e5d
sub eax, edx
sar eax, 1
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
inc esi
cmp esi, edi
mov dword [esp + 0xc], esi
fmul st(1)
fmul qword [0x433c78]
fstp qword [esp + esi*8 + 0x10360]
jl 0x415e25
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x34]
fstp st(0)
cmp eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
jg 0x415f63
jl 0x415eab
cmp ecx, dword [esp + 0x20]
jae 0x415f63
mov ebp, dword [esp + 0x3c]
nop
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x30]
test ebp, ebp
jle 0x415f2f
fld qword [esp + 0x60]
sub esp, 0x10
test ecx, ecx
fstp qword [esp + 8]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jge 0x415ed9
fadd qword [0x433ca0]
mov eax, dword [esp + 0x64]
fstp qword [esp]
call fcn.004157d0
imul ecx, ebp
fstp dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
lea edi, [edx + ecx*4]
lea esi, [ebx + 0x10cbc38]
mov dword [esp + 0xc], ebp
lea ecx, [ecx]
mov ecx, dword [esp + 0x44]
mov eax, dword [esi]
mov edx, dword [esp + 0x40]
push ecx
mov ecx, dword [ebx + 0x10cc078]
dec eax
push edx
call fcn.00402e60
fmul dword [esp + 0x14]
mov eax, dword [esp + 0xc]
add esi, 4
fstp dword [edi]
add edi, 4
dec eax
mov dword [esp + 0xc], eax
jne 0x415f00
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
add esi, 1
adc eax, 0
cmp eax, ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], eax
jl 0x415eb0
jg 0x415f67
mov eax, dword [esp + 0x20]
mov ecx, esi
cmp ecx, eax
jb 0x415eb0
jmp 0x415f67
mov ebp, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x1097a10]
push 2
push 1
push 0x400
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea edx, [esp + 0x344]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x10cbf58], edx
mov edx, dword [esp + 0x34]
mov dword [ebx + 0x10cbf64], edx
lea eax, [esp + 0x10368]
mov dword [ebx + 0x10cbf50], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x10cbf5c], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x10cbf68], eax
mov dword [ebx + 0x10cbf54], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x10cbf60], ecx
mov ecx, dword [esp + 0x24]
mov eax, edi
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cbf6c], 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]
shl eax, 1
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cc008], eax
mov eax, edi
imul eax, eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebx + 0x10cc00c], eax
lea edx, [esp + 0x1c0]
lea eax, [ebx + 0x10cbf70]
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
push 0
push 0
mov dword [eax], 0
mov eax, dword [esp + 0x14]
push eax
push 0x415740
push 0
push 0
mov dword [eax], esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xfffffffffffffffe
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov eax, 4
inc esi
add edx, eax
add ecx, eax
cmp esi, 8
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], ecx
jl 0x416090
lea esp, [esp]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebx + 0x10cbf74]
mov esi, dword [ebx + 0x10cbf84]
mov ecx, dword [ebx + 0x10cbf70]
mov eax, dword [ebx + 0x10cbf8c]
add esi, edx
mov edx, dword [ebx + 0x10cbf7c]
add esi, ecx
mov ecx, dword [ebx + 0x10cbf80]
add esi, eax
mov eax, dword [ebx + 0x10cbf88]
add esi, edx
mov edx, dword [ebx + 0x10cbf78]
add esi, ecx
mov ecx, dword [ebx + 0x1097a10]
add esi, eax
add esi, edx
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 1
push 0x400
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, 0x320
jl 0x4160e0
mov edx, dword [ebx + 0x10cc078]
xor esi, esi
cmp edi, esi
mov dword [esp + 0x1c0], esi
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1cc], esi
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1dc], esi
fld dword [edx + 0x4ff0]
fdivr qword [0x433c38]
fld qword [0x433de0]
fstp qword [esp + 0x40]
jle 0x4162a9
lea eax, [ebp*8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
xor edx, edx
test ebp, ebp
jle 0x416290
fld qword [0x433c28]
mov edi, dword [esp + 0x10]
fdiv qword [esp + 0xa8]
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
sub edi, eax
sub ebp, eax
fstp qword [esp + 0x60]
jmp 0x4161f1
fstp st(0)
fld qword [esp + 0x60]
fmul qword [edi + ecx]
fmul st(1)
fld qword [esp + 0x60]
fmul qword [ecx]
fmul st(2)
fst qword [esp + 0x20]
fld st(0)
fmulp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fld st(0)
fldlg2
fxch st(1)
fyl2x
fmul dword [0x433dc8]
fcom qword [esp + edx*8 + 0xc0]
fst qword [ecx + ebp]
fnstsw ax
test ah, 5
jp 0x416238
fst qword [esp + edx*8 + 0xc0]
fcom qword [esp + edx*8 + 0x240]
fnstsw ax
test ah, 0x41
jne 0x41624f
fstp qword [esp + edx*8 + 0x240]
jmp 0x416251
fstp st(0)
fcom qword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x416262
fstp qword [esp + 0x40]
jmp 0x416264
fstp st(0)
mov eax, dword [esp + 0x3c]
inc edx
add ecx, 8
cmp edx, eax
jl 0x4161ef
mov edi, dword [esp + 0x18]
fstp qword [esp + esi*8 + 0x368]
fld qword [esp + 0x20]
mov ebp, eax
mov eax, dword [esp + 0x50]
fstp qword [esp + esi*8 + 0x8368]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
inc esi
add edx, ecx
cmp esi, edi
mov dword [esp + 0xc], edx
jl 0x4161c2
xor esi, esi
xor eax, eax
fstp st(0)
cmp ebp, 4
jl 0x41631b
lea ecx, [ebp - 3]
jmp 0x4162c0
fld qword [esp + eax*8 + 0xc0]
add eax, 4
cmp eax, ecx
fsub qword [esp + eax*8 + 0x220]
fstp qword [esp + eax*8 + 0xa0]
fld qword [esp + eax*8 + 0xa8]
fsub qword [esp + eax*8 + 0x228]
fstp qword [esp + eax*8 + 0xa8]
fld qword [esp + eax*8 + 0xb0]
fsub qword [esp + eax*8 + 0x230]
fstp qword [esp + eax*8 + 0xb0]
fld qword [esp + eax*8 + 0xb8]
fsub qword [esp + eax*8 + 0x238]
fstp qword [esp + eax*8 + 0xb8]
jl 0x4162c0
cmp eax, ebp
jge 0x41633a
nop
fld qword [esp + eax*8 + 0xc0]
inc eax
cmp eax, ebp
fsub qword [esp + eax*8 + 0x238]
fstp qword [esp + eax*8 + 0xb8]
jl 0x416320
cmp edi, esi
jle 0x4163e6
mov eax, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
xor ecx, ecx
cmp ebp, 4
jl 0x41639d
mov eax, dword [esp + 0x10]
lea esi, [ebp - 3]
mov edi, edi
fld qword [eax]
add ecx, 4
fsub qword [esp + ecx*8 + 0x220]
add eax, 0x20
cmp ecx, esi
fstp qword [eax - 0x20]
fld qword [eax - 0x18]
fsub qword [esp + ecx*8 + 0x228]
fstp qword [eax - 0x18]
fld qword [eax - 0x10]
fsub qword [esp + ecx*8 + 0x230]
fstp qword [eax - 0x10]
fld qword [eax - 8]
fsub qword [esp + ecx*8 + 0x238]
fstp qword [eax - 8]
jl 0x416360
cmp ecx, ebp
jge 0x4163c4
mov esi, dword [esp + 0x2c]
lea eax, [edx + ecx]
lea eax, [esi + eax*8]
jmp 0x4163b0
fld qword [eax]
inc ecx
fsub qword [esp + ecx*8 + 0x238]
add eax, 8
cmp ecx, ebp
fstp qword [eax - 8]
jl 0x4163b0
mov ecx, dword [esp + 0x10]
lea eax, [ebp*8]
add ecx, eax
mov eax, dword [esp + 0xc]
add edx, ebp
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
jne 0x416350
xor esi, esi
test ebp, ebp
jle 0x416447
lea ecx, [ebx + 0x10cbcb8]
mov dword [esp + 0x10], ecx
jmp 0x416400
fld qword [esp + esi*8 + 0xc0]
mov edx, dword [esp + 0x10]
fabs
mov dword [edx + 0x80], 0
fmul qword [0x433dc0]
call fcn.0041d6e4
or ecx, 0xffffffff
sub ecx, eax
lea eax, [ecx + ecx*4]
shl eax, 2
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc esi
fstp dword [eax]
add eax, 4
cmp esi, ebp
mov dword [esp + 0x10], eax
jl 0x416400
fild dword [esp + 0x18]
mov esi, dword [ebx + 0x10cc078]
push ecx
mov ecx, dword [esp + 0x50]
fmul qword [0x433c78]
lea eax, [ebx + 0x10cbbb4]
fld qword [esp + 0x8c]
fsub qword [esp + 0x5c]
fdivp st(1)
fstp dword [esp]
push ecx
call fcn.004037f0
mov edx, dword [esp + 0x4c]
push 0
push 0x20
push 3
push 0
push 0
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4164c3
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
add esp, 0x20360
ret
push 2
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test edi, edi
jle 0x416593
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
xor eax, eax
cmp ebp, 4
jl 0x416531
mov ecx, dword [esp + 0xc]
lea edx, [ebp - 3]
jmp 0x416500
fld qword [ecx]
add eax, 4
fstp dword [esp + eax*4 + 0xb0]
add ecx, 0x20
cmp eax, edx
fld qword [ecx - 0x18]
fstp dword [esp + eax*4 + 0xb4]
fld qword [ecx - 0x10]
fstp dword [esp + eax*4 + 0xb8]
fld qword [ecx - 8]
fstp dword [esp + eax*4 + 0xbc]
jl 0x416500
cmp eax, ebp
jge 0x416553
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add edx, eax
lea ecx, [ecx + edx*8]
fld qword [ecx]
inc eax
fstp dword [esp + eax*4 + 0xbc]
add ecx, 8
cmp eax, ebp
jl 0x416542
push 0
lea edx, [esp + 0x18]
push edx
lea eax, [ebp*4]
push eax
lea eax, [esp + 0xcc]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
lea eax, [ebp*8]
add edx, ebp
add ecx, eax
dec edi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
jne 0x4164e8
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push ecx
push edx
push esi
mov ecx, ebx
call fcn.00415470
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 + 0xb0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx edx, word [esp + 0x80]
movzx edi, word [esp + 0xb8]
mov eax, dword [esp + 0x4c]
push 0
push 0
push 3
push 0
push 0
push 0x40000000
push eax
sub edi, edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
lea ecx, [esp + 0xa0]
push ecx
mov ebp, eax
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0x98]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileTime]
cmp ebp, 0xffffffff
je 0x4166a2
fld qword [esp + 0x58]
mov esi, 0x18
fmul qword [0x433dd0]
sub esi, edi
call fcn.0041d6e4
cdq
mov ecx, 0x3c
idiv ecx
lea edi, [esp + 0x90]
mov dword [esp + 0x10], 3
mov dword [esp + 0x54], edx
mov dword [esp + 0x14], eax
lea edx, [esp + 0x78]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov ax, word [esp + 0x14]
mov cx, word [esp + 0x54]
push edi
lea edx, [esp + 0x7c]
push edx
mov word [esp + 0x88], si
mov word [esp + 0x8a], ax
mov word [esp + 0x8c], cx
mov word [esp + 0x8e], 0
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov eax, dword [esp + 0x10]
add edi, 8
dec eax
mov dword [esp + 0x10], eax
jne 0x416650
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x98]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esp + 0x68]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalFree]
push esi
call ebp
mov esi, dword [esp + 0x74]
push esi
call edi
push esi
call ebp
mov esi, dword [esp + 0x70]
push esi
call edi
push esi
call ebp
mov esi, dword [esp + 0x6c]
push esi
call edi
push esi
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 + 0x4c]
mov edx, dword [0x43b528]
push ecx
push 1
push 0x400
push edx
mov dword [ebx + 0x1097a10], 0
call esi
pop edi
pop esi
pop ebp
add esp, 0x20360
ret