Function at 0x406dd0
Capabilities:
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42c5a4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3a8
mov eax, dword [0x437250]
push ebx
push esi
push edi
mov dword [esp + 0x3ac], eax
mov ebx, ecx
xor eax, eax
mov byte [esp + 0x2a0], 0
mov ecx, 0x40
lea edi, [esp + 0x2a1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0
stosb byte es:[edi], al
push 0x2b
lea eax, [esp + 0x2a8]
push eax
push 0
mov dword [esp + 0x1c], ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov edx, dword [0x438664]
mov ecx, 0x438664
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [0x438664]
mov ecx, 0x438664
mov dword [esp + 0x3bc], 0
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
mov edx, dword [0x438664]
mov ecx, 0x438664
mov byte [esp + 0x3bc], 1
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [0x438664]
mov ecx, 0x438664
mov byte [esp + 0x3bc], 2
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
lea eax, [esp + 0x2a0]
mov byte [esp + 0x3bc], 3
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x406eb4
sub eax, ecx
push eax
lea ecx, [esp + 0x2a4]
push ecx
lea ecx, [esp + 0x24]
call fcn.00401890
push 0xa
push str.ShiQiang_
lea ecx, [esp + 0x24]
call fcn.00401930
push str.Upload_
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
push eax
call fcn.004019e0
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x3c0], 4
call fcn.00401aa0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x3bc], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406f2e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x42e888
lea ecx, [ebx + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004019e0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c0], 5
call fcn.00401aa0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x3bc], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406f89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
mov byte [esp + 0x198], 0
mov ecx, 0x40
lea edi, [esp + 0x199]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x90], 0
mov ecx, 0x40
lea edi, [esp + 0x91]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov dword [esp + 0x81], eax
mov dword [esp + 0x85], eax
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x89], eax
push ecx
lea edx, [esp + 0x19c]
mov word [esp + 0x91], ax
push edx
mov byte [esp + 0x88], 0
mov byte [esp + 0x97], al
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x198]
dec edi
jmp 0x407010
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407010
mov eax, dword [str.ShiQiang_]
mov ecx, dword [0x42e8a4]
mov dx, word [0x42e8a8]
mov esi, dword [esp + 0x14]
mov dword [edi], eax
mov al, byte [0x42e8aa]
mov dword [edi + 4], ecx
mov word [edi + 8], dx
mov byte [edi + 0xa], al
cmp dword [esi - 4], 1
jle 0x40706d
mov ecx, dword [esi - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00401430
mov esi, dword [esp + 0x14]
cmp dword [esi - 4], 1
jle 0x40706d
mov edx, dword [esi - 0xc]
push edx
lea ecx, [esp + 0x18]
call fcn.00401430
mov esi, dword [esp + 0x14]
push esi
push esi
call fcn.00421543
add esp, 8
test eax, eax
jne 0x4075bb
push 0x42e874
call fcn.004011c0
mov al, byte [ebx + 0x14]
add esp, 4
test al, al
je 0x407127
lea ecx, [esp + 0x28]
call fcn.00418e30
push 0
push esi
lea ecx, [esp + 0x30]
mov byte [esp + 0x3c4], 6
call fcn.00418ed0
test al, al
je 0x407116
mov eax, dword [0x438664]
mov ecx, 0x438664
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [esp + 0x10], edi
push str.PRODUCTS
push str.WNWB_CONF
lea ecx, [esp + 0x30]
mov byte [esp + 0x3c4], 7
call fcn.00417fa0
mov ecx, eax
call fcn.00418050
mov ebx, eax
test ebx, ebx
jne 0x407155
lea eax, [edi - 0x10]
mov byte [esp + 0x3bc], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407116
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x28]
mov byte [esp + 0x3bc], 3
call fcn.004012d0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x3bc], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40714d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esi - 0x10]
jmp 0x4078f2
mov ecx, ebx
call fcn.00418020
mov esi, eax
test esi, esi
je 0x4071b9
push 0x42e35c
mov ecx, esi
call fcn.004189c0
test eax, eax
jne 0x407176
xor ecx, ecx
jmp 0x407189
mov ecx, eax
lea edi, [ecx + 1]
jmp 0x407180
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407180
sub ecx, edi
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00401890
mov eax, dword [esp + 0x10]
push eax
call fcn.0042153e
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0xc]
add esp, 4
cmp eax, edx
je 0x4071cb
mov ecx, esi
call fcn.004180b0
mov esi, eax
test esi, esi
jne 0x407162
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x198]
push edx
push ebx
call fcn.00403690
mov ecx, ebx
call fcn.00418020
test eax, eax
mov dword [esp + 0xc], eax
je 0x407571
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
jmp 0x4071f0
mov eax, dword [esp + 0xc]
lea ebx, [ebx]
push 0x42e35c
mov ecx, eax
call fcn.004189c0
test eax, eax
jne 0x407204
xor ecx, ecx
jmp 0x407219
mov ecx, eax
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407210
sub ecx, esi
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00401890
mov esi, dword [esp + 0x10]
push esi
call fcn.0042153e
add esp, 4
cmp eax, 1
jne 0x407283
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407254
mov edx, dword [str.wnimewnime.ini]
mov eax, dword [0x42e768]
mov ecx, dword [0x42e76c]
mov dword [edi], edx
mov edx, dword [0x42e770]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
jmp 0x4073c0
push esi
call fcn.0042153e
add esp, 4
cmp eax, 2
jne 0x4072d7
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4072b0
mov edx, dword [str.wnwbwnwb.ini]
mov eax, dword [0x42e4c8]
mov ecx, dword [0x42e4cc]
mov dword [edi], edx
mov dx, word [0x42e4d0]
jmp 0x4073b6
push esi
call fcn.0042153e
add esp, 4
cmp eax, 3
jne 0x40730d
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407303
jmp 0x407348
push esi
call fcn.0042153e
add esp, 4
cmp eax, 4
jne 0x407364
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407340
mov edx, dword [str.wnpywnpy.ini]
mov eax, dword [0x42e4b8]
mov ecx, dword [0x42e4bc]
mov dword [edi], edx
mov dx, word [0x42e4c0]
jmp 0x4073b6
push esi
call fcn.0042153e
add esp, 4
cmp eax, 5
jne 0x4073ff
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407394
mov edx, dword [str.wniewnie.ini]
mov eax, dword [0x42e4a8]
mov ecx, dword [0x42e4ac]
mov dword [edi], edx
mov dx, word [0x42e4b0]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov word [edi + 0xc], dx
lea eax, [esp + 0x90]
push eax
push 0x10
lea ecx, [esp + 0x88]
push ecx
push 0x42e760
push 0x42e75c
push str.Globals
call ebx
mov al, byte [esp + 0x80]
test al, al
je 0x40755c
lea edx, [esp + 0x80]
push edx
jmp 0x407542
push esi
call fcn.0042153e
add esp, 4
cmp eax, 6
jne 0x407456
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
jmp 0x407430
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407430
mov edx, dword [str.sdg_sdg.ini]
mov eax, dword [0x42e49c]
mov ecx, dword [0x42e4a0]
mov dword [edi], edx
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
jmp 0x40750c
push esi
call fcn.0042153e
add esp, 4
cmp eax, 7
jne 0x4074ae
lea edx, [esp + 0x198]
push edx
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407482
mov ecx, dword [str.wnsrfwnsrf.ini]
mov edx, dword [0x42e48c]
mov eax, dword [0x42e490]
mov dword [edi], ecx
mov ecx, dword [0x42e494]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
jmp 0x40750c
push esi
call fcn.0042153e
add esp, 4
cmp eax, 8
jne 0x40755c
lea edx, [esp + 0x198]
push edx
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edi, [esp + 0x90]
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4074e0
mov ecx, dword [str.wnkbwnkb.ini]
mov edx, dword [0x42e47c]
mov eax, dword [0x42e480]
mov dword [edi], ecx
mov cx, word [0x42e484]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov word [edi + 0xc], cx
lea edx, [esp + 0x90]
push edx
push 0x10
lea eax, [esp + 0x88]
push eax
push 0x42e760
push 0x42e75c
push str.Globals
call ebx
mov al, byte [esp + 0x80]
test al, al
je 0x40755c
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x10]
push str.version
push str.UPDATE
call fcn.00418050
mov ecx, eax
call fcn.004189f0
mov ecx, dword [esp + 0xc]
call fcn.004180b0
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4071e6
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x2c]
call fcn.00418170
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x3bc], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4075a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x28]
mov byte [esp + 0x3bc], 3
call fcn.004012d0
jmp 0x4078c5
push 0x42e860
call fcn.004011c0
push 0x54
call fcn.00421034
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x3bc], 8
je 0x4075ec
mov ecx, eax
call fcn.00418e30
mov dword [esp + 0x10], eax
jmp 0x4075f4
mov dword [esp + 0x10], 0
push 0x68
mov byte [esp + 0x3c0], 3
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 9
je 0x407626
push str.WNWB_CONF
mov ecx, eax
call fcn.00419590
mov ebx, eax
jmp 0x407628
xor ebx, ebx
mov ecx, dword [esp + 0x10]
push ebx
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push 0x68
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xa
je 0x407664
push str.SERVER_INFO
mov ecx, eax
call fcn.00419590
mov edi, eax
jmp 0x407666
xor edi, edi
push edi
mov ecx, ebx
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push 0x68
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xb
je 0x4076a0
push str.FILE_NAME
mov ecx, eax
call fcn.00419590
mov esi, eax
jmp 0x4076a2
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push 0x34
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xc
je 0x4076da
push str.http:__tip.wn51.com_wnsoft.info
mov ecx, eax
call fcn.00403580
jmp 0x4076dc
xor eax, eax
push eax
mov ecx, esi
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push 0x68
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xd
je 0x407716
push str.TIME
mov ecx, eax
call fcn.00419590
mov esi, eax
jmp 0x407718
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push 0x34
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xe
je 0x407750
push str.1999_12_31_12:12:12
mov ecx, eax
call fcn.00403580
jmp 0x407752
xor eax, eax
push eax
mov ecx, esi
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push 0x68
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xf
je 0x40778c
push str.CHANNEL_SPREAD
mov ecx, eax
call fcn.00419590
mov edi, eax
jmp 0x40778e
xor edi, edi
push edi
mov ecx, ebx
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push 0x68
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0x10
je 0x4077c8
push str.PACK
mov ecx, eax
call fcn.00419590
mov esi, eax
jmp 0x4077ca
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x3c0], 3
call fcn.00417f70
push str.true
push str.install_allow
mov ecx, esi
call fcn.004189f0
push str.true
push str.uninstall_allow
mov ecx, esi
call fcn.004189f0
push str.wn.wn51.com
push str.install_upweb
mov ecx, esi
call fcn.004189f0
push 0x42e700
push str.bytes_over
mov ecx, esi
call fcn.004189f0
push 0x42e6ec
push str.compress
mov ecx, esi
call fcn.004189f0
push str.6001_6010
push str.port
mov ecx, esi
call fcn.004189f0
push 0x42e2dc
push str.success
mov ecx, esi
call fcn.004189f0
push 0x42e2dc
push str.product_id
mov ecx, esi
call fcn.004189f0
push 0x68
call fcn.00421034
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0x11
je 0x40788c
push str.PRODUCTS
mov ecx, eax
call fcn.00419590
mov esi, eax
jmp 0x40788e
xor esi, esi
push esi
mov ecx, ebx
mov byte [esp + 0x3c0], 3
call fcn.00417f70
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + 0x14]
test al, al
je 0x4078b7
lea eax, [esp + 0x198]
push eax
push esi
call fcn.00403690
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00418170
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x3bc], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4078eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x3bc], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407911
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x3bc], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407937
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x3bc], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407960
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x3b4]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x3ac]
call fcn.0042001e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret