Function at 0x10017e90
Capabilities:
Get common file path
Read .ini file
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x8d468]
mov eax, 0x8d468
call fcn.10043e70
push 0xffffffffffffffff
push 0x1005ff12
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x1007ef24]
xor eax, ebp
mov dword [ebp + 0x8d464], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x8d470]
mov esi, 0x1ff
xor ebx, ebx
push esi
mov dword [ebp - 0x38], eax
lea eax, [ebp + 0x8cc01]
push ebx
push eax
mov byte [ebp + 0x8cc00], bl
call fcn.10042a90
push esi
lea eax, [ebp + 0x8ca01]
push ebx
push eax
mov byte [ebp + 0x8ca00], bl
call fcn.10042a90
add esp, 0x18
push 0x200
lea eax, [ebp + 0x8cc00]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
cmp byte [ebp + 0x8cc00], bl
jne 0x10017f2c
xor al, al
jmp 0x100187a6
xor eax, eax
mov cl, byte [ebp + eax + 0x8cc00]
mov byte [ebp + eax + 0x8ca00], cl
inc eax
cmp cl, bl
jne 0x10017f2e
lea edi, [ebp + 0x8cc00]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x10017f48
push 6
pop ecx
mov esi, str.hardpolMyIEDatamain.ini
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea edi, [ebp + 0x8ca00]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x10017f64
mov esi, str.hardpolMyIEData
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 7
pop ecx
xor eax, eax
mov byte [ebp + 0x8d444], bl
lea edi, [ebp + 0x8d445]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 7
pop ecx
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
xor eax, eax
mov byte [ebp + 0x8d424], bl
lea edi, [ebp + 0x8d425]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp + 0x8cc00]
push eax
push 0x20
lea eax, [ebp + 0x8d444]
push eax
push 0x100643c0
push str.FLAG10
mov edi, str.SYSTEM
push edi
call esi
lea eax, [ebp + 0x8cc00]
push eax
push 0x20
lea eax, [ebp + 0x8d424]
push eax
push 0x10065750
push str.FLAG12
push edi
call esi
mov esi, str.o2nr3k2c0o23
lea edi, [ebp + 0x8d404]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor eax, eax
lea edi, [ebp + 0x8d411]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 6
pop ecx
mov esi, str.vnetservices.l0086.com.cn
lea edi, [ebp + 0x8c400]
rep movsd dword es:[edi], dword [esi]
push 0x1e6
lea eax, [ebp + 0x8c41a]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.10042a90
push 6
pop ecx
mov esi, str.vnetservices.l0086.com.cn
lea edi, [ebp + 0x8b800]
rep movsd dword es:[edi], dword [esi]
push 0x1e6
lea eax, [ebp + 0x8b81a]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.10042a90
push 0x1fff
mov byte [ebp], bl
push ebx
lea eax, [ebp + 1]
push eax
call fcn.10042a90
mov esi, str.UpdateSetting.asmx
lea edi, [ebp + 0x8be00]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x1ed
lea eax, [ebp + 0x8be13]
push ebx
push eax
movsb byte es:[edi], byte [esi]
call fcn.10042a90
push 0xfff
lea eax, [ebp + 0x8a001]
push ebx
push eax
mov byte [ebp + 0x8a000], bl
call fcn.10042a90
push 0x3ff
lea eax, [ebp + 0x8b001]
push ebx
push eax
mov byte [ebp + 0x8b000], bl
call fcn.10042a90
add esp, 0x48
mov esi, 0xff
push esi
lea eax, [ebp + 0x8cf01]
push ebx
push eax
mov byte [ebp + 0x8cf00], bl
call fcn.10042a90
push esi
lea eax, [ebp + 0x8d001]
push ebx
push eax
mov byte [ebp + 0x8d000], bl
call fcn.10042a90
push esi
lea eax, [ebp + 0x8ce01]
push ebx
push eax
mov byte [ebp + 0x8ce00], bl
call fcn.10042a90
add esp, 0x24
push esi
lea eax, [ebp + 0x8cf00]
push eax
lea eax, [ebp + 0x8d404]
mov edi, 0x10081520
push eax
mov ecx, edi
call fcn.1000b697
push esi
lea eax, [ebp + 0x8d000]
push eax
lea eax, [ebp + 0x8d444]
push eax
mov ecx, edi
call fcn.1000b697
push esi
lea eax, [ebp + 0x8ce00]
push eax
lea eax, [ebp + 0x8d424]
push eax
mov ecx, edi
call fcn.1000b697
lea eax, [ebp + 0x8ce00]
push eax
lea eax, [ebp + 0x8d000]
push eax
lea eax, [ebp + 0x8cf00]
push eax
lea eax, [ebp + 0x8b000]
push str.__xml_version_1.0__encoding_utf_8____r_n_soap:Envelope_xmlns:xsi_http:__www.w3.org_2001_XMLSchema_instance__xmlns:xsd_http:__www.w3.org_2001_XMLSchema__xmlns:soap_http:__schemas.xmlsoap.org_soap_envelope____r_n_soap:Body___r_n_b_xmlns_http:__tempuri.org_____r_n_s1__s__s1___r_n_s2__s__s2___r_n_s3__s__s3___r_n__b___r_n__soap:Body___r_n__soap:Envelope__r_n
push eax
call fcn.100436a6
lea eax, [ebp + 0x8b000]
add esp, 0x14
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10018174
sub eax, esi
lea ecx, [ebp + 0x8c400]
push ecx
push eax
mov dword [ebp - 0x18], eax
mov eax, ecx
push eax
lea eax, [ebp + 0x8a000]
push str.Host:__s_r_nContent_Type:_text_xml__charsetutf_8_r_nContent_Length:__d_r_nAccept:_xml_r_nSOAPAction:__http:__tempuri.org_b__r_n_r_n
push eax
call fcn.100436a6
add esp, 0x14
push ebx
push ebx
push ebx
push ebx
push 1
push ebx
lea ecx, [ebp - 0x34]
call fcn.100298b5
push ebx
push ebx
push 0x50
lea eax, [ebp + 0x8b800]
mov dword [ebp - 4], ebx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.1002a471
push ebx
push ebx
push ebx
push 1
mov dword [ebp - 0x14], eax
mov ecx, eax
push ebx
lea eax, [ebp + 0x8be00]
push eax
push 0x10064ab0
call fcn.1002a669
mov esi, eax
cmp esi, ebx
jne 0x100181fb
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.1002a009
jmp 0x10017f25
push 0xffffffffffffffff
push 0x10000000
lea eax, [ebp + 0x8a000]
push eax
mov ecx, esi
call fcn.10029190
lea eax, [ebp + 0x8a000]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10018219
push dword [ebp - 0x18]
lea ecx, [ebp + 0x8b000]
push ecx
sub eax, edx
push eax
lea eax, [ebp + 0x8a000]
push eax
mov ecx, esi
call fcn.10029e15
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.100291c3
cmp dword [ebp - 0x20], 0xc8
lea eax, [ebp]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ebx
je 0x10018280
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x4c]
mov edi, dword [ebp - 0x14]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
jmp 0x100181ea
mov eax, dword [esi]
push 0xfa0
push dword [ebp - 0x18]
mov ecx, esi
call dword [eax + 0x34]
cmp eax, ebx
jbe 0x1001829f
add dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x1f40
jle 0x100182c6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x4c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [ebp - 4], ebx
jmp 0x100182d8
add dword [ebp - 0x18], eax
jmp 0x10018280
lea ecx, [ebp - 0x34]
mov esi, 0x3ff
call fcn.10029f18
lea eax, [ebp]
push str._bResult_
push eax
call fcn.10043620
mov dword [ebp - 0x14], eax
lea eax, [ebp]
push str.__bResult_
push eax
call fcn.10043620
push 0x3fff
mov dword [ebp - 0x20], eax
lea eax, [ebp + 0x2001]
push ebx
push eax
mov byte [ebp + 0x2000], bl
call fcn.10042a90
add esp, 0x1c
cmp dword [ebp - 0x14], ebx
je 0x10018798
mov eax, dword [ebp - 0x20]
cmp eax, ebx
je 0x10018798
add dword [ebp - 0x14], 9
sub eax, dword [ebp - 0x14]
cmp eax, 0x3fff
jg 0x10018798
push eax
push dword [ebp - 0x14]
lea eax, [ebp + 0x2000]
push eax
call fcn.10043ac0
push 0x3fff
lea eax, [ebp + 0x6001]
push ebx
push eax
mov byte [ebp + 0x6000], bl
call fcn.10042a90
add esp, 0x18
push 0x3fff
lea eax, [ebp + 0x6000]
push eax
lea eax, [ebp + 0x2000]
push eax
mov ecx, edi
call fcn.1000a924
push 0x4000
lea eax, [ebp + 0x2000]
push ebx
push eax
call fcn.10042a90
add esp, 0xc
lea eax, [ebp + 0x6000]
push eax
lea eax, [ebp + 0x2000]
push eax
mov ecx, edi
call fcn.10006c26
push esi
xor edi, edi
lea eax, [ebp + 0x8ba01]
push ebx
inc edi
push eax
mov dword [ebp - 0x18], edi
mov byte [ebp + 0x8ba00], bl
call fcn.10042a90
push esi
lea eax, [ebp + 0x8c601]
push ebx
push eax
mov byte [ebp + 0x8c600], bl
call fcn.10042a90
push esi
lea eax, [ebp + 0x8b401]
push ebx
push eax
mov byte [ebp + 0x8b400], bl
call fcn.10042a90
push 0x7ffff
lea eax, [ebp + 0xa001]
push ebx
push eax
mov byte [ebp + 0xa000], bl
call fcn.10042a90
push 0x1ff
lea eax, [ebp + 0x8d101]
push ebx
push eax
mov byte [ebp + 0x8d100], bl
call fcn.10042a90
push edi
lea eax, [ebp + 0x8ca00]
push eax
lea eax, [ebp + 0x8d100]
push str._s_d.ico
push eax
call fcn.100436a6
add esp, 0x4c
push str.ShortcutName_
lea eax, [ebp + 0x2000]
push eax
jmp 0x10018787
add edi, 0xe
push 0x10063df0
push edi
call fcn.10043620
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x14], eax
je 0x10018798
sub eax, edi
cmp eax, 0x400
jae 0x10018798
push eax
lea eax, [ebp + 0x8c600]
push edi
push eax
call fcn.10043ac0
mov eax, dword [ebp - 0x14]
inc eax
push str.ProgramPath_
push eax
call fcn.10043620
mov edi, eax
add esp, 0x14
cmp edi, ebx
je 0x10018798
add edi, 0xd
push 0x10063df0
push edi
call fcn.10043620
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x14], eax
je 0x10018798
sub eax, edi
cmp eax, 0x400
jae 0x10018798
push eax
lea eax, [ebp + 0x8ba00]
push edi
push eax
call fcn.10043ac0
mov eax, dword [ebp - 0x14]
inc eax
push str.IconURL_
push eax
call fcn.10043620
add esp, 0x14
cmp eax, ebx
je 0x10018798
add eax, 9
push 0x10063df0
push eax
mov dword [ebp - 0x1c], eax
call fcn.10043620
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x10018798
sub eax, dword [ebp - 0x1c]
cmp eax, 0x400
jae 0x10018798
push eax
push dword [ebp - 0x1c]
lea eax, [ebp + 0x8b400]
push eax
call fcn.10043ac0
push 0x103
lea eax, [ebp + 0x8d301]
push ebx
inc edi
push eax
mov dword [ebp - 0x1c], edi
mov byte [ebp + 0x8d300], bl
call fcn.10042a90
add esp, 0x18
push ebx
push ebx
lea eax, [ebp + 0x8d300]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [ebp + 0x8d300]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp + 0x8d300]
dec ecx
cmp byte [eax + ecx], 0x5c
jne 0x10018592
lea eax, [ebp + 0x8c600]
push eax
lea eax, [ebp + 0x8d300]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x100185b6
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x1006581c
lea eax, [ebp + 0x8d300]
push eax
call edi
lea eax, [ebp + 0x8c600]
push eax
lea eax, [ebp + 0x8d300]
push eax
call edi
lea eax, [ebp + 0x8d300]
push 0x10063f1c
push eax
call fcn.100435d9
cmp eax, ebx
pop ecx
pop ecx
je 0x100185d9
push eax
call fcn.1004338d
pop ecx
jmp 0x100186f2
lea eax, [ebp + 0xa000]
push eax
lea eax, [ebp + 0x8b400]
push eax
call fcn.100145c1
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jle 0x100186f2
cmp byte [ebp + 0xa000], bl
jne 0x100186f2
cmp byte [ebp + 0xa001], bl
jne 0x100186f2
lea eax, [ebp + 0x8d100]
push 0x100643b4
push eax
call fcn.100435d9
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x100186f2
push edi
push dword [ebp - 0x20]
lea eax, [ebp + 0xa000]
push 1
push eax
call fcn.10043fb5
push edi
call fcn.1004338d
push esi
lea eax, [ebp + 0x8c001]
push ebx
push eax
mov byte [ebp + 0x8c000], bl
call fcn.10042a90
add esp, 0x20
push ebx
push 6
lea eax, [ebp + 0x8c000]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea edi, [ebp + 0x8c000]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x10018675
mov esi, 0x1006581c
lea eax, [ebp + 0x8c600]
movsw word es:[edi], word [esi]
mov edx, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x1001868c
lea edi, [ebp + 0x8c000]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x1001869c
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp + 0x8ba00]
push eax
lea eax, [ebp + 0x8c000]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.10014698
test al, al
pop ecx
pop ecx
je 0x100186ed
lea eax, [ebp + 0x8d100]
push eax
lea eax, [ebp + 0x8c600]
push eax
lea eax, [ebp + 0x8c000]
push eax
push dword [ebp - 0x38]
call fcn.10017d79
add esp, 0x10
mov esi, 0x3ff
inc dword [ebp - 0x18]
push esi
lea eax, [ebp + 0x8ba01]
push ebx
push eax
mov byte [ebp + 0x8ba00], bl
call fcn.10042a90
push esi
lea eax, [ebp + 0x8c601]
push ebx
push eax
mov byte [ebp + 0x8c600], bl
call fcn.10042a90
push esi
lea eax, [ebp + 0x8b401]
push ebx
push eax
mov byte [ebp + 0x8b400], bl
call fcn.10042a90
push 0x7ffff
lea eax, [ebp + 0xa001]
push ebx
push eax
mov byte [ebp + 0xa000], bl
call fcn.10042a90
push 0x1ff
lea eax, [ebp + 0x8d101]
push ebx
push eax
mov byte [ebp + 0x8d100], bl
call fcn.10042a90
push dword [ebp - 0x18]
lea eax, [ebp + 0x8ca00]
push eax
lea eax, [ebp + 0x8d100]
push str._s_d.ico
push eax
call fcn.100436a6
add esp, 0x4c
push str.ShortcutName_
push dword [ebp - 0x1c]
call fcn.10043620
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
jne 0x10018456
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.1002a009
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x8d464]
xor ecx, ebp
call fcn.10042977
add ebp, 0x8d468
leave
ret