Function at 0x4023d0
Capabilities:
Get common file path
Resolve function by parsing pe exports
Set current directory

Disassembly:
push 0x648
mov eax, 0x433b70
call fcn.00425d32
mov eax, dword [ebp + 8]
mov dword [ebp - 0x654], eax
push str.LiveUDParam
lea eax, [ebp - 0x458]
push eax
mov ebx, ecx
call fcn.00402de2
and dword [ebp - 4], 0
xor eax, eax
lea edi, [ebp - 0x17]
mov byte [ebp - 0x18], 0
stosd dword es:[edi], eax
cmp dword [ebx + 0x130], eax
jne 0x40243f
lea eax, [ebp - 0x25c]
push eax
call fcn.0042db6d
pop ecx
push eax
lea ecx, [ebx + 0x11c]
mov byte [ebp - 4], 1
call dword [0x43431c]
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2e8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov byte [ebp - 4], 2
mov ecx, dword [ebx + 0x130]
lea eax, [ebx + 0x11c]
cmp dword [eax + 0x18], 8
jb 0x402466
mov eax, dword [eax + 4]
jmp 0x402469
add eax, 4
lea edx, [ebp - 0x2e8]
push edx
push ecx
push eax
call fcn.0042d2a8
mov edi, dword [sym.imp.MSVCR90.dll__itoa]
add esp, 0xc
push 0xa
lea eax, [ebp - 0x18]
push eax
push dword [ebx + 0x1b0]
call edi
add esp, 0xc
push eax
push str.serverver
lea esi, [ebp - 0x458]
call fcn.00402ffa
push 0xa
lea eax, [ebp - 0x18]
push eax
xor eax, eax
cmp byte [ebx + 0x70], al
setne al
push eax
call edi
add esp, 0xc
push eax
push str.checkupdate
call fcn.00402ffa
cmp dword [ebp - 0x2d0], 0x10
mov eax, dword [ebp - 0x2e4]
jae 0x4024d6
lea eax, [ebp - 0x2e4]
push eax
push str.productpath
lea esi, [ebp - 0x458]
call fcn.00402ffa
push 0xa
lea eax, [ebp - 0x18]
push eax
xor eax, eax
cmp byte [ebx + 0x1d8], al
setne al
push eax
call edi
add esp, 0xc
push eax
push str.isinservice
call fcn.00402ffa
mov eax, dword [ebp - 0x654]
mov ecx, 0x43e908
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40253a
test dx, dx
je 0x402536
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40253a
add eax, 4
add ecx, 4
test dx, dx
jne 0x402514
xor eax, eax
jmp 0x40253f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402699
lea ecx, [ebp - 0x25c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [ebp - 0x320]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [ebp - 0x358]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov byte [ebp - 4], 5
cmp dword [ebx + 0x8c], 8
mov ecx, dword [ebx + 0x88]
jb 0x40258b
mov eax, dword [ebx + 0x78]
jmp 0x40258e
lea eax, [ebx + 0x78]
lea edx, [ebp - 0x25c]
push edx
push ecx
push eax
call fcn.0042d2a8
mov ecx, dword [ebx + 0xa4]
lea eax, [ebx + 0x90]
add esp, 0xc
cmp dword [eax + 0x18], 8
jb 0x4025b6
mov eax, dword [eax + 4]
jmp 0x4025b9
add eax, 4
lea edx, [ebp - 0x320]
push edx
push ecx
push eax
call fcn.0042d2a8
mov ecx, dword [ebx + 0xc0]
lea eax, [ebx + 0xac]
add esp, 0xc
cmp dword [eax + 0x18], 8
jb 0x4025e1
mov eax, dword [eax + 4]
jmp 0x4025e4
add eax, 4
lea edx, [ebp - 0x358]
push edx
push ecx
push eax
call fcn.0042d2a8
mov eax, dword [ebp - 0x258]
add esp, 0xc
push 0x10
pop edi
cmp dword [ebp - 0x244], edi
jae 0x40260c
lea eax, [ebp - 0x258]
push eax
push str.xarpath
lea esi, [ebp - 0x458]
call fcn.00402ffa
mov eax, dword [ebp - 0x31c]
cmp dword [ebp - 0x308], edi
jae 0x402631
lea eax, [ebp - 0x31c]
push eax
push str.xarname
lea esi, [ebp - 0x458]
call fcn.00402ffa
mov eax, dword [ebp - 0x354]
cmp dword [ebp - 0x340], edi
jae 0x402656
lea eax, [ebp - 0x354]
push eax
push str.param
lea esi, [ebp - 0x458]
call fcn.00402ffa
lea ecx, [ebp - 0x358]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x320]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x40269c
push 0x10
pop edi
push str.Product
lea eax, [ebp - 0x500]
push eax
call fcn.00402de2
lea ecx, [ebp - 0x2cc]
mov byte [ebp - 4], 6
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [ebp - 0x3ac]
mov byte [ebp - 4], 7
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov byte [ebp - 4], 8
cmp dword [ebx + 0x18], 8
mov ecx, dword [ebx + 0x14]
jb 0x4026df
mov eax, dword [ebx + 4]
jmp 0x4026e2
lea eax, [ebx + 4]
lea edx, [ebp - 0x2cc]
push edx
push ecx
push eax
call fcn.0042d2a8
mov ecx, dword [ebx + 0x30]
add esp, 0xc
cmp dword [ebx + 0x34], 8
jb 0x402701
mov eax, dword [ebx + 0x20]
jmp 0x402704
lea eax, [ebx + 0x20]
lea edx, [ebp - 0x3ac]
push edx
push ecx
push eax
call fcn.0042d2a8
mov eax, dword [ebp - 0x2c8]
add esp, 0xc
cmp dword [ebp - 0x2b4], edi
jae 0x402729
lea eax, [ebp - 0x2c8]
push eax
push str.name
lea esi, [ebp - 0x500]
call fcn.00402ffa
mov eax, dword [ebp - 0x3a8]
cmp dword [ebp - 0x394], edi
jae 0x40274e
lea eax, [ebp - 0x3a8]
push eax
push 0x43e974
lea esi, [ebp - 0x500]
call fcn.00402ffa
lea eax, [ebx + 0x158]
cmp dword [eax + 0x18], edi
jb 0x40276f
mov eax, dword [eax + 4]
jmp 0x402772
add eax, 4
push eax
push 0x43e978
lea esi, [ebp - 0x500]
call fcn.00402ffa
lea eax, [ebx + 0x174]
cmp dword [eax + 0x18], edi
jb 0x402793
mov eax, dword [eax + 4]
jmp 0x402796
add eax, 4
push eax
push str.keyname
lea esi, [ebp - 0x500]
call fcn.00402ffa
mov eax, esi
push eax
lea esi, [ebp - 0x458]
call fcn.00403051
push str.DlPath
lea eax, [ebp - 0x650]
push eax
call fcn.00402de2
lea ecx, [ebp - 0x33c]
mov byte [ebp - 4], 9
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov byte [ebp - 4], 0xa
cmp dword [ebx + 0x50], 8
mov eax, dword [ebx + 0x4c]
jb 0x4027e8
mov ecx, dword [ebx + 0x3c]
jmp 0x4027eb
lea ecx, [ebx + 0x3c]
lea edx, [ebp - 0x33c]
push edx
push eax
push ecx
call fcn.0042d2a8
mov eax, dword [ebp - 0x338]
add esp, 0xc
cmp dword [ebp - 0x324], edi
jae 0x402810
lea eax, [ebp - 0x338]
push eax
lea esi, [ebp - 0x650]
call fcn.00402fac
mov eax, esi
push eax
lea esi, [ebp - 0x458]
call fcn.00403051
push str.LocalParam
lea eax, [ebp - 0x5a8]
push eax
call fcn.00402de2
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov byte [ebp - 4], 0xc
mov ecx, dword [ebx + 0x1d0]
lea eax, [ebx + 0x1bc]
cmp dword [eax + 0x18], 8
jb 0x402866
mov eax, dword [eax + 4]
jmp 0x402869
add eax, 4
lea edx, [ebp - 0x2b0]
push edx
push ecx
push eax
call fcn.0042d2a8
mov eax, dword [ebp - 0x2ac]
add esp, 0xc
cmp dword [ebp - 0x298], edi
jae 0x40288e
lea eax, [ebp - 0x2ac]
push eax
lea esi, [ebp - 0x5a8]
call fcn.00402fac
mov eax, esi
push eax
lea esi, [ebp - 0x458]
call fcn.00403051
lea ecx, [ebp - 0x294]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea eax, [ebp - 0x294]
push eax
mov eax, esi
push eax
mov byte [ebp - 4], 0xd
call fcn.004017d0
lea ecx, [ebp - 0x374]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x290]
cmp dword [ebp - 0x27c], edi
jae 0x4028eb
lea eax, [ebp - 0x290]
lea ecx, [ebp - 0x374]
push ecx
push dword [ebp - 0x280]
push eax
call fcn.0042d31d
add esp, 0xc
push dword [ebp - 0x654]
lea ecx, [ebp - 0x278]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push 0x43e998
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0xf
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const__]
cmp dword [ebp - 0x35c], 8
mov eax, dword [ebp - 0x370]
jae 0x40293d
lea eax, [ebp - 0x370]
push eax
lea ecx, [ebp - 0x278]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const__]
push 0x43e9a0
lea ecx, [ebp - 0x278]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const__]
push 7
xor eax, eax
pop ecx
mov word [ebp - 0x38], ax
lea edi, [ebp - 0x36]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0xa
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call dword [sym.imp.MSVCR90.dll__itow]
add esp, 0xc
push eax
lea ecx, [ebp - 0x278]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const__]
lea eax, [ebp - 0x304]
push eax
call fcn.0042dbc8
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x304]
mov dword [esp], str.XLLiveUD.exe
push eax
lea eax, [ebp - 0x390]
push eax
call dword [sym.imp.MSVCP90.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___wchar_t_const__]
add esp, 0xc
xor eax, eax
push 0x206
mov byte [ebp - 4], 0x11
push eax
mov word [ebp - 0x240], ax
lea eax, [ebp - 0x23e]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea eax, [ebp - 0x240]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp dword [ebx + 0x114], 0
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
jbe 0x402a53
add ebx, 0x100
push ebx
lea ecx, [ebp - 0x390]
call dword [0x43431c]
cmp dword [ebx + 0x18], 8
jb 0x402a1d
mov ebx, dword [ebx + 4]
jmp 0x402a20
add ebx, 4
lea eax, [ebp - 0x25c]
push ebx
push eax
call fcn.0042d982
cmp dword [ebp - 0x244], 8
mov eax, dword [ebp - 0x258]
pop ecx
pop ecx
jae 0x402a44
lea eax, [ebp - 0x258]
push eax
call esi
lea ecx, [ebp - 0x25c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [ebp - 0x2ec], 8
mov edx, dword [ebp - 0x300]
jae 0x402a68
lea edx, [ebp - 0x300]
cmp dword [ebp - 0x260], 8
mov ecx, dword [ebp - 0x274]
jae 0x402a7d
lea ecx, [ebp - 0x274]
cmp dword [ebp - 0x378], 8
mov eax, dword [ebp - 0x38c]
jae 0x402a92
lea eax, [ebp - 0x38c]
push edx
push ecx
push eax
call fcn.00405e12
mov edi, eax
add esp, 0xc
lea eax, [ebp - 0x240]
push eax
call esi
lea ecx, [ebp - 0x390]
mov byte [ebp - 4], 0x10
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 0xf
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0xe
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x374]
mov byte [ebp - 4], 0xd
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0xc
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x5a8]
mov byte [ebp - 4], 0xa
call fcn.00402e72
lea ecx, [ebp - 0x33c]
mov byte [ebp - 4], 9
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x650]
mov byte [ebp - 4], 8
call fcn.00402e72
lea ecx, [ebp - 0x3ac]
mov byte [ebp - 4], 7
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x2cc]
mov byte [ebp - 4], 6
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x500]
mov byte [ebp - 4], 2
call fcn.00402e72
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x458]
call fcn.00402e72
mov eax, edi
call fcn.00425db5
ret 4