Function at 0x47544b
Capabilities:
Create directory

Disassembly:
push ebp
sub esp, 0x6c
mov eax, 0x6a152b
call fcn.00640244
sub esp, 0x238
push ebx
mov byte [ebp + 0x4f], 1
call fcn.00478821
xor ebx, ebx
mov byte [0x7ad3b4], 1
mov dword [ebp - 4], ebx
cmp byte [0x7ac241], bl
je 0x475b32
push esi
push edi
call fcn.0049544e
push 0x14
call fcn.0063ffa4
pop ecx
mov dword [ebp + 0x5c], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x4754a6
mov ecx, eax
call fcn.00429ae5
mov esi, eax
jmp 0x4754a8
mov esi, ebx
mov dword [ebp + 0x58], esi
mov byte [ebp - 4], bl
mov dword [ebp + 0x54], esi
test esi, esi
je 0x4754bb
mov eax, dword [esi]
push esi
call dword [eax + 4]
cmp word [0x7ac270], 0
mov byte [ebp - 4], 3
jne 0x475528
push 0x104
lea eax, [ebp - 0x244]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
test eax, eax
je 0x47550d
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.00460863
cmp dword [ebp + 0x44], 8
mov eax, dword [ebp + 0x30]
jae 0x4754fc
lea eax, [ebp + 0x30]
push eax
call fcn.00474772
push ebx
push 1
lea ecx, [ebp + 0x30]
call fcn.004281f2
cmp word [0x7ac270], 0
jne 0x475528
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [0x7b0cc8], eax
mov dword [0], ebx
push 0x6c21d4
lea eax, [ebp - 0x24]
push eax
call fcn.0047354f
cmp dword [ebp - 0x10], 8
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 4
jae 0x475546
lea eax, [ebp - 0x24]
push esi
push 0x45da0c
push eax
call fcn.0046e28e
cmp eax, 1
jg 0x47556e
cmp byte [esi + 0x10], 5
je 0x47559f
push 0x14
call fcn.0063ffa4
pop ecx
mov dword [ebp + 0x5c], eax
mov byte [ebp - 4], 5
jmp 0x47557d
push 0x14
call fcn.0063ffa4
pop ecx
mov dword [ebp + 0x5c], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x47558a
mov ecx, eax
call fcn.00429ae5
jmp 0x47558c
mov eax, ebx
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 4
call fcn.004763ea
mov esi, dword [ebp + 0x54]
mov dword [ebp + 0x58], esi
mov eax, dword [esi + 8]
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x60], ebx
jmp 0x4755bb
inc ebx
cmp ebx, 1
jbe 0x4755bb
cmp ebx, 2
jne 0x4755b8
inc dword [ebp + 0x64]
inc dword [ebp + 0x60]
mov edi, dword [eax + 4]
mov ecx, esi
push str.file_guard
call fcn.0045dc9c
mov eax, dword [esi + 8]
cmp edi, dword [eax + 4]
jne 0x4755aa
xor ebx, ebx
jmp 0x4755e7
inc ebx
cmp ebx, 1
jbe 0x4755e7
cmp ebx, 2
jne 0x4755e4
inc dword [ebp + 0x64]
inc dword [ebp + 0x60]
mov edi, dword [eax + 4]
mov ecx, esi
push str..fileguard
call fcn.0045dc9c
mov eax, dword [esi + 8]
cmp edi, dword [eax + 4]
jne 0x4755d6
cmp dword [0x7b3730], 0
je 0x475611
push 0x7b3720
call fcn.0047ffbf
push dword [0x7b0428]
call fcn.004d25b9
mov ebx, eax
xor edi, edi
mov ecx, dword [ebx]
xor edx, edx
sub ecx, dword [edi + 0x7acf8c]
sbb edx, dword [edi + 0x7acf90]
add dword [edi + 0x7acf3c], ecx
adc dword [edi + 0x7acf40], edx
xor ecx, ecx
mov eax, dword [ebx + 0x14]
sub eax, dword [edi + 0x7acf64]
sbb ecx, dword [edi + 0x7acf68]
add dword [edi + 0x7acf14], eax
adc dword [edi + 0x7acf18], ecx
mov eax, dword [ebx]
lea ebx, [ebx + 4]
and dword [edi + 0x7acf90], 0
mov dword [edi + 0x7acf8c], eax
mov eax, dword [ebx + 0x10]
and dword [edi + 0x7acf68], 0
mov dword [edi + 0x7acf64], eax
add edi, 8
cmp edi, 0x28
jb 0x475620
xor ebx, ebx
mov dword [ebp + 0x48], ebx
call fcn.004761f9
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
test ecx, ecx
je 0x4759d2
call fcn.004761f9
mov eax, dword [eax]
mov eax, dword [eax + ebx*4]
mov dword [ebp + 0x5c], eax
mov eax, dword [eax + 8]
jmp 0x4759a6
mov eax, dword [esi + 8]
and dword [ebp + 0x68], 0
mov edi, dword [eax + 4]
jmp 0x4756d8
mov eax, dword [ebp + 0x68]
inc eax
mov dword [ebp + 0x68], eax
cmp eax, 1
jbe 0x4756d5
cmp eax, 2
jne 0x4756d2
inc dword [ebp + 0x64]
inc dword [ebp + 0x60]
mov edi, dword [ecx + 4]
push ebx
mov ecx, esi
call fcn.0045dc9c
mov ecx, dword [esi + 8]
cmp edi, dword [ecx + 4]
jne 0x4756be
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x50]
mov ebx, dword [eax]
movzx eax, word [ecx + 8]
add ebx, dword [ecx + 4]
and eax, 0xf
cmp eax, 7
ja 0x47582c
je 0x4757f6
test eax, eax
je 0x4757c0
cmp eax, 3
jbe 0x475772
cmp eax, 4
je 0x47575f
cmp eax, 5
je 0x47573d
cmp eax, 6
jne 0x4759a0
push dword [ebx + 4]
mov ecx, esi
push dword [ebx]
push dword [ebp + 0x6c]
call fcn.0045e659
jmp 0x4759a0
test ebx, ebx
je 0x4759a0
cmp dword [ebx], 0
je 0x4759a0
cmp dword [ebx + 4], 0
je 0x4759a0
push dword [ebx + 4]
push dword [ebx]
jmp 0x475763
push dword [ecx + 0xc]
push ebx
push dword [ebp + 0x6c]
mov ecx, esi
call fcn.0045e78e
jmp 0x4759a0
cmp eax, 2
je 0x47577c
cmp eax, 3
jne 0x475781
movzx edi, byte [ebx]
jmp 0x475783
mov edi, dword [ebx]
cmp dword [ecx + 4], 0x1b7
je 0x4757b0
push ecx
call fcn.00472faa
mov ecx, eax
mov ebx, edx
mov eax, edi
cdq
cmp eax, ecx
jne 0x4757b0
cmp edx, ebx
jne 0x4757b0
mov ecx, esi
push dword [ebp + 0x6c]
call fcn.0045dc9c
jmp 0x4759a0
push edi
push dword [ebp + 0x6c]
mov ecx, esi
call fcn.0045e6c9
jmp 0x4759a0
push dword [ecx + 0x10]
lea eax, [ebp]
push eax
call fcn.00429352
push eax
mov ecx, ebx
call fcn.00438e88
push 0
push 1
lea ecx, [ebp]
mov edi, eax
call fcn.004281f2
mov ecx, esi
test edi, edi
je 0x4757a3
push ebx
push dword [ebp + 0x6c]
call fcn.0045e810
jmp 0x4759a0
push dword [ecx + 0x10]
lea eax, [ebp]
push eax
call fcn.004666a7
push eax
mov ecx, ebx
call fcn.0040ff04
push 0
push 1
lea ecx, [ebp]
mov edi, eax
call fcn.0040f52f
mov ecx, esi
test edi, edi
je 0x4757a3
push ebx
push dword [ebp + 0x6c]
call fcn.0045e7f3
jmp 0x4759a0
sub eax, 8
je 0x475938
sub eax, 1
je 0x4758f1
sub eax, 1
je 0x475867
sub eax, 5
jne 0x4759a0
push 1
push ebx
push 0xffffffffffffffff
push dword [ebp + 0x6c]
mov ecx, esi
call fcn.0045e601
push eax
mov eax, dword [ebp + 0x50]
call dword [eax + 0x18]
jmp 0x4759a0
push 0xffffffffffffffff
push dword [ebp + 0x6c]
mov ecx, esi
call fcn.0045e601
mov ecx, dword [ebx]
mov dword [ebp + 0x6c], eax
mov edx, dword [ecx]
mov dword [ebp + 0x68], edx
cmp edx, ecx
je 0x4759a0
mov esi, eax
lea edi, [edx + 0x10]
push edi
lea eax, [ebp + 0x30]
push eax
call fcn.00472d96
lea eax, [edi + 0x18]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp]
push eax
call fcn.00472d96
cmp dword [ebp + 0x44], 0x10
mov eax, dword [ebp + 0x30]
mov byte [ebp - 4], 0xa
jae 0x4758b5
lea eax, [ebp + 0x30]
lea ecx, [ebp]
push ecx
push eax
mov ecx, esi
call fcn.0045e7f3
push 0
push 1
lea ecx, [ebp]
call fcn.0040f52f
push 0
push 1
lea ecx, [ebp + 0x30]
mov byte [ebp - 4], 4
call fcn.0040f52f
lea ecx, [ebp + 0x68]
call fcn.0058d49a
mov edx, dword [ebp + 0x68]
cmp edx, dword [ebx]
jne 0x475887
jmp 0x47599d
push 0xffffffffffffffff
push dword [ebp + 0x6c]
mov ecx, esi
call fcn.0045e601
mov ecx, dword [ebx]
mov edi, eax
mov edx, dword [ecx]
mov dword [ebp + 0x68], edx
cmp edx, ecx
je 0x4759a0
cmp dword [edx + 0x24], 0x10
jb 0x475919
mov eax, dword [edx + 0x10]
jmp 0x47591c
lea eax, [edx + 0x10]
push dword [edx + 0x28]
mov ecx, edi
push eax
call fcn.0045e6c9
lea ecx, [ebp + 0x68]
call fcn.0058d49a
mov edx, dword [ebp + 0x68]
cmp edx, dword [ebx]
jne 0x47590e
jmp 0x4759a0
push 0xffffffffffffffff
push dword [ebp + 0x6c]
mov ecx, esi
call fcn.0045e736
xor edi, edi
mov dword [ebp + 0x68], eax
cmp dword [ebx + 0x10], edi
je 0x4759a0
mov esi, eax
lea ecx, [ebp + 0x34]
call fcn.0045d294
push edi
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.004f038d
cmp dword [eax + 0x14], 8
jb 0x47596c
mov eax, dword [eax]
push eax
lea ecx, [ebp + 0x34]
call fcn.0045f11f
lea eax, [ebp + 0x34]
mov ecx, esi
push eax
call fcn.0045d6bf
lea ecx, [ebp + 0x34]
mov byte [ebp - 4], 8
mov dword [ebp + 0x34], 0x6cc3c8
call fcn.0045dfda
inc edi
mov byte [ebp - 4], 4
cmp edi, dword [ebx + 0x10]
jne 0x475950
mov esi, dword [ebp + 0x58]
mov eax, dword [ebp + 0x50]
add eax, 0x1c
mov ebx, dword [eax]
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x50], eax
test ebx, ebx
jne 0x4756b2
mov ebx, dword [ebp + 0x48]
inc ebx
mov dword [ebp + 0x48], ebx
call fcn.004761f9
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
cmp ebx, ecx
jb 0x47569d
push 0xffffffffffffffff
push str.peakrate
mov ecx, esi
call fcn.0045e601
push eax
call fcn.00490f83
push esi
call fcn.00491015
push esi
call fcn.004d2ccb
push 0xffffffffffffffff
push str.apps
mov ecx, esi
call fcn.0045e601
push eax
call fcn.00490f0f
push 0xffffffffffffffff
push str.installs
mov ecx, esi
call fcn.0045e736
push eax
call fcn.00485c45
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
call fcn.0045ee1d
push esi
mov byte [ebp - 4], 0xb
call fcn.004af183
cmp byte [0x7ad3cc], 0
jne 0x475a56
xor eax, eax
cmp ax, word [0x7ac270]
je 0x475a56
push eax
push 0x7ac270
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
mov byte [0x7ad3cc], 1
push 0x6c21d4
lea eax, [ebp + 0x18]
push eax
call fcn.0047354f
mov byte [ebp - 4], 0xc
call fcn.0046253b
push 0x14
mov dword [0x7ac4a8], eax
mov dword [0x7ac4ac], edx
call fcn.0063ffa4
pop ecx
mov dword [ebp + 0x5c], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x475a96
mov ecx, eax
call fcn.00429ae5
mov edi, eax
jmp 0x475a98
xor edi, edi
mov byte [ebp - 4], 0xc
mov dword [ebp + 0x5c], edi
test edi, edi
je 0x475aa9
mov eax, dword [edi]
push edi
call dword [eax + 4]
cmp dword [ebp + 0x2c], 8
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0xe
jae 0x475ab9
lea eax, [ebp + 0x18]
push edi
push 0x45da0c
lea ecx, [ebp - 0x3c]
push ecx
push eax
call fcn.0046e806
or byte [0x7ac240], al
mov ecx, dword [ebp + 0x64]
test ecx, ecx
je 0x475af4
cmp dword [ebp + 0x2c], 8
mov eax, dword [ebp + 0x18]
jae 0x475ae2
lea eax, [ebp + 0x18]
push eax
push dword [ebp + 0x60]
push ecx
push str.Settings_integrity_check_failed__duplicate_keys:__d_count:__d___repaired:__s
call fcn.0047cc80
add esp, 0x10
mov byte [ebp - 4], 0xf
test edi, edi
je 0x475b02
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 0
push 1
lea ecx, [ebp + 0x18]
call fcn.004281f2
push 0
push 1
lea ecx, [ebp - 0x3c]
call fcn.0040f52f
push 0
push 1
lea ecx, [ebp - 0x24]
call fcn.004281f2
mov eax, dword [esi]
push esi
mov byte [ebp - 4], 0x10
call dword [eax + 8]
pop edi
pop esi
mov dword [ebp - 4], 0x11
call fcn.00478862
mov ecx, dword [ebp - 0xc]
pop ebx
mov dword fs:[0], ecx
lea esp, [ebp + 0x70]
pop ebp
ret