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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x429474
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3a8
mov eax, dword [0x434250]
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 [0x435644]
mov ecx, 0x435644
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [0x435644]
mov ecx, 0x435644
mov dword [esp + 0x3bc], 0
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
mov edx, dword [0x435644]
mov ecx, 0x435644
mov byte [esp + 0x3bc], 1
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [0x435644]
mov ecx, 0x435644
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 0x406414
sub eax, ecx
push eax
lea ecx, [esp + 0x2a4]
push ecx
lea ecx, [esp + 0x24]
call fcn.00405d40
push 0xa
push str.ShiQiang_
lea ecx, [esp + 0x24]
call fcn.00405de0
push str.Upload_
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
push eax
call fcn.004061c0
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x3c0], 4
call fcn.004060a0
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 0x40648e
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 0x42b7bc
lea ecx, [ebx + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004061c0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x3c0], 5
call fcn.004060a0
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 0x4064e9
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 0x406570
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406570
mov eax, dword [str.ShiQiang_]
mov ecx, dword [0x42b7d8]
mov dx, word [0x42b7dc]
mov esi, dword [esp + 0x14]
mov dword [edi], eax
mov al, byte [0x42b7de]
mov dword [edi + 4], ecx
mov word [edi + 8], dx
mov byte [edi + 0xa], al
cmp dword [esi - 4], 1
jle 0x4065cd
mov ecx, dword [esi - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.00401590
mov esi, dword [esp + 0x14]
cmp dword [esi - 4], 1
jle 0x4065cd
mov edx, dword [esi - 0xc]
push edx
lea ecx, [esp + 0x18]
call fcn.00401590
mov esi, dword [esp + 0x14]
push esi
push esi
call fcn.0041e48c
add esp, 8
test eax, eax
jne 0x406b1b
mov al, byte [ebx + 0x14]
test al, al
je 0x40667a
lea ecx, [esp + 0x28]
call fcn.004162e0
push 0
push esi
lea ecx, [esp + 0x30]
mov byte [esp + 0x3c4], 6
call fcn.00416380
test al, al
je 0x406669
mov eax, dword [0x435644]
mov ecx, 0x435644
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.00415450
mov ecx, eax
call fcn.00415500
mov ebx, eax
test ebx, ebx
jne 0x4066a8
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 0x406669
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.00405c30
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 0x4066a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esi - 0x10]
jmp 0x406e48
mov ecx, ebx
call fcn.004154d0
mov esi, eax
test esi, esi
je 0x406719
jmp 0x4066c0
push 0x42b69c
mov ecx, esi
call fcn.00415e70
test eax, eax
jne 0x4066d4
xor ecx, ecx
jmp 0x4066e9
mov ecx, eax
lea edi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4066e0
sub ecx, edi
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00405d40
mov eax, dword [esp + 0x10]
push eax
call fcn.0041e487
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0xc]
add esp, 4
cmp eax, edx
je 0x40672b
mov ecx, esi
call fcn.00415560
mov esi, eax
test esi, esi
jne 0x4066c0
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x198]
push edx
push ebx
call fcn.00402740
mov ecx, ebx
call fcn.004154d0
test eax, eax
mov dword [esp + 0xc], eax
je 0x406ad1
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
jmp 0x406750
mov eax, dword [esp + 0xc]
lea ebx, [ebx]
push 0x42b69c
mov ecx, eax
call fcn.00415e70
test eax, eax
jne 0x406764
xor ecx, ecx
jmp 0x406779
mov ecx, eax
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x406770
sub ecx, esi
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00405d40
mov esi, dword [esp + 0x10]
push esi
call fcn.0041e487
add esp, 4
cmp eax, 1
jne 0x4067e3
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 0x4067b4
mov edx, dword [str.wnimewnime.ini]
mov eax, dword [0x42b688]
mov ecx, dword [0x42b68c]
mov dword [edi], edx
mov edx, dword [0x42b690]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
jmp 0x406920
push esi
call fcn.0041e487
add esp, 4
cmp eax, 2
jne 0x406837
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 0x406810
mov edx, dword [str.wnwbwnwb.ini]
mov eax, dword [0x42b3dc]
mov ecx, dword [0x42b3e0]
mov dword [edi], edx
mov dx, word [0x42b3e4]
jmp 0x406916
push esi
call fcn.0041e487
add esp, 4
cmp eax, 3
jne 0x40686d
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 0x406863
jmp 0x4068a8
push esi
call fcn.0041e487
add esp, 4
cmp eax, 4
jne 0x4068c4
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 0x4068a0
mov edx, dword [str.wnpywnpy.ini]
mov eax, dword [0x42b3cc]
mov ecx, dword [0x42b3d0]
mov dword [edi], edx
mov dx, word [0x42b3d4]
jmp 0x406916
push esi
call fcn.0041e487
add esp, 4
cmp eax, 5
jne 0x40695f
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 0x4068f4
mov edx, dword [str.wniewnie.ini]
mov eax, dword [0x42b3bc]
mov ecx, dword [0x42b3c0]
mov dword [edi], edx
mov dx, word [0x42b3c4]
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 0x42b680
push 0x42b67c
push str.Globals
call ebx
mov al, byte [esp + 0x80]
test al, al
je 0x406abc
lea edx, [esp + 0x80]
push edx
jmp 0x406aa2
push esi
call fcn.0041e487
add esp, 4
cmp eax, 6
jne 0x4069b6
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 0x406990
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x406990
mov edx, dword [str.sdg_sdg.ini]
mov eax, dword [0x42b3b0]
mov ecx, dword [0x42b3b4]
mov dword [edi], edx
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
jmp 0x406a6c
push esi
call fcn.0041e487
add esp, 4
cmp eax, 7
jne 0x406a0e
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 0x4069e2
mov ecx, dword [str.wnsrfwnsrf.ini]
mov edx, dword [0x42b3a0]
mov eax, dword [0x42b3a4]
mov dword [edi], ecx
mov ecx, dword [0x42b3a8]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
jmp 0x406a6c
push esi
call fcn.0041e487
add esp, 4
cmp eax, 8
jne 0x406abc
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 0x406a40
mov ecx, dword [str.wnkbwnkb.ini]
mov edx, dword [0x42b390]
mov eax, dword [0x42b394]
mov dword [edi], ecx
mov cx, word [0x42b398]
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 0x42b680
push 0x42b67c
push str.Globals
call ebx
mov al, byte [esp + 0x80]
test al, al
je 0x406abc
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x10]
push str.version
push str.UPDATE
call fcn.00415500
mov ecx, eax
call fcn.00415ea0
mov ecx, dword [esp + 0xc]
call fcn.00415560
test eax, eax
mov dword [esp + 0xc], eax
jne 0x406746
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x2c]
call fcn.00415620
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 0x406b05
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.00405c30
jmp 0x406e1b
push 0x54
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x3bc], 8
je 0x406b42
mov ecx, eax
call fcn.004162e0
mov dword [esp + 0x10], eax
jmp 0x406b4a
mov dword [esp + 0x10], 0
push 0x68
mov byte [esp + 0x3c0], 3
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 9
je 0x406b7c
push str.WNWB_CONF
mov ecx, eax
call fcn.00416a40
mov ebx, eax
jmp 0x406b7e
xor ebx, ebx
mov ecx, dword [esp + 0x10]
push ebx
mov byte [esp + 0x3c0], 3
call fcn.00415420
push 0x68
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xa
je 0x406bba
push str.SERVER_INFO
mov ecx, eax
call fcn.00416a40
mov edi, eax
jmp 0x406bbc
xor edi, edi
push edi
mov ecx, ebx
mov byte [esp + 0x3c0], 3
call fcn.00415420
push 0x68
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xb
je 0x406bf6
push str.FILE_NAME
mov ecx, eax
call fcn.00416a40
mov esi, eax
jmp 0x406bf8
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x3c0], 3
call fcn.00415420
push 0x34
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xc
je 0x406c30
push str.http:__tip.wn51.com_wnsoft.info
mov ecx, eax
call fcn.00402620
jmp 0x406c32
xor eax, eax
push eax
mov ecx, esi
mov byte [esp + 0x3c0], 3
call fcn.00415420
push 0x68
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xd
je 0x406c6c
push str.TIME
mov ecx, eax
call fcn.00416a40
mov esi, eax
jmp 0x406c6e
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x3c0], 3
call fcn.00415420
push 0x34
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xe
je 0x406ca6
push str.1999_12_31_12:12:12
mov ecx, eax
call fcn.00402620
jmp 0x406ca8
xor eax, eax
push eax
mov ecx, esi
mov byte [esp + 0x3c0], 3
call fcn.00415420
push 0x68
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0xf
je 0x406ce2
push str.CHANNEL_SPREAD
mov ecx, eax
call fcn.00416a40
mov edi, eax
jmp 0x406ce4
xor edi, edi
push edi
mov ecx, ebx
mov byte [esp + 0x3c0], 3
call fcn.00415420
push 0x68
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0x10
je 0x406d1e
push str.PACK
mov ecx, eax
call fcn.00416a40
mov esi, eax
jmp 0x406d20
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x3c0], 3
call fcn.00415420
push str.true
push str.install_allow
mov ecx, esi
call fcn.00415ea0
push str.true
push str.uninstall_allow
mov ecx, esi
call fcn.00415ea0
push str.wn.wn51.com
push str.install_upweb
mov ecx, esi
call fcn.00415ea0
push 0x42b614
push str.bytes_over
mov ecx, esi
call fcn.00415ea0
push 0x42b600
push str.compress
mov ecx, esi
call fcn.00415ea0
push str.6001_6010
push str.port
mov ecx, esi
call fcn.00415ea0
push 0x42b654
push str.success
mov ecx, esi
call fcn.00415ea0
push 0x42b654
push str.product_id
mov ecx, esi
call fcn.00415ea0
push 0x68
call fcn.0041db2d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x3bc], 0x11
je 0x406de2
push str.PRODUCTS
mov ecx, eax
call fcn.00416a40
mov esi, eax
jmp 0x406de4
xor esi, esi
push esi
mov ecx, ebx
mov byte [esp + 0x3c0], 3
call fcn.00415420
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + 0x14]
test al, al
je 0x406e0d
lea eax, [esp + 0x198]
push eax
push esi
call fcn.00402740
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00415620
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 0x406e41
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 0x406e67
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 0x406e8d
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 0x406eb6
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.0041d05e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret