Function at 0x486e00
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x517ab0
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x577680]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebx + 0x1c]
lea edi, [ebx + 0x1c]
cmp dword [eax - 0xc], 0
jne 0x486e4d
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xa4]
cmp dword [eax - 0xc], 0
jne 0x486f6a
cmp byte [ebx + 0x85], 0
je 0x486ec3
lea eax, [ebp - 0x1c]
push eax
call fcn.004150c0
add esp, 4
push eax
lea ecx, [ebx + 0xa4]
mov dword [ebp - 4], 0
call fcn.004026b0
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x486ea9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x52e4a0
push str..exe
lea ecx, [ebx + 0xa4]
call fcn.00408eb0
jmp 0x486f6a
lea eax, [ebp - 0x20]
push eax
call fcn.00414f70
push edi
push eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 4], 1
call fcn.00402a80
push str..crx
push eax
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 2
call fcn.00402b40
add esp, 0x1c
push eax
lea ecx, [ebx + 0xa4]
mov byte [ebp - 4], 3
call fcn.004026b0
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x486f25
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x486f46
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x486f6a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, ebx
call fcn.0048a130
cmp byte [ebx + 0xf0], 0
jne 0x48707f
push str.Chrome
lea ecx, [ebp - 0x1c]
call fcn.00401c30
push str.Google
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 4
call fcn.00401c30
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.0047bdf0
mov esi, dword [ebp - 0x14]
add esi, 0xfffffff0
mov byte [ebp - 0xd], al
mov byte [ebp - 4], 4
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x486fd6
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x486ffa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x533f04
lea ecx, [ebp - 0x14]
call fcn.00401c30
push 0x52e4a0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 6
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 6
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487052
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487564
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x487564
push str.Chrome_SxS
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.Google
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 8
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov byte [ebp - 0xd], al
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4870d7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4870fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.Chrome
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.360Chrome
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xa
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487153
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487177
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x52e4a0
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.Spark
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xc
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xd
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4871cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4871f3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.Dragon
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.Comodo
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xe
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x48724b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x48726f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.Opera_Stable
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.Opera_Software
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x10
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0x10
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4872c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4872eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x52e4a0
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.PlayFree_Browser
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x12
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x13
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0x12
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487343
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487367
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x52e4a0
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.Torch
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x14
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x15
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0x14
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4873bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4873e3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.YandexBrowser
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.Yandex
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x16
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x17
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x48743b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x48745f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0xec]
cmp dword [eax - 0xc], 0
je 0x4874e7
push 0x52e4a0
lea ecx, [ebp - 0x14]
call fcn.00401c30
push str.360se6
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x18
call fcn.00401c30
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x19
call fcn.0047bdf0
mov edx, dword [ebp - 0x1c]
or byte [ebp - 0xd], al
add edx, 0xfffffff0
mov byte [ebp - 4], 0x18
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4874c3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4874e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [0x578ad4]
mov eax, esi
imul eax, esi
imul eax, esi
cdq
mov ecx, 0x13
idiv ecx
cmp edx, 3
jne 0x487564
test esi, esi
je 0x487564
mov ecx, esi
and ecx, 0x80000001
jns 0x487515
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x487522
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
jmp 0x487529
lea esi, [esi*2 + 1]
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
mov dword [0x578ad4], esi
sub ecx, 0
je 0x487553
sub ecx, 2
je 0x487556
dec ecx
je 0x487557
jmp 0x487560
add esi, 2
inc esi
add esi, 2
mov dword [0x578ad4], esi
test esi, esi
jne 0x487506
cmp dword [ebx + 0xd0], 2
je 0x487adc
mov eax, dword [ebx + 0xc4]
cmp dword [eax - 0xc], 0
jne 0x48758a
cmp byte [ebx + 0xc8], 0
je 0x487ac2
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebx + 0xd0], 1
call fcn.0040d670
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0x1a
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x487852
mov eax, dword [ebx + 0xc4]
cmp dword [eax - 0xc], ecx
jne 0x4875d4
cmp byte [ebx + 0xc8], cl
je 0x48784a
mov ecx, dword [0x578ad4]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0xb
idiv ecx
cmp edx, 4
jne 0x487626
push 0x28
call fcn.004ef820
add esp, 4
mov edi, eax
xor esi, esi
jmp 0x487600
call fcn.004f1791
add eax, dword [0x578ad4]
inc esi
mov dword [edi + esi*4 - 4], eax
cmp esi, 0xa
jl 0x487600
mov eax, dword [edi + 0x24]
push edi
mov dword [0x578ad4], eax
call fcn.004f0683
add esp, 4
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x30]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x1c
call fcn.00483b30
test al, al
je 0x4877ff
mov ecx, dword [0x578ad4]
xor esi, esi
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 6
idiv ecx
cmp edx, 4
jne 0x487690
dec dword [0x579f68]
lea esp, [esp]
lea eax, [ebp - 0x30]
push eax
mov ecx, ebx
call fcn.004056c0
mov edi, eax
mov dword [ebp - 0x20], edi
call fcn.004939c0
test al, al
jne 0x487710
mov ecx, dword [0x578ad4]
test ecx, ecx
je 0x487710
mov eax, ecx
and eax, 0x80000001
jns 0x4876c1
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4876ce
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jmp 0x4876d5
lea ecx, [ecx*2 + 1]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
lea eax, [eax + eax*2]
sub edx, eax
mov dword [0x578ad4], ecx
sub edx, 0
je 0x4876ff
sub edx, 2
je 0x487702
dec edx
je 0x487703
jmp 0x48770c
add ecx, 2
inc ecx
add ecx, 2
mov dword [0x578ad4], ecx
test ecx, ecx
jne 0x4876b3
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x14]
lea eax, [eax + edi*4]
push eax
call fcn.004026b0
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.0047bc70
test al, al
je 0x48773d
inc esi
cmp esi, 0xa
jl 0x487690
jmp 0x4877ff
lea eax, [ebp - 0x14]
lea ecx, [ebx + 0xac]
push eax
call fcn.004026b0
call fcn.004f1791
mov esi, eax
call fcn.004f2199
add eax, esi
cdq
mov edi, 0x2710
idiv edi
lea ebx, [edx + 0x2710]
call fcn.004f1791
mov esi, eax
call fcn.004f2199
add eax, esi
cdq
idiv edi
mov edi, edx
call fcn.004f1791
mov esi, eax
call fcn.004f2199
add eax, esi
cdq
mov ecx, 0x2710
idiv ecx
mov eax, dword [ebp - 0x18]
add eax, 0xb0
push edx
push edi
push ebx
push str._d._d._d
push eax
call fcn.004059e0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x18]
add esp, 0x14
lea esi, [ecx + eax*4]
lea ecx, [ebx + 0xb4]
push esi
call fcn.004026b0
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebp - 0x14]
push eax
mov byte [ebx + 0xd8], 1
call fcn.0040fd20
movzx eax, byte [ebx + 0xf1]
push eax
push esi
call fcn.0040fe40
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebx + 0xb0]
push eax
call fcn.0040ff60
add esp, 0x18
mov esi, dword [ebp - 0x3c]
mov byte [ebp - 4], 0x1b
test esi, esi
je 0x48781f
push dword [ebp - 0x38]
lea ecx, [ebp - 0x3c]
push esi
call fcn.0040cbe0
push esi
call fcn.004f03fe
add esp, 4
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x487a9e
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x30]
push eax
call fcn.0040cbe0
push dword [ebp - 0x30]
call fcn.004f03fe
add esp, 4
jmp 0x487a9e
test ecx, ecx
je 0x487a9e
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebx + 0xac]
call fcn.004026b0
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040d7a0
add esp, 8
lea esi, [ebx + 0xb4]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.004026b0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1a
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4878a8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.DAQAB
lea ecx, [ebp - 0x18]
call fcn.00401c30
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1e
test eax, eax
jne 0x4878c5
or ecx, 0xffffffff
jmp 0x4878ee
mov ecx, dword [esi]
cmp dword [ecx - 0xc], 0
jge 0x4878d2
or ecx, 0xffffffff
jmp 0x4878ee
push eax
push ecx
call fcn.004f19aa
mov ecx, eax
mov eax, dword [ebp - 0x18]
add esp, 8
test ecx, ecx
jne 0x4878ea
or ecx, 0xffffffff
jmp 0x4878ee
sub ecx, dword [esi]
sar ecx, 1
mov eax, dword [eax - 0xc]
add eax, ecx
push eax
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.00408550
push eax
mov ecx, esi
mov byte [ebp - 4], 0x1f
call fcn.004026b0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1e
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x48792c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040d8d0
add esp, 8
push eax
lea ecx, [ebx + 0xb0]
mov byte [ebp - 4], 0x20
call fcn.004026b0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1e
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487971
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebx + 0xd8], 1
call fcn.004939c0
test al, al
jne 0x487987
dec dword [0x578ad4]
mov eax, dword [ebx + 0xac]
cmp dword [eax - 0xc], 0
je 0x4879ab
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x4879ab
mov eax, dword [ebx + 0xb0]
cmp dword [eax - 0xc], 0
jne 0x487a7d
push 0x52e4a0
lea ecx, [ebp - 0x1c]
call fcn.00401c30
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 0x21
call fcn.0040fd20
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
add esp, 8
mov byte [ebp - 4], 0x1e
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4879f1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x52e4a0
lea ecx, [ebp - 0x1c]
call fcn.00401c30
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 0x22
call fcn.0040fe40
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
add esp, 8
mov byte [ebp - 4], 0x1e
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487a37
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x52e4a0
lea ecx, [ebp - 0x1c]
call fcn.00401c30
movzx eax, byte [ebx + 0xf1]
push eax
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 0x23
call fcn.0040ff60
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
add esp, 8
mov byte [ebp - 4], 0x1e
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487a7d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1a
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487a9e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487ac2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00493af0
test al, al
jne 0x487adc
push 0x1f
push 0x1e
push str._d__d_n
call fcn.004f20c4
add esp, 0xc
mov eax, dword [ebx + 0xac]
cmp dword [eax - 0xc], 0
je 0x486e39
mov eax, dword [ebx + 0xb0]
cmp dword [eax - 0xc], 0
je 0x486e39
mov eax, dword [ebx + 0xb4]
cmp dword [eax - 0xc], 0
je 0x486e39
xor al, al
mov byte [ebp - 0xe], al
mov eax, dword [ebx + 0x9c]
sub eax, dword [ebx + 0x98]
xor esi, esi
test eax, 0xfffffffc
jle 0x487c29
mov edi, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + esi*4]
sub eax, 0x10
push eax
call fcn.004056f0
add eax, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push 1
push eax
mov dword [ebp - 4], 0x24
call fcn.0041eb30
add esp, 0xc
call fcn.00493b60
test al, al
jne 0x487b72
push 0
push 0
push 0
push 0
push 0
call edi
cmp dword [ebx + 0xd0], 2
jne 0x487bbb
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.00482f40
lea ecx, [ebx + 0xd4]
push eax
mov byte [ebp - 4], 0x25
call fcn.004026b0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x24
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487bbb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.00487c40
mov edx, dword [ebp - 0x18]
or byte [ebp - 0xe], al
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x487bed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x9c]
sub eax, dword [ebx + 0x98]
inc esi
sar eax, 2
cmp esi, eax
jl 0x487b30
mov al, byte [ebp - 0xe]
test al, al
je 0x487c29
cmp byte [ebp - 0xd], 0
je 0x487c29
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret