Function at 0x4272c0
Capabilities:
Check mutex on windows
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47e4c0
mov eax, dword fs:[0]
push eax
sub esp, 0x204
mov eax, dword [0x4ade78]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x20c], edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x200], eax
mov eax, dword [ebp + 0xc]
push str.IEMainWindowAccessChannel
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x210], edi
mov dword [ebp - 0x204], eax
call fcn.00401b30
lea eax, [ebp - 0x1f0]
push eax
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00417020
mov edx, dword [ebp - 0x1f0]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 2
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x427359
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [edi + 0xc], 0
mov eax, dword [0x4adbb8]
lea esi, [edi + 0x14]
mov ecx, 0x4adbb8
mov dword [ebp - 0x1f4], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
mov byte [ebp - 4], 3
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi + 0x18], eax
mov eax, dword [0x4adbb8]
lea esi, [edi + 0x1c]
mov ecx, 0x4adbb8
mov byte [ebp - 4], 4
mov dword [ebp - 0x1ec], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, dword [0x4adbb8]
lea esi, [edi + 0x20]
mov ecx, 0x4adbb8
mov byte [ebp - 4], 5
mov dword [ebp - 0x208], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, dword [0x4adbb8]
lea esi, [edi + 0x24]
mov ecx, 0x4adbb8
mov byte [ebp - 4], 6
mov dword [ebp - 0x1f8], esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
mov byte [ebp - 4], 7
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi + 0x28], eax
push fcn.00402850
push 0x401c50
push 3
lea eax, [edi + 0x40]
push 4
push eax
mov byte [ebp - 4], 8
mov dword [edi + 0x2c], 3
mov dword [edi + 0x30], 0
mov dword [ebp - 0x1fc], eax
call fcn.00461d1f
mov byte [ebp - 4], 9
call fcn.00429110
test al, al
jne 0x4274a0
movd xmm4, dword [0x4af2c0]
movsd xmm3, qword [0x4919d0]
movsd xmm6, qword [0x4919d8]
movsd xmm5, qword [0x4919c8]
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
jmp 0x427470
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x42748a
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x427470
push 0x103
lea eax, [ebp - 0x113]
push 0
push eax
mov byte [ebp - 0x114], 0
call fcn.00462e00
mov eax, dword [0x4adbb8]
add esp, 0xc
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1f0], eax
mov ecx, dword [0x4af2c0]
mov byte [ebp - 4], 0xa
lea eax, [ecx + 1]
imul eax, ecx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x4274ef
dec eax
or eax, 0xfffffff8
inc eax
cmp eax, 1
jne 0x4274fb
dec ecx
mov dword [0x4af2c0], ecx
push 0x1f
push str.GlobalMinBhoAccessChannelMutex
lea ecx, [ebp - 0x1f0]
call fcn.00408620
push 0x27
push str.07462cf09e3b013003f40973f5b3301f0032850
lea ecx, [ebp - 0x1f0]
call fcn.004035a0
mov esi, dword [ebp - 0x1f0]
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [edi + 0x10], eax
test eax, eax
jne 0x427543
push esi
push eax
push eax
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
mov dword [edi + 0x10], eax
lea eax, [ebp - 0x1e8]
push eax
call fcn.0045b0c0
add esp, 4
push eax
lea ecx, [edi + 0x24]
mov byte [ebp - 4], 0xb
call fcn.00402970
mov edx, dword [ebp - 0x1e8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x427582
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [edi + 0x24]
push eax
mov ecx, edi
call fcn.004289c0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x1e8], 0
mov ecx, 0x13
mov edi, 0x104
jmp 0x4275b0
mov esi, dword [0x4af2c0]
mov eax, esi
imul eax, esi
imul eax, esi
cdq
idiv ecx
cmp edx, 0xe
jne 0x4275f1
xor edi, edi
mov ebx, esi
lea ebx, [ebx]
mov eax, ebx
lea ecx, [esi + edi]
cdq
idiv ecx
inc edi
dec ebx
mov dword [ebp + edi*4 - 0x1e8], edx
cmp edi, 0x34
jb 0x4275d0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, 0x104
push dword [ebp - 0x200]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x114]
push eax
call esi
lea eax, [ebp - 0x114]
push eax
call ebx
lea ecx, [ebp - 0x114]
push str.Event
add eax, ecx
push eax
call esi
lea eax, [ebp - 0x114]
push eax
call ebx
mov ecx, edi
sub ecx, eax
push 0x492804
push ecx
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
call fcn.00463920
mov eax, dword [0x4af2c0]
imul eax, eax
cdq
mov ecx, 9
idiv ecx
add esp, 0xc
cmp edx, 5
jne 0x427662
call fcn.00461e71
mov dword [0x4af2c0], eax
lea eax, [ebp - 0x114]
push eax
call ebx
lea ecx, [ebp - 0x114]
push str.07462cf09e3b013003f40973f5b3301f0032850
add eax, ecx
push eax
call esi
mov eax, dword [0x4af2c0]
imul eax, eax
cdq
mov ecx, 0x18
idiv ecx
cmp edx, 0x12
jne 0x4276a0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
lea eax, [ebp - 0x114]
push eax
call ebx
mov ecx, edi
sub ecx, eax
push 0x492808
push ecx
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
call fcn.00463920
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call ebx
push 0xa
mov ecx, edi
sub ecx, eax
push ecx
lea esi, [ebp - 0x114]
add eax, esi
push eax
push dword [ebp - 0x204]
call fcn.00463ab1
mov esi, dword [ebp + 0x10]
add esp, 0x10
test esi, esi
je 0x427737
lea eax, [ebp - 0x114]
push eax
call ebx
mov ecx, edi
sub ecx, eax
push 0x49280c
push ecx
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
call fcn.00463920
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call ebx
push 0xa
mov ecx, edi
sub ecx, eax
push ecx
lea eax, [ebp + eax - 0x114]
push eax
push esi
call fcn.00463ab1
add esp, 0x10
lea eax, [ebp - 0x114]
push eax
call ebx
mov ecx, edi
sub ecx, eax
push 0x491bdc
push ecx
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
call fcn.00463920
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call ebx
mov esi, dword [ebp - 0x1e8]
push 0xa
mov ecx, edi
sub ecx, eax
push ecx
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
push esi
call fcn.00463ab1
mov eax, dword [0x4af2c0]
imul eax, eax
cdq
mov ecx, 9
idiv ecx
add esp, 0x10
cmp edx, 8
jne 0x4277aa
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
lea eax, [ebp - 0x114]
push eax
xor eax, eax
cmp esi, 2
sete al
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [ebp - 0x1fc]
mov dword [ecx - 0xc], eax
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4277d6
sub ecx, edx
push ecx
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x114]
push eax
call fcn.00408620
add dword [ebp - 0x1fc], 4
inc esi
mov dword [ebp - 0x1e8], esi
mov ecx, 0x13
cmp esi, 3
jl 0x4275b0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor ecx, ecx
cmp eax, 0xb7
mov eax, dword [ebp - 0x20c]
setne cl
push str.Local_
mov dword [eax + 0x4c], ecx
lea eax, [ebp - 0x114]
push eax
call esi
lea eax, [ebp - 0x114]
push eax
call ebx
push dword [ebp - 0x200]
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
call esi
lea eax, [ebp - 0x114]
push eax
call ebx
lea ecx, [ebp - 0x114]
push str.Sect
add eax, ecx
push eax
call esi
lea eax, [ebp - 0x114]
push eax
call ebx
mov ecx, edi
sub ecx, eax
push 0x492804
push ecx
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
call fcn.00463920
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call ebx
lea ecx, [ebp - 0x114]
push str.07462cf09e3b013003f40973f5b3301f0032850
add eax, ecx
push eax
call esi
lea eax, [ebp - 0x114]
push eax
call ebx
mov ecx, edi
sub ecx, eax
push 0x492808
push ecx
lea ecx, [ebp - 0x114]
add eax, ecx
push eax
call fcn.00463920
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call ebx
push 0xa
mov ecx, edi
sub ecx, eax
push ecx
lea esi, [ebp - 0x114]
add eax, esi
push eax
push dword [ebp - 0x204]
call fcn.00463ab1
mov esi, dword [ebp - 0x1f0]
add esp, 0x10
cmp dword [ebp + 0x10], 0
je 0x427946
lea eax, [ebp - 0x114]
push eax
call ebx
mov ecx, edi
sub ecx, eax
push 0x49280c
push ecx
lea eax, [ebp + eax - 0x114]
push eax
call fcn.00463920
add esp, 0xc
lea eax, [ebp - 0x114]
push eax
call ebx
push 0xa
sub edi, eax
push edi
lea eax, [ebp + eax - 0x114]
push eax
push dword [ebp + 0x10]
call fcn.00463ab1
add esp, 0x10
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x427950
mov edi, dword [ebp - 0x1f4]
sub ecx, edx
push ecx
lea eax, [ebp - 0x114]
push eax
mov ecx, edi
call fcn.00408620
call fcn.00429130
test al, al
jne 0x427984
lea eax, [ebp - 0x1c0]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
mov ecx, dword [edi]
mov edi, dword [ebp - 0x1ec]
lea edx, [ecx - 0x10]
mov edi, dword [edi]
sub edi, 0x10
cmp edx, edi
je 0x4279ec
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4279dd
mov eax, dword [edx]
cmp eax, dword [edi]
jne 0x4279dd
push edx
call fcn.00403ee0
add esp, 4
mov dword [ebp - 0x1f4], eax
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x4279d0
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1ec]
add eax, 0x10
mov dword [ecx], eax
jmp 0x4279f2
push dword [ecx - 0xc]
push ecx
mov ecx, dword [ebp - 0x1ec]
call fcn.00408620
mov ecx, dword [ebp - 0x1ec]
push 0x492820
push str.Local_
call fcn.00408040
push 0x4918d4
push dword [ebp - 0x1f8]
lea eax, [ebp - 0x1e8]
push eax
call fcn.00402d20
push dword [ebp - 0x1ec]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.00402c60
push str..dat
push eax
lea eax, [ebp - 0x1f4]
push eax
mov byte [ebp - 4], 0xd
call fcn.00402d20
add esp, 0x24
mov edx, dword [ebp - 0x1ec]
mov eax, dword [eax]
mov ebx, dword [edx]
lea edi, [eax - 0x10]
sub ebx, 0x10
mov byte [ebp - 4], 0xe
cmp edi, ebx
je 0x427b02
cmp dword [ebx + 0xc], 0
jl 0x427af7
mov ecx, dword [edi]
cmp ecx, dword [ebx]
jne 0x427af7
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
mov ecx, eax
jl 0x427a97
cmp ecx, dword [edi]
jne 0x427a97
mov eax, 1
lock xadd dword [edx], eax
jmp 0x427ad3
mov eax, dword [ecx]
push 1
push dword [edi + 4]
call dword [eax]
mov edx, eax
mov dword [ebp - 0x1f8], edx
test edx, edx
jne 0x427ab1
call fcn.00408840
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
mov ecx, dword [edi + 4]
inc ecx
push ecx
lea eax, [edi + 0x10]
push eax
push ecx
lea eax, [edx + 0x10]
push eax
call fcn.00462094
mov edi, dword [ebp - 0x1f8]
add esp, 0x10
or eax, 0xffffffff
lea ecx, [ebx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x427aea
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x1ec]
lea eax, [edi + 0x10]
mov dword [ecx], eax
jmp 0x427b02
push dword [eax - 0xc]
mov ecx, edx
push eax
call fcn.00408620
mov edx, dword [ebp - 0x1f4]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x427b28
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x200]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x427b4b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1e8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x427b6e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1e8], eax
push dword [ebp - 0x204]
lea eax, [ebp - 0x1e8]
push eax
lea eax, [ebp - 0x1f4]
push eax
mov byte [ebp - 4], 0xf
call fcn.0041c880
add esp, 0xc
mov edx, dword [ebp - 0x208]
mov eax, dword [eax]
mov ebx, dword [edx]
lea edi, [eax - 0x10]
sub ebx, 0x10
mov byte [ebp - 4], 0x10
cmp edi, ebx
je 0x427c5e
cmp dword [ebx + 0xc], 0
jl 0x427c53
mov ecx, dword [edi]
cmp ecx, dword [ebx]
jne 0x427c53
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
mov ecx, eax
jl 0x427bf3
cmp ecx, dword [edi]
jne 0x427bf3
mov eax, 1
lock xadd dword [edx], eax
jmp 0x427c2f
mov eax, dword [ecx]
push 1
push dword [edi + 4]
call dword [eax]
mov edx, eax
mov dword [ebp - 0x1f8], edx
test edx, edx
jne 0x427c0d
call fcn.00408840
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
mov ecx, dword [edi + 4]
inc ecx
push ecx
lea eax, [edi + 0x10]
push eax
push ecx
lea eax, [edx + 0x10]
push eax
call fcn.00462094
mov edi, dword [ebp - 0x1f8]
add esp, 0x10
or eax, 0xffffffff
lea ecx, [ebx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x427c46
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x208]
lea eax, [edi + 0x10]
mov dword [ecx], eax
jmp 0x427c5e
push dword [eax - 0xc]
mov ecx, edx
push eax
call fcn.00408620
mov edx, dword [ebp - 0x1f4]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 0xf
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x427c84
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1e8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x427ca7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [0x4af2c0]
mov eax, ecx
imul eax, ecx
cdq
mov edi, 0xa
idiv edi
cmp edx, 2
jne 0x427cc6
dec ecx
mov dword [0x4af2c0], ecx
add esi, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x427ce1
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00461234
mov esp, ebp
pop ebp
ret 0xc