Function at 0x41ed70
Capabilities:
Check if file exists
Link many functions at runtime
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x486a7f
mov eax, dword fs:[0]
push eax
sub esp, 0x274
mov eax, dword [0x4b3630]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x27c], edi
xor eax, eax
xorps xmm0, xmm0
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x270], eax
lea eax, [ebp - 0x228]
push eax
movups xmmword [ebp - 0x228], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call fcn.00406280
mov ecx, eax
test ecx, ecx
je 0x41f7de
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x268], eax
movzx eax, word [ebp - 0x21c]
push eax
movzx eax, word [ebp - 0x21e]
push eax
movzx eax, word [ebp - 0x220]
push eax
movzx eax, word [ebp - 0x222]
push eax
movzx eax, word [ebp - 0x226]
push eax
movzx eax, word [ebp - 0x228]
push eax
lea eax, [ebp - 0x268]
mov dword [ebp - 4], 0
push str._04d__02d__02d__02d:_02d:_02d
push eax
call fcn.00406190
mov esi, dword [ebp - 0x268]
add esp, 0x20
mov eax, dword [esi - 0xc]
lea eax, [eax*2 + 2]
push eax
push esi
push 1
push str.LastRunTrayDate
push str.SOFTWAREJianDesk
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
lea edx, [esi - 0x10]
mov dword [ebp - 4], 0xffffffff
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41ee7e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00421260
test al, al
je 0x41eefa
push 0x30
call fcn.0044215f
add esp, 4
mov dword [ebp - 0x278], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x41eead
mov ecx, eax
call fcn.0041b2b0
mov ecx, eax
jmp 0x41eeaf
xor ecx, ecx
mov eax, dword [edi + 0xa8]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x278], eax
mov dword [edi + 0xa8], ecx
test eax, eax
je 0x41eee9
mov ecx, eax
call fcn.0041b3f0
push 0x30
push dword [ebp - 0x278]
call fcn.00441e7b
mov ecx, dword [edi + 0xa8]
add esp, 8
mov edx, edi
lea eax, [edi + 0x28]
neg edx
sbb edx, edx
and edx, eax
push edx
call fcn.0041bec0
call fcn.00417a80
mov ecx, eax
call fcn.00417b70
call fcn.0041e9a0
push 0x208
mov edi, eax
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0x400000
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.netul.dll
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41efd2
cmp dword [edi], 0
jne 0x41efd2
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [edi], eax
test eax, eax
je 0x41efd2
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.HttpInit
push eax
call esi
push str.HttpUninit
push dword [edi]
mov dword [edi + 4], eax
call esi
push str.zlib_uncompress
push dword [edi]
mov dword [edi + 8], eax
call esi
push str.zlib_compress
push dword [edi]
mov dword [edi + 0x10], eax
call esi
push str.zlib_compressBound
push dword [edi]
mov dword [edi + 0x14], eax
call esi
mov dword [edi + 0x18], eax
mov eax, dword [edi + 4]
test eax, eax
je 0x41efcf
call eax
mov dword [edi + 0xc], eax
or esi, 0xffffffff
lea eax, [ebp - 0x280]
push eax
call fcn.004105a0
mov ecx, eax
call fcn.0040e340
mov eax, dword [ebp - 0x280]
mov ecx, 0x48e20c
mov dword [ebp - 4], 2
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41f01d
test dx, dx
je 0x41f019
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41f01d
add eax, 4
add ecx, 4
test dx, dx
jne 0x41eff7
xor eax, eax
jmp 0x41f022
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41f079
mov edi, dword [ebp - 0x27c]
mov ecx, edi
push eax
call fcn.0041e160
call fcn.004155e0
test eax, eax
jne 0x41f062
call fcn.004105a0
mov ecx, eax
call fcn.0040e4c0
test eax, eax
jne 0x41f05d
call fcn.004105a0
mov ecx, eax
call fcn.0040e440
test eax, eax
je 0x41f062
call fcn.004150e0
call fcn.00415590
test eax, eax
jne 0x41f6ed
call fcn.00414f10
jmp 0x41f6ed
call fcn.004105a0
mov ecx, eax
call fcn.0040e4c0
test eax, eax
je 0x41f097
push 0
call fcn.004105a0
mov ecx, eax
call fcn.0040e730
xor eax, eax
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
push str.showj
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 3
call fcn.004078c0
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 4
push 0
push eax
call fcn.00410510
mov ecx, eax
call fcn.0040dc40
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 3
mov esi, eax
call fcn.00408520
test esi, esi
je 0x41f133
push str.showj
lea ecx, [ebp - 0x260]
call fcn.004078c0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00410510
mov ecx, eax
call fcn.0040dc30
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 3
call fcn.00408520
lea eax, [ebp - 0x278]
push eax
call fcn.00419a70
add esp, 4
xor eax, eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
push 0x48ea3c
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 7
call fcn.004078c0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00410510
mov ecx, eax
call fcn.0040dc30
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 7
call fcn.00408520
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push str.rmenu
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.0045a988
add esp, 8
test eax, eax
je 0x41f2d6
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push str.rmenu_store
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.0045a988
add esp, 8
test eax, eax
je 0x41f2d6
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push str.startmenu
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.0045a988
add esp, 8
test eax, eax
je 0x41f2d6
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push str.desktop
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.0045a988
add esp, 8
test eax, eax
je 0x41f2d6
push str._try_now
lea ecx, [ebp - 0x260]
call fcn.004078c0
mov eax, 1
mov byte [ebp - 4], 9
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x260]
push 0
push eax
call fcn.00410510
mov ecx, eax
call fcn.0040dc40
test eax, eax
jne 0x41f2d6
cmp dword [ebp - 0x238], eax
jne 0x41f2d6
mov eax, dword [ebp - 0x278]
mov ecx, 0x48fe58
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41f2c6
test dx, dx
je 0x41f2c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41f2c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x41f2a0
xor eax, eax
jmp 0x41f2cb
sbb eax, eax
or eax, 1
mov byte [ebp - 0x261], 0
test eax, eax
jne 0x41f2dd
mov byte [ebp - 0x261], 1
mov eax, dword [ebp - 0x270]
mov dword [ebp - 4], 7
test al, 1
je 0x41f302
and eax, 0xfffffffe
lea ecx, [ebp - 0x260]
mov dword [ebp - 0x270], eax
call fcn.00408520
cmp byte [ebp - 0x261], 0
je 0x41f498
push 0x48e20c
lea ecx, [ebp - 0x268]
call fcn.00416720
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0xa
push eax
call fcn.004105a0
mov ecx, eax
call fcn.0040e4e0
mov edx, dword [ebp - 0x268]
or esi, 0xffffffff
mov byte [ebp - 4], 7
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f35a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004155e0
test eax, eax
jne 0x41f368
call fcn.004150e0
call fcn.00415590
test eax, eax
jne 0x41f376
call fcn.00414f10
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
call fcn.00416080
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x268]
call fcn.00416720
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0xb
push eax
call fcn.00414e30
mov edx, dword [ebp - 0x268]
add esp, 4
mov byte [ebp - 4], 7
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f3f8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x268]
call fcn.00416720
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0xc
push eax
call fcn.00415350
mov edx, dword [ebp - 0x268]
add esp, 4
mov byte [ebp - 4], 7
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f43e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x268]
call fcn.00416720
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0xd
push eax
call fcn.00416170
mov edx, dword [ebp - 0x268]
add esp, 4
mov byte [ebp - 4], 7
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f484
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x27c]
mov ecx, edi
push 0
call fcn.0041e160
jmp 0x41f6b2
lea eax, [ebp - 0x26c]
push eax
call fcn.00419a70
add esp, 4
mov eax, dword [ebp - 0x26c]
mov byte [ebp - 4], 0xe
mov esi, dword [eax - 0xc]
test esi, esi
js 0x41f7e8
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, esi
or ecx, edx
jge 0x41f4df
push esi
lea ecx, [ebp - 0x26c]
call fcn.004068f0
mov eax, dword [ebp - 0x26c]
lea ecx, [esi + 1]
push ecx
push eax
call fcn.0044e147
mov eax, dword [ebp - 0x26c]
add esp, 8
cmp esi, dword [eax - 8]
jg 0x41f7e8
mov dword [eax - 0xc], esi
xor ecx, ecx
mov eax, dword [ebp - 0x26c]
push str.tend
mov word [eax + esi*2], cx
lea ecx, [ebp - 0x268]
call fcn.00416720
mov eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x268]
mov byte [ebp - 4], 0xf
mov edx, dword [eax - 0xc]
mov ecx, dword [ecx - 0xc]
cmp edx, ecx
jl 0x41f5de
xor esi, esi
test ecx, ecx
cmovns esi, ecx
cmp esi, edx
jl 0x41f557
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x274]
call fcn.00418660
jmp 0x41f58a
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x41f569
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
jne 0x41f577
call fcn.00406280
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
push eax
push esi
push dword [ebp - 0x26c]
lea ecx, [ebp - 0x274]
call fcn.0041ca80
or dword [ebp - 0x270], 6
mov eax, dword [ebp - 0x268]
test eax, eax
je 0x41f7f2
mov ecx, dword [ebp - 0x274]
mov edx, ecx
mov si, word [edx]
cmp si, word [eax]
jne 0x41f5cd
test si, si
je 0x41f5c9
mov si, word [edx + 2]
cmp si, word [eax + 2]
jne 0x41f5cd
add edx, 4
add eax, 4
test si, si
jne 0x41f5a7
xor eax, eax
jmp 0x41f5d2
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41f5e4
mov byte [ebp - 0x261], al
jmp 0x41f5eb
mov ecx, dword [ebp - 0x274]
mov byte [ebp - 0x261], 1
mov eax, dword [ebp - 0x270]
or esi, 0xffffffff
test al, 2
je 0x41f60f
lea edx, [ecx - 0x10]
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f60f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x27c]
push 0
push 0
sub esp, 0x28
cmp byte [ebp - 0x261], 0
mov eax, esp
mov dword [ebp - 0x274], esp
mov dword [eax], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainWnd__AEXXZPAV3__std__XPAX_std__.0
mov dword [eax + 0xc], 0
je 0x41f64d
mov dword [eax + 8], 0x41f810
mov dword [eax + 0x10], edi
mov dword [eax + 0x24], eax
mov byte [ebp - 4], 0x10
jmp 0x41f65e
mov dword [eax + 8], 0x41fcd0
mov dword [eax + 0x10], edi
mov dword [eax + 0x24], eax
mov byte [ebp - 4], 0x11
push 1
call fcn.00417a80
mov ecx, eax
mov byte [ebp - 4], 0xf
call fcn.00417760
mov edx, dword [ebp - 0x268]
mov eax, esi
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f691
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x26c]
mov eax, esi
mov byte [ebp - 4], 7
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f6b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x230]
call fcn.00408520
mov edx, dword [ebp - 0x278]
mov eax, esi
mov byte [ebp - 4], 3
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f6de
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00408520
push str._SPB
lea ecx, [ebp - 0x248]
call fcn.004078c0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x12
push 0
push eax
call fcn.00410510
mov ecx, eax
call fcn.0040dc40
mov edx, dword [ebp - 0x234]
test eax, eax
mov byte [ebp - 4], 2
setne al
mov byte [ebp - 0x261], al
cmp edx, 8
jb 0x41f76b
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41f75b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41f7fc
push edx
push ecx
call fcn.00441e7b
mov al, byte [ebp - 0x261]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], cx
test al, al
jne 0x41f79d
push ecx
push 1
push 0x304
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
mov edx, dword [ebp - 0x280]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x41f7bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00442126
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.00405f60
push 0x80070057
call fcn.00405f60
push 0x80004005
call fcn.00405f60
call fcn.0044db89
int3