Function at 0x412e00
Capabilities:
Create directory
Get common file path
Get program files directory

Disassembly:
push 0xffffffffffffffff
push 0x5819d3
mov eax, dword fs:[0]
push eax
sub esp, 0x21c
mov eax, dword [0x5e95e0]
xor eax, esp
mov dword [esp + 0x218], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e95e0]
xor eax, esp
push eax
lea eax, [esp + 0x230]
mov dword fs:[0], eax
push 0xa
mov esi, ecx
push 0x5958ac
mov ecx, 0x5f2c50
call fcn.00402250
push 8
push 0x5958c4
mov ecx, 0x5f2c64
call fcn.00402250
push 8
push 0x5958c4
mov ecx, 0x5f2c68
call fcn.00402250
push 2
push 0x5958d8
mov ecx, 0x5f2c5c
call fcn.00402250
push 2
push 0x5958d8
mov ecx, 0x5f2c60
call fcn.00402250
fldz
xor edi, edi
fst dword [0x5f2c6c]
push 0xa
fstp dword [0x5f2c70]
mov ebx, 1
push str.D:114Down
mov ecx, 0x5f2cc4
mov dword [0x5f2c74], ebx
mov dword [0x5f2c90], edi
mov dword [0x5f21e0], edi
mov dword [0x5f21e4], edi
call fcn.00402250
push 0xa
push str.D:114Down
mov ecx, 0x5f2ccc
call fcn.00402250
mov ecx, dword [0x5f2cc4]
call fcn.004600b0
test eax, eax
jne 0x412f10
push 0xa
push str.C:114Down
mov ecx, 0x5f2cc4
call fcn.00402250
push 0x5f2cc4
mov ecx, 0x5f2ccc
call fcn.00402310
mov dword [0x5f2cc8], edi
mov dword [0x5f2cd0], ebx
mov dword [0x5f2cd4], ebx
mov dword [0x5f2cd8], edi
mov dword [0x5f2cdc], ebx
call fcn.00530e1f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x412f48
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
lea ebx, [esi + 8]
push 2
mov dword [esp + 0x23c], edi
push 0x595910
mov ecx, ebx
mov dword [esp + 0x20], ebx
call fcn.00402250
mov ebp, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push edi
push 5
lea ecx, [esp + 0x2c]
push ecx
push edi
call ebp
test eax, eax
je 0x412fbe
lea eax, [esp + 0x24]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x412f90
sub eax, edx
sar eax, 1
cmp eax, edi
jle 0x412fbe
cmp word [esp + eax*2 + 0x22], 0x5c
lea eax, [esp + eax*2 + 0x22]
jne 0x412fb2
mov word [eax], di
lea edx, [esp + 0x24]
push edx
mov ecx, ebx
call fcn.004021d0
push edi
push 0xd
lea eax, [esp + 0x2c]
push eax
push edi
call ebp
test eax, eax
lea ecx, [esi + 4]
je 0x412ff7
lea eax, [esp + 0x24]
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, di
jne 0x412fd7
sub eax, ebx
sar eax, 1
push eax
lea edx, [esp + 0x28]
push edx
call fcn.00402250
mov ebx, dword [esp + 0x18]
jmp 0x412ffd
push ebx
call fcn.00402310
push edi
push 0x26
lea eax, [esp + 0x2c]
push eax
push edi
call ebp
test eax, eax
lea ecx, [esi + 0xc]
je 0x413032
lea eax, [esp + 0x24]
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, di
jne 0x413016
sub eax, ebx
sar eax, 1
push eax
lea edx, [esp + 0x28]
push edx
call fcn.00402250
jmp 0x413038
push ebx
call fcn.00402310
lea eax, [esp + 0x24]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
lea ecx, [esi + 0x10]
jbe 0x413072
lea eax, [esp + 0x24]
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, di
jne 0x413056
sub eax, esi
sar eax, 1
push eax
lea edx, [esp + 0x28]
push edx
call fcn.00402250
jmp 0x41307c
mov eax, dword [esp + 0x18]
push eax
call fcn.00402310
mov ebx, dword [esp + 0x18]
mov esi, dword [ebx]
mov ecx, esi
call fcn.004600b0
test eax, eax
mov ebp, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jne 0x4130c4
push edi
push esi
call ebp
test eax, eax
jne 0x4130c4
mov ecx, dword [ebx]
cmp dword [ecx - 0xc], 2
jle 0x4130c4
mov edx, ecx
push edx
lea eax, [esp + 0x24]
push 0x595918
push eax
call fcn.00405480
mov ecx, dword [esp + 0x2c]
add esp, 0xc
push edi
push edi
push ecx
call fcn.00539414
push 0x12
push str._binTGHistory.dll
mov ecx, 0x5f2c38
call fcn.00402250
push 0x12
push str._binTGNetWork.dll
mov ecx, 0x5f2c3c
call fcn.00402250
push 0xd
push str._binAddr.dll
mov ecx, 0x5f2c40
call fcn.00402250
push 0x5f2868
mov ecx, 0x5f2878
call fcn.00402310
push 0x5f2c38
lea edx, [esp + 0x20]
push 0x5f2868
push edx
call fcn.00401ae0
add esp, 0xc
mov byte [esp + 0x238], 1
mov ecx, dword [eax]
call fcn.004600b0
test eax, eax
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x1c]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413159
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x413219
call fcn.00530e1f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x41317b
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x238], 2
mov eax, dword [0x5f21f0]
push eax
push eax
push eax
lea ecx, [esp + 0x24]
push 0x5959c0
push ecx
call fcn.00405480
mov esi, dword [esp + 0x2c]
add esp, 0x14
push edi
push edi
push esi
call fcn.00539414
mov ecx, 0x5f2878
call fcn.00402160
lea eax, [esi - 0x10]
mov byte [esp + 0x238], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4131e7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x238], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413212
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x41386f
push str.data
lea ecx, [esp + 0x20]
push 0x5f2878
push ecx
call fcn.00401ba0
add esp, 0xc
mov byte [esp + 0x238], 3
mov esi, dword [eax]
mov ecx, esi
call fcn.004600b0
test eax, eax
je 0x41324c
mov eax, 1
jmp 0x413256
push edi
push esi
call ebp
neg eax
sbb eax, eax
neg eax
cmp eax, edi
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x1c]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x413283
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x4132ef
push str.data
lea ecx, [esp + 0x20]
push 0x5f2878
push ecx
call fcn.00401ba0
add esp, 0xc
mov byte [esp + 0x238], 4
mov edx, dword [eax]
push edx
lea eax, [esp + 0x24]
push 0x595a30
push eax
call fcn.00405480
mov byte [esp + 0x244], 0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4132e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x20]
push edi
push edi
push ecx
call fcn.00539414
push str.webicon
lea edx, [esp + 0x20]
push 0x5f2878
push edx
call fcn.00401ba0
add esp, 0xc
push eax
mov ecx, 0x5f2880
mov byte [esp + 0x23c], 5
call fcn.00402310
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413341
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x5f2880]
mov esi, ecx
call fcn.004600b0
test eax, eax
jne 0x413364
push edi
push esi
call ebp
test eax, eax
jne 0x413364
mov ecx, 0x5f2880
call fcn.00402160
mov esi, dword [esp + 0x18]
push esi
mov ecx, 0x5f288c
call fcn.00402310
push esi
mov ecx, 0x5f2890
call fcn.00402310
call fcn.00530e1f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x413398
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push str.custom.ini
lea ecx, [esp + 0x20]
push 0x5f2878
mov bl, 6
push ecx
mov byte [esp + 0x244], bl
call fcn.00401ba0
add esp, 0xc
lea edx, [esp + 0x18]
mov byte [esp + 0x238], 7
mov eax, dword [eax]
push edx
push eax
call fcn.0045f9b0
mov byte [esp + 0x240], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413407
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], edi
je 0x41373f
push 0
push 0x5f2ac0
lea ebx, [esp + 0x20]
call fcn.00472b50
mov ecx, 3
cmp dword [0x5f2acc], ecx
jge 0x41343b
push 0x5f2ac4
call fcn.0041cff0
push str.APPINI
mov ebx, 0x5f2ac0
call fcn.00472e00
mov ebp, eax
test ebp, ebp
jl 0x41373f
mov ecx, str.SOFTNAME
mov esi, ebx
call fcn.00472e70
push eax
mov ecx, 0x5f2214
call fcn.00402310
mov ebx, 0x5f2214
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, 0x595ab8
mov eax, ebp
call fcn.00472e70
push eax
mov ecx, 0x5f2218
call fcn.00402310
mov ebx, 0x5f2218
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, str.HOMENAME
mov eax, ebp
call fcn.00472e70
push eax
mov ecx, 0x5f2254
call fcn.00402310
mov ebx, 0x5f2254
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, 0x595adc
mov eax, ebp
call fcn.00472e70
push eax
mov ecx, 0x5f2258
call fcn.00402310
mov ebx, 0x5f2258
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, str.404URL
mov eax, ebp
call fcn.00472e70
push eax
mov ecx, 0x5f225c
call fcn.00402310
mov ebx, 0x5f225c
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov edx, dword [0x5f225c]
cmp dword [edx - 0xc], 0
jne 0x413534
push str.http:__www.sogou.com_index.htm_pidsogou_netb_b710915795b9e9c0_3500
mov ecx, ebx
call fcn.004021d0
mov ecx, str.SERVER
mov eax, ebp
mov esi, 0x5f2ac0
call fcn.00472e70
push eax
mov ecx, 0x5f2c34
call fcn.00402310
mov ebx, 0x5f2c34
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov eax, dword [0x5f2c34]
cmp dword [eax - 0xc], 0
jne 0x413578
push str.union.tangobrowser.net
mov ecx, ebx
call fcn.004021d0
mov ecx, str.BAIDUID
mov eax, ebp
mov esi, 0x5f2ac0
call fcn.00472e70
push eax
mov ecx, 0x5f220c
call fcn.00402310
mov ebx, 0x5f220c
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, str.GOOGLEID
mov eax, ebp
call fcn.00472e70
push eax
mov ecx, 0x5f2210
call fcn.00402310
mov ebx, 0x5f2210
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, str.MARKETID
mov eax, ebp
call fcn.00472e70
push eax
mov ecx, 0x5f2208
call fcn.00402310
mov ebx, 0x5f2208
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, str.FIRSTRUN
mov eax, ebp
call fcn.00472e70
push eax
mov ecx, 0x5f2adc
call fcn.00402310
mov ebx, 0x5f2adc
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, str.MUSICFUNC
mov eax, ebp
call fcn.00472e70
mov ebx, eax
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov eax, dword [ebx]
push 0x595c28
push eax
call fcn.005522fc
add esp, 8
test eax, eax
je 0x41365f
mov ebx, dword [ebx]
push str.hide
push ebx
call fcn.005522fc
add esp, 8
test eax, eax
jne 0x413669
mov dword [0x5f2ae0], 0
mov ecx, str.DATADIR
mov eax, ebp
mov esi, 0x5f2ac0
call fcn.00472e70
mov ebx, eax
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ecx, dword [ebx]
cmp dword [ecx - 0xc], 0
je 0x41369b
push ebx
mov ecx, 0x5f22e0
call fcn.00402310
mov ecx, str.SKINMENU
mov eax, ebp
mov esi, 0x5f2ac0
call fcn.00472e70
mov ebx, eax
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ebx, dword [ebx]
push 0x595c28
push ebx
call fcn.005522fc
add esp, 8
test eax, eax
jne 0x4136d3
mov dword [0x5f22d8], eax
mov ecx, str.UPDATE
mov eax, ebp
mov esi, 0x5f2ac0
call fcn.00472e70
mov ebx, eax
call fcn.00409830
mov edi, eax
call fcn.004098b0
mov ebx, dword [ebx]
push 0x595c28
push ebx
call fcn.005522fc
add esp, 8
test eax, eax
jne 0x41370b
mov dword [0x5f2228], eax
mov ecx, str.LOCKHOME
mov eax, ebp
mov esi, 0x5f2ac0
call fcn.00472e70
mov edx, dword [eax]
cmp dword [edx - 0xc], 0
je 0x41372e
mov dword [0x5f2244], 1
mov ebx, 0x5f21ec
call fcn.00409830
mov edi, eax
call fcn.004098b0
push str.plugin5
lea eax, [esp + 0x20]
push 0x5f2878
push eax
call fcn.00401ba0
add esp, 0xc
push 0
mov byte [esp + 0x23c], 8
mov eax, dword [eax]
push 0x5f2ae4
push eax
call fcn.00460980
mov byte [esp + 0x244], 6
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413798
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [0x5f2aec]
xor esi, esi
test ebx, ebx
jle 0x413807
mov edi, dword [0x5f2ae8]
lea ebx, [ebx]
test esi, esi
jl 0x4138af
cmp esi, ebx
jge 0x4138af
mov eax, dword [edi + esi*4]
mov ecx, 0x5941b0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4137ee
test dx, dx
je 0x4137ea
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4137ee
add eax, 4
add ecx, 4
test dx, dx
jne 0x4137c8
xor eax, eax
jmp 0x4137f3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x413897
add esi, 1
cmp esi, ebx
jl 0x4137b0
push 0x5941b0
push ebx
mov ecx, 0x5f2ae4
call fcn.005390d4
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41383f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x238], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41386a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x230]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x218]
xor ecx, esp
call fcn.00552101
add esp, 0x228
ret
push 1
push esi
mov ecx, 0x5f2ae4
call fcn.00538fd9
mov ebx, dword [0x5f2aec]
jmp 0x413807
jmp fcn.00530cad