Function at 0x40af86
Capabilities:
Print debug messages
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x104
mov eax, dword [0x41c00c]
xor eax, esp
mov dword [esp + 0x100], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
call fcn.004023e7
call fcn.0040ae6b
test eax, eax
jne 0x40afbc
or eax, 0xffffffff
jmp 0x40b409
push 0x4154b4
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
pop ecx
test eax, eax
je 0x40b000
push str.OPENSSL_CONF
lea ecx, [esp + 0x88]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_char_::constructor_char_const__]
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public:_char_const____thiscall_Cmm::CStringT_char_::c_str_void_const]
push eax
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__putenv]
pop ecx
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_char_::destructor_void_]
push 0x64
xor edi, edi
lea eax, [esp + 0xa4]
push edi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0xa0]
push 0x64
push eax
call dword [sym.imp.libcrypto_1_1.dll_RAND_bytes]
push edi
push edi
call dword [sym.imp.Cmmlib.dll_public:_static_void___cdecl_Cmm::CommandLine::Init_int__char_const__const_const__]
add esp, 0x10
call fcn.004095cc
test al, al
jne 0x40b05e
call dword [sym.imp.DuiLib.dll_public:_static_int___cdecl_DuiLib::CHighDpi::InitHdpi_void_]
call fcn.00406da4
test eax, eax
jne 0x40b055
push 3
call dword [sym.imp.DuiLib.dll_public:_static_bool___cdecl_DuiLib::CHighDpi::SetAwarenessMode_enum_DuiLib::CDpiAwarenessMode::DPIAwareMode_]
pop ecx
test al, al
jne 0x40b05e
push 1
call dword [sym.imp.DuiLib.dll_public:_static_bool___cdecl_DuiLib::CHighDpi::SetAwarenessMode_enum_DuiLib::CDpiAwarenessMode::DPIAwareMode_]
pop ecx
call dword [sym.imp.DuiLib.dll_public:_static_class_DuiLib::CHighContrast____cdecl_DuiLib::CHighContrast::Instance_void_]
mov ebx, eax
test ebx, ebx
je 0x40b085
call fcn.00406da4
neg eax
mov ecx, ebx
sbb al, al
inc al
mov byte [esp + 0x10], al
push dword [esp + 0x10]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CHighContrast::SetSupportHighContrast_bool_]
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_void_]
call dword [sym.imp.Cmmlib.dll_public:_static_class_Cmm::CommandLine____cdecl_Cmm::CommandLine::ForCurrentProcess_void_]
mov ebx, eax
mov ecx, ebx
call fcn.0040aef0
test eax, eax
je 0x40b14b
test ebx, ebx
je 0x40b15f
push 0x411c00
lea ecx, [esp + 0x60]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_char_::constructor_wchar_t_const__]
add eax, 4
lea ecx, [ebx + 0x34]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00409cac
lea ecx, [esp + 0x5c]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_char_::destructor_void_]
mov eax, dword [esp + 0x10]
cmp eax, dword [ebx + 0x34]
je 0x40b0f5
add eax, 0x28
lea ecx, [esp + 0x84]
push eax
call dword [0x41117c]
push str.8d56cfe4_0eb9_411f_8439_fc2e3bfdce76
lea ecx, [esp + 0x60]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_char_::constructor_char_const__]
add eax, 4
lea ecx, [ebx + 0x34]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00409cac
lea ecx, [esp + 0x5c]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_char_::destructor_void_]
mov eax, dword [esp + 0x10]
cmp eax, dword [ebx + 0x34]
je 0x40b15f
add eax, 0x28
lea ecx, [esp + 0x5c]
push eax
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [esp + 0x5c]
call fcn.004094d1
lea ecx, [esp + 0x5c]
mov edi, eax
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
mov eax, edi
jmp 0x40b409
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public:_int___thiscall_Cmm::CStringT_wchar_t_::IsEmpty_void_const]
test eax, eax
jne 0x40b255
push str.App_Start_with_Web_join__Url:
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public:_wchar_t_const____thiscall_Cmm::CStringT_wchar_t_::c_str_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ebx, dword [sym.imp.USER32.dll_DefWindowProcW]
xor eax, eax
push 0xa
pop ecx
mov dword [esp + 0x5c], edi
mov edx, str.GrabFocusWindow
mov dword [esp + 0x64], edi
xorps xmm0, xmm0
mov dword [esp + 0x68], edi
lea edi, [esp + 0x34]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x60], ebx
push eax
push edx
push esi
mov dword [esp + 0x78], esi
movups xmmword [esp + 0x7c], xmm0
mov dword [esp + 0x8c], edx
call dword [sym.imp.USER32.dll_GetClassInfoW]
test eax, eax
je 0x40b1f1
cmp ebx, dword [esp + 0x38]
je 0x40b1fc
push esi
push dword [esp + 0x84]
call dword [sym.imp.USER32.dll_UnregisterClassW]
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.USER32.dll_RegisterClassW]
xor edi, edi
push edi
push esi
push edi
push edi
push 1
push 1
push edi
push edi
push 0x80000000
push 0x411cf8
push dword [esp + 0xa8]
push 0x80
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
test esi, esi
je 0x40b24a
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push 5
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_SetFocus]
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x40b255
push str.App_Create_Focus_window_failure_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_void_]
call dword [sym.imp.Cmmlib.dll_public:_static_class_Cmm::CommandLine____cdecl_Cmm::CommandLine::ForCurrentProcess_void_]
test eax, eax
je 0x40b338
push 0x414e8c
lea ecx, [esp + 0x60]
lea esi, [eax + 0x34]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_char_::constructor_char_const__]
add eax, 4
mov ecx, esi
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00409cac
lea ecx, [esp + 0x5c]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_char_::destructor_void_]
mov eax, dword [esp + 0x10]
cmp eax, dword [esi]
je 0x40b338
add eax, 0x28
lea ecx, [esp + 0x84]
push eax
call dword [0x41117c]
push str.resetData
lea ecx, [esp + 0x60]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_char_const__]
push eax
lea ecx, [esp + 0x88]
call dword [sym.imp.Cmmlib.dll_public:_bool___thiscall_Cmm::CStringT_wchar_t_::operator_class_Cmm::CStringT_wchar_t__const__const]
lea ecx, [esp + 0x5c]
mov bl, al
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
test bl, bl
je 0x40b2f7
push 1
jmp 0x40b325
push str.resetConfig
lea ecx, [esp + 0x60]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_char_const__]
push eax
lea ecx, [esp + 0x88]
call dword [sym.imp.Cmmlib.dll_public:_bool___thiscall_Cmm::CStringT_wchar_t_::operator_class_Cmm::CStringT_wchar_t__const__const]
lea ecx, [esp + 0x5c]
mov bl, al
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
test bl, bl
je 0x40b338
push edi
mov eax, dword [sym.imp.Cmmlib.dll_const_Cmm::CmmLogGC::vftable]
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], eax
call dword [sym.imp.Cmmlib.dll_public_virtual:_int___thiscall_Cmm::CmmLogGC::ResetAppData_int_]
lea ecx, [esp + 0x84]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
xor eax, eax
mov dword [esp + 0x28], edi
inc eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x24], eax
xorps xmm0, xmm0
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
movlpd qword [esp + 0x20], xmm0
push eax
lea eax, [esp + 0x20]
mov dword [esp + 0x20], edi
push eax
mov dword [esp + 0x20], edi
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call dword [0x411670]
call esi
push 3
push edi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_abort_behavior]
push 0x40ae60
push 0x16
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_signal]
add esp, 0x10
call dword [sym.imp.MSAALIB.dll_ZAccInitModule]
push edi
push edi
push edi
push edi
xor edx, edx
xor ecx, ecx
call fcn.004088ed
add esp, 0x10
test eax, eax
js 0x40b3d9
call fcn.004090ed
test eax, eax
js 0x40b3d9
call fcn.00409144
push dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov ecx, esi
call dword [0x411670]
call esi
call dword [sym.imp.DuiLib.dll_public:_static_void___cdecl_DuiLib::CHighDpi::UnInitHdpi_void_]
push dword [esp + 0x18]
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
call dword [sym.imp.ole32.dll_CoUninitialize]
call dword [sym.imp.MSAALIB.dll_ZAccTermModule]
xor eax, eax
mov ecx, dword [esp + 0x10c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040db50
mov esp, ebp
pop ebp
ret 0x10