Function at 0x4703fb
Capabilities:
Create directory

Disassembly:
mov eax, 0x66e55d
call fcn.006313fc
sub esp, 0x2e8
push ebx
mov byte [esp + 0x1f], 1
call fcn.00475044
xor ebx, ebx
mov byte [0x75ed91], 1
mov dword [esp + 0x2f4], ebx
cmp byte [0x75ed93], bl
je 0x470bd4
push esi
push edi
call fcn.00491614
push 0x14
call fcn.00630af1
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x2fc], 1
test eax, eax
je 0x47045c
mov ecx, eax
call fcn.00424b8a
mov esi, eax
jmp 0x47045e
mov esi, ebx
mov byte [esp + 0x2fc], bl
mov dword [esp + 0x20], esi
test esi, esi
je 0x470473
mov eax, dword [esi]
push esi
call dword [eax + 4]
cmp word [0x75edc0], 0
mov byte [esp + 0x2fc], 2
jne 0x4704eb
push 0x104
lea eax, [esp + 0xf0]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
test eax, eax
je 0x4704d0
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0045e09a
cmp dword [esp + 0x40], 8
mov eax, dword [esp + 0x2c]
jae 0x4704be
lea eax, [esp + 0x2c]
push eax
call fcn.0046f720
push ebx
push 1
lea ecx, [esp + 0x34]
call fcn.0042341c
cmp word [0x75edc0], 0
jne 0x4704eb
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [0x7637b0], eax
mov dword [0], ebx
push 0x68aba4
lea eax, [esp + 0x78]
push eax
call fcn.0046e883
cmp dword [esp + 0x88], 8
mov eax, dword [esp + 0x74]
mov byte [esp + 0x2fc], 3
jae 0x470514
lea eax, [esp + 0x74]
push esi
push 0x45b281
push eax
call fcn.00469435
cmp eax, 1
jg 0x470541
cmp byte [esi + 0x10], 5
je 0x47057a
push 0x14
call fcn.00630af1
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x2fc], 4
jmp 0x470555
push 0x14
call fcn.00630af1
pop ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x2fc], 5
test eax, eax
je 0x470562
mov ecx, eax
call fcn.00424b8a
jmp 0x470564
mov eax, ebx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x300], 3
call fcn.00529dd7
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov ecx, esi
push ebp
push str.file_guard
mov ebp, ebx
mov dword [esp + 0x20], ebx
mov edi, dword [eax + 4]
mov dword [esp + 0x18], ebx
call fcn.0045b526
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp edi, eax
je 0x4705cd
inc ebx
cmp ebx, 1
jbe 0x4705b1
cmp ebx, 2
jne 0x4705ad
inc ebp
inc dword [esp + 0x14]
push str.file_guard
mov ecx, esi
mov edi, eax
call fcn.0045b526
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp edi, eax
jne 0x4705a1
mov dword [esp + 0x1c], ebp
mov eax, dword [esi + 8]
mov ecx, esi
push str..fileguard
xor ebx, ebx
mov edi, dword [eax + 4]
call fcn.0045b526
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp edi, eax
je 0x470617
inc ebx
cmp ebx, 1
jbe 0x4705fb
cmp ebx, 2
jne 0x4705f7
inc ebp
inc dword [esp + 0x14]
push str..fileguard
mov ecx, esi
mov edi, eax
call fcn.0045b526
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp edi, eax
jne 0x4705eb
mov dword [esp + 0x1c], ebp
cmp dword [0x766ac8], 0
je 0x47062a
push 0x766ab8
call fcn.0047c12e
push dword [0x762f14]
call fcn.004c98ed
mov ebx, eax
xor edi, edi
mov ecx, dword [ebx]
xor edx, edx
sub ecx, dword [edi + 0x75fa80]
sbb edx, dword [edi + 0x75fa84]
add dword [edi + 0x75fa30], ecx
adc dword [edi + 0x75fa34], edx
xor ecx, ecx
mov eax, dword [ebx + 0x14]
sub eax, dword [edi + 0x75fa58]
sbb ecx, dword [edi + 0x75fa5c]
add dword [edi + 0x75fa08], eax
adc dword [edi + 0x75fa0c], ecx
mov eax, dword [ebx]
lea ebx, [ebx + 4]
and dword [edi + 0x75fa84], 0
mov dword [edi + 0x75fa80], eax
mov eax, dword [ebx + 0x10]
and dword [edi + 0x75fa5c], 0
mov dword [edi + 0x75fa58], eax
add edi, 8
cmp edi, 0x28
jb 0x470639
xor ebx, ebx
mov dword [esp + 0x2c], ebx
call fcn.004712d1
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
test ecx, ecx
je 0x470a42
call fcn.004712d1
mov eax, dword [eax]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x18], eax
mov eax, dword [eax + 8]
jmp 0x470a0e
mov eax, dword [esi + 8]
xor ebp, ebp
mov edi, dword [eax + 4]
jmp 0x4706ec
inc ebp
cmp ebp, 1
jbe 0x4706ea
cmp ebp, 2
jne 0x4706e6
inc dword [esp + 0x1c]
inc dword [esp + 0x14]
mov edi, eax
push ebx
mov ecx, esi
call fcn.0045b526
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp edi, eax
jne 0x4706d7
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
movzx ecx, word [edx + 4]
mov ebp, ecx
add ebp, dword [eax]
movzx eax, word [edx + 6]
and eax, 0xf
cmp eax, 7
jg 0x47086e
je 0x47082c
test eax, eax
je 0x4707dc
jle 0x470a07
cmp eax, 3
jle 0x470792
cmp eax, 4
je 0x470781
cmp eax, 5
je 0x47075d
cmp eax, 6
jne 0x470a07
push dword [ebp + 4]
mov ecx, esi
push dword [ebp]
push ebx
call fcn.0045becf
jmp 0x470a07
test ebp, ebp
je 0x470a07
cmp dword [ebp], 0
je 0x470a07
cmp dword [ebp + 4], 0
je 0x470a07
push dword [ebp + 4]
push dword [ebp]
jmp 0x470785
push dword [edx + 8]
push ebp
push ebx
mov ecx, esi
call fcn.0045c004
jmp 0x470a07
cmp eax, 2
je 0x47079c
cmp eax, 3
jne 0x4707a2
movzx edi, byte [ebp]
jmp 0x4707a5
mov edi, dword [ebp]
mov eax, 0x1ab
cmp cx, ax
sete al
test al, al
jne 0x4707ce
push edx
call fcn.0046e27f
mov ecx, eax
mov ebp, edx
mov eax, edi
cdq
cmp eax, ecx
jne 0x4707ce
cmp edx, ebp
jne 0x4707ce
push ebx
mov ecx, esi
jmp 0x470822
push edi
push ebx
mov ecx, esi
call fcn.0045bf3f
jmp 0x470a07
push dword [edx + 0xc]
lea eax, [esp + 0xc4]
push eax
call fcn.004243aa
push eax
mov ecx, ebp
call fcn.00434b9c
test eax, eax
lea ecx, [esp + 0xc0]
push 0
push 1
setne bl
call fcn.0042341c
mov ecx, esi
test bl, bl
je 0x47081e
push ebp
push dword [esp + 0x14]
call fcn.0045c086
jmp 0x470a07
push dword [esp + 0x10]
call fcn.0045b526
jmp 0x470a07
push dword [edx + 0xc]
lea eax, [esp + 0xdc]
push eax
call fcn.004627fd
push eax
mov ecx, ebp
call fcn.0040abbe
test eax, eax
lea ecx, [esp + 0xd8]
push 0
push 1
setne bl
call fcn.0040a0e9
mov ecx, esi
test bl, bl
je 0x47081e
push ebp
push dword [esp + 0x14]
call fcn.0045c069
jmp 0x470a07
sub eax, 8
je 0x470996
dec eax
je 0x47094f
dec eax
je 0x4708a4
sub eax, 5
jne 0x470a07
push 1
push ebp
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.0045be77
push eax
mov eax, dword [esp + 0x2c]
call dword [eax + 0x14]
jmp 0x470a07
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.0045be77
mov ecx, dword [ebp]
mov ebx, eax
mov edx, dword [ecx]
mov dword [esp + 0x10], edx
cmp edx, ecx
je 0x470a07
lea edi, [edx + 0x10]
push edi
lea eax, [esp + 0x64]
push eax
call fcn.0046e249
lea eax, [edi + 0x18]
mov byte [esp + 0x300], 8
push eax
lea eax, [esp + 0x94]
push eax
call fcn.0046e249
cmp dword [esp + 0x74], 0x10
mov eax, dword [esp + 0x60]
mov byte [esp + 0x300], 9
jae 0x4708ff
lea eax, [esp + 0x60]
lea ecx, [esp + 0x90]
push ecx
push eax
mov ecx, ebx
call fcn.0045c069
push 0
push 1
lea ecx, [esp + 0x98]
call fcn.0040a0e9
push 0
push 1
lea ecx, [esp + 0x68]
mov byte [esp + 0x308], 3
call fcn.0040a0e9
lea ecx, [esp + 0x10]
call fcn.0045d8b6
mov edx, dword [esp + 0x10]
cmp edx, dword [ebp]
jne 0x4708c1
jmp 0x470a07
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.0045be77
mov ecx, dword [ebp]
mov edi, eax
mov edx, dword [ecx]
mov dword [esp + 0x10], edx
cmp edx, ecx
je 0x470a07
lea eax, [edx + 0x10]
cmp dword [eax + 0x14], 0x10
jb 0x470977
mov eax, dword [eax]
push dword [edx + 0x28]
mov ecx, edi
push eax
call fcn.0045bf3f
lea ecx, [esp + 0x10]
call fcn.0045d8b6
mov edx, dword [esp + 0x10]
cmp edx, dword [ebp]
jne 0x47096c
jmp 0x470a07
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.0045bfac
xor edi, edi
mov ebx, eax
cmp dword [ebp + 0x10], edi
je 0x470a07
lea ecx, [esp + 0x30]
call fcn.0045aa6c
push edi
mov ecx, ebp
mov byte [esp + 0x304], 6
call fcn.004f47a5
cmp dword [eax + 0x14], 8
jb 0x4709ca
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x34]
call fcn.0045c9e7
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
call fcn.0045af15
mov dword [esp + 0x30], 0x689888
lea ecx, [esp + 0x30]
mov byte [esp + 0x300], 7
call fcn.0045b86a
inc edi
mov byte [esp + 0x300], 3
cmp edi, dword [ebp + 0x10]
jne 0x4709a9
mov eax, dword [esp + 0x20]
add eax, 0x18
mov ebx, dword [eax]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x4706cd
mov ebx, dword [esp + 0x2c]
inc ebx
mov dword [esp + 0x2c], ebx
call fcn.004712d1
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
cmp ebx, ecx
jb 0x4706b7
mov ebp, dword [esp + 0x1c]
push 0xffffffffffffffff
push str.peakrate
mov ecx, esi
call fcn.0045be77
push eax
call fcn.0048d6af
push esi
call fcn.0048d741
push esi
call fcn.004c9efd
push 0xffffffffffffffff
push str.apps
mov ecx, esi
call fcn.0045be77
push eax
call fcn.0048d5d2
push 0xffffffffffffffff
push str.installs
mov ecx, esi
call fcn.0045bfac
push eax
call fcn.004813b8
lea eax, [esp + 0xa8]
mov ecx, esi
push eax
call fcn.0045c6e3
push esi
mov byte [esp + 0x304], 0xa
call fcn.004aa509
cmp byte [0x75febc], 0
jne 0x470ace
xor eax, eax
cmp ax, word [0x75edc0]
je 0x470ace
push eax
push 0x75edc0
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
mov byte [0x75febc], 1
push 0x68aba4
lea eax, [esp + 0x4c]
push eax
call fcn.0046e883
mov byte [esp + 0x300], 0xb
call fcn.0045fe36
push 0x14
mov dword [0x75efd8], eax
mov dword [0x75efdc], edx
call fcn.00630af1
pop ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x300], 0xc
test eax, eax
je 0x470b18
mov ecx, eax
call fcn.00424b8a
mov edi, eax
jmp 0x470b1a
xor edi, edi
mov byte [esp + 0x300], 0xb
mov dword [esp + 0x18], edi
test edi, edi
je 0x470b30
mov eax, dword [edi]
push edi
call dword [eax + 4]
cmp dword [esp + 0x5c], 8
mov eax, dword [esp + 0x48]
mov byte [esp + 0x300], 0xd
jae 0x470b47
lea eax, [esp + 0x48]
push edi
push 0x45b281
lea ecx, [esp + 0xb0]
push ecx
push eax
call fcn.004699f7
or byte [0x75ed92], al
test ebp, ebp
je 0x470b87
cmp dword [esp + 0x5c], 8
mov eax, dword [esp + 0x48]
jae 0x470b74
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x18]
push ebp
push str.Settings_integrity_check_failed__duplicate_keys:__d_count:__d___repaired:__s
call fcn.004790ad
add esp, 0x10
mov byte [esp + 0x300], 0xb
pop ebp
test edi, edi
je 0x470b9a
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 0
push 1
lea ecx, [esp + 0x4c]
call fcn.0042341c
push 0
push 1
lea ecx, [esp + 0xac]
call fcn.0040a0e9
push 0
push 1
lea ecx, [esp + 0x7c]
call fcn.0042341c
mov eax, dword [esi]
push esi
mov byte [esp + 0x300], 0
call dword [eax + 8]
pop edi
pop esi
or dword [esp + 0x2f4], 0xffffffff
call fcn.00475085
mov ecx, dword [esp + 0x2ec]
pop ebx
mov dword fs:[0], ecx
leave
ret