Function at 0x405920
Capabilities:
Check for time delay via gettickcount
Check if file exists
Copy file
Create directory
Delete file
Resolve function by parsing pe exports
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41d3a0
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2adc
call fcn.0041be10
mov eax, dword [0x427020]
xor eax, esp
mov dword [esp + 0x2ad8], eax
push ebx
push esi
push edi
mov eax, dword [0x427020]
xor eax, esp
push eax
lea eax, [esp + 0x2af0]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esi + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
test eax, eax
mov dword [esp + 0x20], esi
jne 0x405993
mov ecx, dword [esi + 4]
push 0x4221d0
push 0xffffffffffffffff
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
xor eax, eax
jmp 0x406dc6
mov eax, dword [esi + 0x34]
test eax, eax
jle 0x4059c5
push eax
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
test edi, edi
je 0x4059c5
push 0
push edi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x34], 0xffffffff
mov edx, dword [0x427274]
mov eax, dword [edx + 0xc]
mov ecx, 0x427274
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
push 0
push str.ck_W_vN
lea edi, [esp + 0x48]
mov dword [esp + 0x2b00], 0
call fcn.00408750
mov ecx, dword [esp + 0x48]
mov edx, dword [esi + 4]
add esp, 8
push ecx
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov eax, dword [0x427274]
mov edx, dword [eax + 0xc]
mov ecx, 0x427274
call edx
add eax, 0x10
mov dword [esp + 0x44], eax
lea esi, [esp + 0x34]
mov byte [esp + 0x2af8], 1
call fcn.00403410
mov esi, eax
mov ebx, 2
mov byte [esp + 0x2af8], bl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
mov eax, dword [esi]
push eax
push str._siGrade_ld.zip
lea edi, [esp + 0x50]
call fcn.00408750
mov byte [esp + 0x2b04], 1
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405a83
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x44]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esp + 0x274]
call fcn.004043e0
mov ecx, dword [str.http]
mov dword [esp + 0x26c4], ebx
mov ebx, 4
push ebx
push ecx
lea edx, [esp + 0x27c]
push 0x21
push edx
mov dword [esp + 0x26d8], ebx
mov word [esp + 0x26d0], 0x50
call dword [sym.imp.MSVCR80.dll_wcsncpy_s]
push eax
call fcn.00403630
mov eax, dword [esp + 0x28]
mov esi, dword [eax]
add esp, 0x14
lea eax, [esp + 0x274]
call fcn.004043e0
mov ecx, esi
lea edx, [esp + 0x274]
call fcn.00403ef0
lea esi, [esp + 0x144]
call fcn.00409840
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x16c2]
mov byte [esp + 0x2afc], 3
call fcn.00403710
mov esi, eax
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x6c0]
mov byte [esp + 0x2afc], bl
call fcn.00403710
lea ecx, [esp + 0x34]
push esi
push ecx
mov ebx, eax
mov byte [esp + 0x2b00], 5
call fcn.00407440
add esp, 8
mov esi, dword [esp + 0x20]
push 0
push esi
push 0x406df0
mov byte [esp + 0x2b04], 6
mov eax, dword [eax]
mov edx, dword [esp + 0x26cc]
push edi
push eax
push edx
lea eax, [esp + 0x2ce]
push eax
lea ecx, [esp + 0x160]
call fcn.0040c6a0
test eax, eax
mov byte [esp + 0x2af8], 5
mov eax, dword [esp + 0x34]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405bb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2af8], 4
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405bd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2af8], 3
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 0x405c00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x405c8b
mov ecx, dword [esi + 4]
push 0x422240
push 0xffffffffffffffff
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea edx, [esp + 0x144]
push edx
mov byte [esp + 0x2afc], 1
call fcn.00409a00
lea eax, [edi - 0x10]
mov byte [esp + 0x2af8], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405c59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2af8], 0xffffffff
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405c84
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x406dc6
mov edx, dword [0x427274]
mov eax, dword [edx + 0xc]
mov ecx, 0x427274
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
lea esi, [esp + 0x34]
mov byte [esp + 0x2af8], 7
call fcn.00403410
mov esi, eax
mov byte [esp + 0x2af8], 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi]
push eax
push ecx
push str._siGradeTemp_ld
lea edi, [esp + 0x44]
call fcn.00408750
mov byte [esp + 0x2b04], 7
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x405d00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x38]
mov ecx, edi
call fcn.004032c0
push 0
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x405d90
cmp eax, 0xb7
je 0x405d90
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push 0x42228c
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea eax, [edi - 0x10]
mov byte [esp + 0x2af8], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405d5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x2afc], 1
call fcn.00409a00
mov byte [esp + 0x2af8], 0
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x405c4d
mov ebx, dword [esp + 0x44]
push ebx
call fcn.00415750
add esp, 4
test eax, eax
mov dword [esp + 0x30], eax
jne 0x405e20
mov esi, dword [esp + 0x14]
call fcn.004026d0
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push 0x4222bc
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [edi - 0x10]
mov byte [esp + 0x2af8], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405dee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x2afc], 1
call fcn.00409a00
lea eax, [ebx - 0x10]
mov byte [esp + 0x2af8], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x405c4d
push eax
mov dword [esp + 0x20], 1
call fcn.00414c80
add esp, 4
test eax, eax
jne 0x406013
lea esp, [esp]
push 0x50
xor esi, esi
lea ecx, [esp + 0xb8]
push esi
push ecx
call sub.MSVCR80.dll_memset
add esp, 0xc
push 0x3ff
lea edx, [esp + 0x26e9]
push esi
push edx
mov byte [esp + 0x26f0], 0
call sub.MSVCR80.dll_memset
mov edx, dword [esp + 0x3c]
add esp, 0xc
push esi
push esi
push esi
push esi
push 0x400
lea eax, [esp + 0x26f8]
push eax
lea ecx, [esp + 0xcc]
push ecx
push edx
call fcn.00414bb0
add esp, 0x20
test eax, eax
jne 0x40624b
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], esi
mov dword [esp + 0x11c], esi
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], esi
push 0xfde9
lea eax, [esp + 0x26e8]
push eax
lea ecx, [esp + 0x110]
push ecx
mov byte [esp + 0x2b04], 0xa
call fcn.004030c0
lea edx, [esp + 0x24]
push edx
mov ecx, eax
call fcn.00403710
lea ebx, [esp + 0x24]
mov byte [esp + 0x2af8], 0xb
call fcn.00403500
mov ebx, eax
call fcn.00403590
mov edx, dword [esp + 0x24]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x406254
lea ecx, [eax - 1]
test ecx, ecx
jl 0x4062c0
cmp ecx, eax
jg 0x4062c0
movzx ecx, word [edx + ecx*2]
cmp cx, 0x2f
jne 0x406094
lea ecx, [esp + 0x24]
add eax, 0xffffffff
push ecx
call fcn.004070d0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
call fcn.00408890
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x2af8], 0xc
mov edx, dword [esp + 0x24]
push edx
push 0x4222e4
lea edi, [esp + 0x20]
call fcn.00408950
add esp, 8
push esi
mov esi, dword [esp + 0x1c]
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x405f9c
cmp eax, 0xb7
jne 0x40627e
lea eax, [esi - 0x10]
mov byte [esp + 0x2af8], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405fc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x30]
push ebx
call fcn.00414cf0
mov edi, eax
mov byte [esp + 0x2afc], 0xa
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405ff7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x108]
mov byte [esp + 0x2af8], 7
call fcn.00402f30
test edi, edi
je 0x405e40
mov ecx, dword [esp + 0x30]
push ecx
call fcn.00415770
mov edx, dword [esp + 0x48]
add esp, 4
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [esp + 0x1c], 0
jne 0x4062ca
mov esi, dword [esp + 0x14]
call fcn.004026d0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push str.SGS
push 0xffffffffffffffff
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov ecx, dword [esp + 0x38]
call fcn.004032c0
lea ecx, [esp + 0x38]
call fcn.004036d0
lea edx, [esp + 0x144]
push edx
mov byte [esp + 0x2afc], 1
call fcn.00409a00
lea ecx, [esp + 0x44]
call fcn.004036d0
lea ecx, [esp + 0x40]
call fcn.004036d0
xor eax, eax
jmp 0x406dc6
mov edx, dword [0x427274]
mov eax, dword [edx + 0xc]
mov ecx, 0x427274
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x2af8], 0xd
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
push ecx
push edx
push str._s_s
lea edi, [esp + 0x34]
call fcn.00408750
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 0xc
mov dword [esp + 0x34], eax
call fcn.00408890
lea esi, [eax + 0x10]
mov dword [esp + 0x2c], esi
mov byte [esp + 0x2af8], 0xe
cmp dword [esi - 4], 1
jle 0x406105
mov eax, dword [esi - 0xc]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.004025d0
mov esi, dword [esp + 0x2c]
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x406133
lea edi, [esp + 0x2c]
call fcn.00402690
push 0
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x406133
cmp eax, 0xb7
jne 0x406291
mov ebx, dword [esp + 0x30]
push ebx
call fcn.004159f0
add esp, 4
test eax, eax
jne 0x4061f9
mov edx, dword [esp + 0x28]
push 0x4222f8
mov dword [esp + 0x1c], eax
push edx
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.MSVCR80.dll__wfopen_s]
add esp, 0xc
cmp dword [esp + 0x18], 0
je 0x4062ad
push 0x80000
call dword [sym.imp.MSVCR80.dll_malloc]
add esp, 4
mov edi, eax
push 0x80000
push edi
push ebx
call fcn.00414fe0
mov esi, eax
add esp, 0xc
test esi, esi
jle 0x4061c9
mov ecx, dword [esp + 0x18]
push ecx
push esi
push 1
push edi
call dword [sym.imp.MSVCR80.dll_fwrite]
add esp, 0x10
cmp esi, eax
jne 0x4061c1
push 0x80000
push edi
push ebx
call fcn.00414fe0
mov esi, eax
add esp, 0xc
test esi, esi
jg 0x406194
jmp 0x4061c9
mov dword [esp + 0x1c], 0
push edi
call dword [sym.imp.MSVCR80.dll_free]
mov edx, dword [esp + 0x1c]
add esp, 4
push edx
call dword [sym.imp.MSVCR80.dll_fclose]
add esp, 4
push ebx
call fcn.00415270
add esp, 4
cmp dword [esp + 0x1c], 0
je 0x406299
mov esi, dword [esp + 0x2c]
lea eax, [esi - 0x10]
mov byte [esp + 0x2af8], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40621d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2af8], 0xb
mov eax, dword [esp + 0x34]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405fc4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x405fc4
mov dword [esp + 0x1c], esi
jmp 0x406013
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x24]
call fcn.004036d0
lea esi, [esp + 0x108]
mov byte [esp + 0x2af8], 7
call fcn.00402f30
jmp 0x406013
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], 0
call fcn.004036d0
jmp 0x40625c
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x2c]
call fcn.004036d0
lea ecx, [esp + 0x28]
call fcn.004036d0
jmp 0x40625c
push ebx
mov dword [esp + 0x20], 0
call fcn.00415270
add esp, 4
jmp 0x406299
push 0x80070057
call fcn.00402560
lea esi, [esp + 0x28]
call fcn.00407000
mov byte [esp + 0x2af8], 0xf
mov ebx, dword [esp + 0x38]
lea eax, [ebx - 0x10]
mov dword [esp + 0x70], eax
call fcn.00408890
add eax, 0x10
mov dword [esp + 0x1c], eax
push eax
push str._supgrade.cfg
mov edi, esi
mov byte [esp + 0x2b00], 0x10
call fcn.00408750
mov eax, dword [esp + 0x30]
add esp, 8
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40633c
push ebx
push str._supgrade
lea edi, [esp + 0x24]
call fcn.00408750
mov ecx, dword [esp + 0x24]
push ecx
push str._supgrade.cfg
mov edi, esi
call fcn.00408750
add esp, 0x10
lea ecx, [esp + 0x128]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov byte [esp + 0x2af8], 0x11
mov ecx, dword [esp + 0x28]
lea edi, [esp + 0x128]
call fcn.004031d0
fldz
fstp qword [esp + 0x4c]
mov dword [esp + 0x54], 0
mov eax, edi
lea edi, [esp + 0x4c]
mov byte [esp + 0x2af8], 0x12
call fcn.0040f5e0
test al, al
jne 0x4063f7
mov esi, dword [esp + 0x14]
call fcn.004026d0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
push 0x422364
push 0xffffffffffffffff
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov ecx, ebx
call fcn.004032c0
mov ecx, edi
mov byte [esp + 0x2af8], 0x11
call fcn.0040eb40
lea ecx, [esp + 0x128]
mov byte [esp + 0x2af8], 0x10
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x1c]
call fcn.004036d0
lea ecx, [esp + 0x28]
call fcn.004036d0
lea ecx, [esp + 0x38]
call fcn.004036d0
lea ecx, [esp + 0x144]
push ecx
jmp 0x40606e
lea edx, [esp + 0x78]
push edx
call fcn.00402ee0
push str.precmd
lea ecx, [esp + 0x50]
mov byte [esp + 0x2afc], 0x13
call fcn.0040f360
test al, al
mov ebx, dword [esp + 0x20]
je 0x406540
mov eax, dword [ebx + 4]
push 0x422398
push 0xffffffffffffffff
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push str.precmd
lea ecx, [esp + 0x50]
call fcn.0040f030
mov edi, eax
xor esi, esi
call fcn.0040ef00
test eax, eax
jbe 0x406540
push 0x4223b4
push ecx
mov ecx, esi
mov edx, edi
call fcn.0040ef30
add esp, 4
mov ecx, eax
call fcn.0040f030
cmp dword [eax + 8], 6
jne 0x406478
mov eax, dword [eax]
test eax, eax
jne 0x40647d
mov eax, 0x421cc9
push 0
push eax
lea ecx, [esp + 0x80]
push ecx
call fcn.004030c0
lea edx, [esp + 0x14]
push edx
mov ecx, eax
call fcn.00403710
mov eax, dword [esp + 0x20]
mov byte [esp + 0x2af8], 0x14
mov eax, dword [eax + 0x20]
push eax
push 0x4223b8
lea ecx, [esp + 0x1c]
push ecx
call fcn.00407190
mov edx, dword [esp + 0x1c]
push edx
push str._package_
lea eax, [esp + 0x1c]
push eax
call fcn.00407190
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x4c], esp
mov ebx, esp
call fcn.00408890
add eax, 0x10
mov dword [ebx], eax
push str.show
push ecx
mov ecx, esi
mov edx, edi
mov byte [esp + 0x2b04], 0x15
call fcn.0040ef30
add esp, 4
mov ecx, eax
call fcn.0040f030
mov ecx, eax
call fcn.0040ed80
mov byte [esp + 0x2afc], 0x14
call fcn.00406ec0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2af8], 0x13
call fcn.004036d0
mov eax, edi
add esi, 1
call fcn.0040ef00
cmp esi, eax
jb 0x406453
mov ebx, dword [esp + 0x20]
push str.remove
lea ecx, [esp + 0x50]
call fcn.0040f360
test al, al
je 0x406664
mov ecx, dword [ebx + 4]
push 0x4223ec
push 0xffffffffffffffff
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push str.remove
lea ecx, [esp + 0x50]
call fcn.0040f030
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], 0
call fcn.0040ef00
test eax, eax
jbe 0x406664
mov edi, edi
mov edx, dword [0x427274]
mov eax, dword [edx + 0xc]
mov ecx, 0x427274
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x2af8], 0x16
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
call fcn.0040ef30
cmp dword [eax + 8], 6
jne 0x4065c8
mov eax, dword [eax]
test eax, eax
jne 0x4065cd
mov eax, 0x421cc9
push 0
push eax
lea ecx, [esp + 0x80]
push ecx
call fcn.004030c0
mov edx, dword [ebx + 0x20]
push eax
push edx
push str._s_s
lea edi, [esp + 0x20]
call fcn.00408750
add esp, 0xc
push 0x422404
push 0x422408
mov eax, edi
push eax
call fcn.00407190
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x40661d
mov ecx, esi
call fcn.004032c0
jmp 0x406624
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esi - 0x10]
mov byte [esp + 0x2af8], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406648
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add edx, 1
mov dword [esp + 0x18], edx
call fcn.0040ef00
cmp edx, eax
jb 0x406590
push str.files
lea ecx, [esp + 0x50]
call fcn.0040f360
test al, al
je 0x406a65
mov ecx, dword [ebx + 4]
push str.ck_WGS
push 0xffffffffffffffff
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov eax, dword [ebx + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call esi
test eax, eax
jne 0x4066ac
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [ebx + 0x24]
push ebx
call esi
push str.files
lea ecx, [esp + 0x50]
call fcn.0040f030
xor edi, edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
lea edx, [esp + 0x60]
push edx
mov ecx, eax
mov byte [esp + 0x2afc], 0x17
call fcn.0040f410
xor ebx, ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], edi
lea ebx, [ebx]
mov esi, dword [esp + 0x64]
test esi, esi
je 0x406a54
mov ecx, dword [esp + 0x68]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x406a54
cmp dword [esi + edi + 0x18], 0x10
jb 0x40672a
mov esi, dword [esi + edi + 4]
jmp 0x40672e
lea esi, [esi + edi + 4]
push 0
push esi
lea eax, [esp + 0x80]
push eax
call fcn.004030c0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.00403710
mov byte [esp + 0x2af8], 0x18
mov esi, dword [esp + 0x64]
test esi, esi
je 0x406777
mov ecx, dword [esp + 0x68]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x406781
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esp + 0x64]
cmp dword [esi + edi + 0x18], 0x10
jb 0x40678e
mov esi, dword [esi + edi + 4]
jmp 0x406792
lea esi, [esi + edi + 4]
mov ecx, dword [esp + 0x74]
push esi
call fcn.0040f030
lea esi, [esp + 0x98]
call fcn.0040eb60
mov edx, esi
push edx
lea ecx, [esp + 0x10c]
mov byte [esp + 0x2afc], 0x19
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov ecx, esi
mov byte [esp + 0x2af8], 0x1b
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [0x427274]
mov edx, dword [eax + 0xc]
mov ecx, 0x427274
call edx
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0x2af8], 0x1c
mov eax, dword [esp + 0x18]
push str.shoujizhushou.exe
push eax
call dword [sym.imp.MSVCR80.dll__wcsicmp]
add esp, 8
test eax, eax
lea edi, [esp + 0x30]
jne 0x406831
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x20]
push ecx
push edx
push str._s_s
call fcn.00408750
add esp, 0xc
push 0x422404
push 0x422408
mov eax, edi
push eax
jmp 0x40685a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
push ecx
push eax
push str._s_s
call fcn.00408750
add esp, 0xc
push 0x422404
push 0x422408
lea ecx, [esp + 0x38]
push ecx
call fcn.00407190
mov edx, dword [0x427274]
mov eax, dword [edx + 0xc]
mov ecx, 0x427274
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x2af8], 0x1d
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push ecx
push edx
push str._s_s
lea edi, [esp + 0x20]
call fcn.00408750
add esp, 0xc
push 0x422404
push 0x422408
mov eax, edi
push eax
call fcn.00407190
mov esi, dword [esp + 0x30]
lea eax, [esi - 0x10]
mov dword [esp + 0x48], eax
call fcn.00408890
lea ebx, [eax + 0x10]
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x2af8], 0x1e
cmp dword [ebx - 4], 1
jle 0x4068e2
mov ecx, dword [ebx - 0xc]
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.004025d0
mov ebx, dword [esp + 0x2c]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x406901
lea edi, [esp + 0x2c]
call fcn.00402690
push 0
push ebx
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov eax, dword [esp + 0x14]
push 0
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40698f
mov edx, dword [0x427274]
mov eax, dword [edx + 0xc]
mov ecx, 0x427274
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0x2af8], 0x1f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push 0x42244c
lea edi, [esp + 0x40]
call fcn.00408750
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 4]
add esp, 0xc
push esi
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esi - 0x10]
mov byte [esp + 0x2af8], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40698f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0xfffffff0
mov byte [esp + 0x2af8], 0x1d
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4069b3
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov byte [esp + 0x2af8], 0x1c
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4069db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2af8], 0x1b
mov eax, dword [esp + 0x48]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x108]
mov byte [esp + 0x2af8], 0x18
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [esp + 0x2af8], 0x17
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 0x406a3d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add dword [esp + 0x3c], 1
add dword [esp + 0x24], 0x1c
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
jmp 0x4066f0
lea ebx, [esp + 0x60]
mov byte [esp + 0x2af8], 0x13
call fcn.00407500
push str.postcmd
lea ecx, [esp + 0x50]
call fcn.0040f360
test al, al
je 0x406bc2
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push str.ck_WgbL
push 0xffffffffffffffff
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push str.postcmd
lea ecx, [esp + 0x50]
call fcn.0040f030
mov edi, eax
xor ebx, ebx
call fcn.0040ef00
test eax, eax
jbe 0x406bc2
nop
push 0x4223b4
push ecx
mov ecx, ebx
mov edx, edi
call fcn.0040ef30
add esp, 4
mov ecx, eax
call fcn.0040f030
cmp dword [eax + 8], 6
jne 0x406ad5
mov eax, dword [eax]
test eax, eax
jne 0x406ada
mov eax, 0x421cc9
push 0
push eax
lea eax, [esp + 0x80]
push eax
call fcn.004030c0
lea ecx, [esp + 0x14]
push ecx
mov ecx, eax
call fcn.00403710
mov edx, dword [esp + 0x20]
mov byte [esp + 0x2af8], 0x20
mov eax, dword [edx + 0x20]
push eax
push 0x4223b8
lea eax, [esp + 0x1c]
push eax
call fcn.00407190
mov ecx, dword [esp + 0x1c]
push ecx
push str._package_
lea edx, [esp + 0x1c]
push edx
call fcn.00407190
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.00408890
lea esi, [eax + 0x10]
mov dword [esp + 0x48], esi
push str.show
push ecx
mov ecx, ebx
mov edx, edi
mov byte [esp + 0x2b00], 0x21
call fcn.0040ef30
add esp, 4
mov ecx, eax
call fcn.0040f030
mov ecx, eax
call fcn.0040ed80
lea eax, [esi - 0x10]
mov byte [esp + 0x2af8], 0x20
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406b88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2af8], 0x13
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406bb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
add ebx, 1
call fcn.0040ef00
cmp ebx, eax
jb 0x406ab0
push str.lastrun
lea ecx, [esp + 0x50]
call fcn.0040f360
test al, al
je 0x406c6b
push str.lastrun
lea ecx, [esp + 0x50]
call fcn.0040f030
cmp dword [eax + 8], 6
jne 0x406bf2
mov eax, dword [eax]
test eax, eax
jne 0x406bf7
mov eax, 0x421cc9
push 0
push eax
lea ecx, [esp + 0x80]
push ecx
call fcn.004030c0
mov edi, dword [esp + 0x20]
add edi, 0x28
test eax, eax
jne 0x406c16
xor ecx, ecx
jmp 0x406c2f
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x406c20
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x406c20
sub ecx, esi
sar ecx, 1
push eax
mov ebx, ecx
mov eax, edi
call fcn.004039c0
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x20]
push eax
push 0x4223b8
push edi
call fcn.00407190
mov edx, dword [esp + 0x1c]
push edx
push str._package_
push edi
call fcn.00407190
mov esi, dword [esi + 0x2c]
push esi
push str.shoujizhushou.exe
push edi
call fcn.00407190
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextW]
push str.ck_W
push 0xffffffffffffffff
push eax
call edi
mov ecx, dword [esp + 0x38]
call fcn.004032c0
mov ecx, dword [esi + 4]
push 0x4224b4
push 0xffffffffffffffff
push ecx
call edi
mov edx, dword [esi + 4]
push 0
push 0x3e8
push 0x8001
push edx
mov dword [esi + 0x38], 1
call dword [sym.imp.USER32.dll_SetTimer]
lea esi, [esp + 0x78]
call fcn.00402f30
lea esi, [esp + 0x4c]
mov byte [esp + 0x2af8], 0x11
call fcn.0040eca0
lea ecx, [esp + 0x128]
mov byte [esp + 0x2af8], 0x10
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [esp + 0x2af8], 0xf
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 0x406d0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2af8], 7
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406d34
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x70]
mov byte [esp + 0x2af8], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406d59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x2afc], 1
call fcn.00409a00
mov byte [esp + 0x2af8], 0
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406d96
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x2af8], 0xffffffff
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406dc1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x2af0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2ad8]
xor ecx, esp
call fcn.00413588
mov esp, ebp
pop ebp
ret