Function at 0x4d7920
Capabilities:
Link many functions at runtime
Query environment variable
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62b6bc
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x6f7654]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x110], ecx
push 0x40
push 0x6733e4
push 0x673404
lea ecx, [ebp - 0xac]
call fcn.00455c30
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
push 0x67341c
push 4
push 0x67342c
push 0x41
push 0x673434
push 0x673454
call fcn.004563b0
add esp, 0x1c
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp + 8]
mov dword [ecx], edx
mov eax, dword [ebp - 0x110]
cmp dword [eax + 8], 0
je 0x4d7a05
mov ecx, dword [ebp - 0x110]
cmp dword [ecx + 0xc], 0
je 0x4d7a05
push str.Initialize_have_been_invoked.
push 4
push 0x67348c
push 0x46
push 0x673494
push 0x6734b4
call fcn.004563b0
add esp, 0x18
mov ecx, dword [ebp - 0x110]
call fcn.004da380
mov byte [ebp - 0xad], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.00455c90
mov al, byte [ebp - 0xad]
jmp 0x4d7fef
push 0
push 0
push 0x6734cc
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov dword [ebp - 0x30], eax
xor edx, edx
mov word [ebp - 0xb0], dx
lea eax, [ebp - 0xb0]
push eax
mov ecx, dword [ebp - 0x30]
add ecx, 1
push ecx
lea ecx, [ebp - 0x64]
call fcn.004da990
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x64]
call fcn.004daa60
push eax
push 0
lea ecx, [ebp - 0x64]
call fcn.004daa80
push eax
push 0x6734d8
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push 0
lea ecx, [ebp - 0x64]
call fcn.004daa80
push eax
lea ecx, [ebp - 0x80]
call fcn.00404af0
mov byte [ebp - 4], 2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xb4], esp
push str.SdgPatchSdkPath
call fcn.00404af0
mov dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x118], edx
mov byte [ebp - 4], 3
lea eax, [ebp - 0xd0]
push eax
call fcn.0042df70
mov byte [ebp - 4], 2
mov ecx, eax
call fcn.00497620
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp - 0x11c]
mov dword [ebp - 0x120], ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x120]
call fcn.00402aa0
push eax
lea edx, [ebp - 0x2c]
push edx
call fcn.00446600
add esp, 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd0]
call fcn.00403b10
lea ecx, [ebp - 0x2c]
call fcn.00402aa0
push eax
lea ecx, [ebp - 0xec]
call fcn.00404af0
mov byte [ebp - 4], 7
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0x9c]
push ecx
call fcn.0061b1c0
add esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xec]
call fcn.00403b10
lea edx, [ebp - 0x9c]
push edx
push 0x673504
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x108]
push ecx
call fcn.00406510
add esp, 0xc
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x128], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x128]
push eax
lea ecx, [ebp - 0x4c]
push ecx
call fcn.004327f0
add esp, 0xc
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x108]
call fcn.00403b10
lea ecx, [ebp - 0x4c]
call fcn.00402aa0
push eax
push 0x673508
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea ecx, [ebp - 0x4c]
call fcn.00402aa0
push eax
push str.tmpEnv_s
push 4
push 0x673528
push 0x56
push 0x673530
push 0x673550
call fcn.00456680
add esp, 0x1c
lea ecx, [ebp - 0x2c]
call fcn.00402aa0
push eax
push str.updateDllPath_s
push 4
push 0x67358c
push 0x57
push 0x673594
push 0x6735b4
call fcn.00456680
add esp, 0x1c
lea ecx, [ebp - 0x2c]
call fcn.00402aa0
test eax, eax
je 0x4d7c26
lea ecx, [ebp - 0x2c]
call fcn.00402aa0
push eax
call fcn.005ea8fb
add esp, 4
test eax, eax
jbe 0x4d7c26
push 8
push 0
lea ecx, [ebp - 0x2c]
call fcn.00402aa0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edx, dword [ebp - 0x110]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x110]
cmp dword [eax + 8], 0
je 0x4d7c50
push str.InitEnvW
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x110]
cmp dword [edx + 8], 0
je 0x4d7c7a
push str.StartUpdateW
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x110]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x110]
cmp dword [eax + 8], 0
je 0x4d7ca4
push str.IsNeedUpdateW
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0x110]
cmp dword [edx + 8], 0
je 0x4d7cce
push str.StopUpdate
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x110]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x110]
cmp dword [eax + 8], 0
je 0x4d7cf8
push str.GetLocalVersionW
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x110]
cmp dword [edx + 8], 0
je 0x4d7d22
push str.GetServerVersionW
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x110]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x110]
cmp dword [eax + 8], 0
je 0x4d7d4c
push str.RegisterUpdateCallback
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x2c], eax
mov edx, dword [ebp - 0x110]
cmp dword [edx + 8], 0
je 0x4d7d76
push str.DownloadFileW
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x110]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x110]
cmp dword [eax + 8], 0
je 0x4d7da0
push str.SetEnginePopErrorTip
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x28], eax
mov edx, dword [ebp - 0x110]
cmp dword [edx + 0x2c], 0
je 0x4d7ea4
push str.sdg_callback_register_begin.
push 4
push 0x67368c
push 0x68
push 0x673694
push 0x6736b4
call fcn.004563b0
add esp, 0x18
push 0x4d8460
push 1
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 0x2c]
call ecx
push 0x4d84e0
push 2
mov edx, dword [ebp - 0x110]
mov eax, dword [edx + 0x2c]
call eax
push 0x4d85e0
push 3
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2c]
call edx
push 0x4d8660
push 6
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 0x2c]
call ecx
push 0x4d8690
push 7
mov edx, dword [ebp - 0x110]
mov eax, dword [edx + 0x2c]
call eax
push 0x4d8750
push 5
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2c]
call edx
push 0x4d87c0
push 8
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 0x2c]
call ecx
push 0x4d8890
push 9
mov edx, dword [ebp - 0x110]
mov eax, dword [edx + 0x2c]
call eax
push 0x4d89a0
push 0xa
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2c]
call edx
push 0x4d8a10
push 0xb
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 0x2c]
call ecx
push str.sdg_callback_register_end.
push 4
push 0x6736e8
push 0x7f
push 0x6736f0
push 0x673710
call fcn.004563b0
add esp, 0x18
push 0xfa0
push 0x6fc1a4
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov edx, dword [ebp - 0x110]
cmp dword [edx + 8], 0
je 0x4d7ed0
mov eax, dword [ebp - 0x110]
cmp dword [eax + 0xc], 0
jne 0x4d7f79
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 8]
push ecx
push str.m_hUpdateEngine_d__m_pfnInitEnv_d
push 4
push 0x67374c
push 0x85
push str.CSdgPatchAdapter::Initialize
push 0x673774
call fcn.004563b0
add esp, 0x20
push 0x15f98
mov ecx, dword [ebp - 0x110]
call fcn.004d9670
mov byte [ebp - 0x109], 0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x4c]
call fcn.00403b10
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x9c]
call fcn.00403b10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00403b10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x80]
call fcn.00403b10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x64]
call fcn.004daa00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.00455c90
mov al, byte [ebp - 0x109]
jmp 0x4d7fef
push 0
mov ecx, dword [ebp - 0x110]
call fcn.004da710
mov ecx, dword [ebp - 0x110]
call fcn.004da380
mov byte [ebp - 0x10a], 1
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x4c]
call fcn.00403b10
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x9c]
call fcn.00403b10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00403b10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x80]
call fcn.00403b10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x64]
call fcn.004daa00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.00455c90
mov al, byte [ebp - 0x10a]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ea848
mov esp, ebp
pop ebp
ret 4