Function at 0x403d57
Capabilities:
Create thread
Initialize winsock library

Disassembly:
push 0x250
mov eax, 0x433c57
call fcn.00428f19
mov eax, dword [ebp + 8]
mov ebx, ecx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20c], ebx
mov esi, edx
mov dword [ebp - 0x204], eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
and dword [ebp - 4], 0
lea ecx, [ebp - 0x68]
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 - 0x4c]
mov byte [ebp - 4], 1
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 eax, esi
mov byte [ebp - 4], 2
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x403da5
sub eax, ecx
lea ecx, [ebp - 0x30]
push ecx
sar eax, 1
push eax
push esi
call fcn.00415c74
add esp, 0xc
lea eax, [ebp - 0x240]
push eax
call fcn.00406bb5
lea edi, [ebp - 0x23c]
mov byte [ebp - 4], 3
call fcn.00406d9d
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x403de8
lea eax, [ebp - 0x2c]
push 1
push eax
lea eax, [ebp - 0x23c]
push eax
or eax, 0xffffffff
call fcn.00406ddd
test al, al
je 0x4042c6
mov eax, dword [ebp - 0x220]
test eax, eax
je 0x403e1c
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x208], eax
test eax, eax
je 0x4042c6
cmp dword [eax + 0x48], 0x10
jb 0x403e35
mov esi, dword [eax + 0x34]
jmp 0x403e38
lea esi, [eax + 0x34]
push 0xc
mov edi, str.LiveUDParam
pop ecx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4042c6
lea edi, [eax + 0x80]
mov eax, dword [edi]
mov dword [ebp - 0x210], edi
test eax, eax
je 0x403e67
push str.serverver
push eax
call fcn.00407159
mov esi, dword [sym.imp.MSVCR90.dll_atoi]
push eax
call esi
mov dword [ebx + 0x108], eax
mov eax, dword [edi]
pop ecx
test eax, eax
je 0x403e88
push str.checkupdate
push eax
call fcn.00407159
push eax
call esi
test eax, eax
setne al
mov byte [ebx + 0x10c], al
mov eax, dword [edi]
pop ecx
test eax, eax
je 0x403ebb
push str.isinservice
push eax
call fcn.00407159
test eax, eax
je 0x403ebb
push eax
call esi
test eax, eax
setne al
pop ecx
mov byte [ebx + 0x242], al
cmp byte [ebx + 0x242], 0
je 0x403f55
mov eax, dword [edi]
test eax, eax
je 0x403f55
push str.productupdatemodulepath
push eax
call fcn.00407159
test eax, eax
je 0x403f55
mov ecx, eax
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x403ee6
sub ecx, esi
lea esi, [ebx + 0x24c]
push esi
push ecx
push eax
call fcn.00415ce9
add esp, 0xc
cmp dword [esi + 0x18], 8
jb 0x403f0b
mov esi, dword [esi + 4]
jmp 0x403f0e
add esi, 4
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x44728c], eax
test eax, eax
je 0x403f55
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.IsCanInstall
push eax
call esi
push str.ReNameBeforeInstall
push dword [0x44728c]
mov dword [0x447280], eax
call esi
push str.ReNameAfterInstall
push dword [0x44728c]
mov dword [0x447284], eax
call esi
mov dword [0x447288], eax
mov eax, dword [edi]
test eax, eax
jne 0x403f5f
xor esi, esi
jmp 0x403f6c
push str.xarpath
push eax
call fcn.00407159
mov esi, eax
mov eax, dword [edi]
test eax, eax
jne 0x403f7a
and dword [ebp - 0x200], eax
jmp 0x403f8b
push str.xarname
push eax
call fcn.00407159
mov dword [ebp - 0x200], eax
mov edi, dword [edi]
test edi, edi
je 0x403f9e
push str.param
push edi
call fcn.00407159
mov edi, eax
test esi, esi
je 0x403fc1
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403fa7
lea ecx, [ebx + 0x1d0]
push ecx
sub eax, edx
push eax
push esi
call fcn.00415ce9
add esp, 0xc
cmp dword [ebp - 0x200], 0
je 0x403fdc
push dword [ebp - 0x200]
lea ecx, [ebx + 0x1ec]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
test edi, edi
je 0x403fff
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403fe5
lea ecx, [ebx + 0x208]
push ecx
sub eax, edx
push eax
push edi
call fcn.00415ce9
add esp, 0xc
mov eax, dword [ebp - 0x208]
push str.Product
call fcn.00406a1a
mov esi, eax
test esi, esi
je 0x4042c6
mov eax, dword [esi + 0x80]
test eax, eax
je 0x40402e
push str.name
push eax
call fcn.00407159
lea edi, [ebx + 0x70]
push eax
mov ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov esi, dword [esi + 0x80]
test esi, esi
jne 0x404048
xor eax, eax
jmp 0x404053
push 0x438c9c
push esi
call fcn.00407159
lea esi, [ebx + 0x8c]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
cmp dword [edi + 0x18], 0x10
mov ecx, dword [ebx + 0x84]
jb 0x404073
mov edi, dword [edi + 4]
jmp 0x404076
add edi, 4
lea eax, [ebx + 0x38]
push eax
push ecx
push edi
mov dword [ebp - 0x200], eax
call fcn.00415ce9
mov eax, dword [ebx + 0xa0]
add esp, 0xc
cmp dword [esi + 0x18], 0x10
jb 0x40409b
mov esi, dword [esi + 4]
jmp 0x40409e
add esi, 4
lea edi, [ebx + 0x54]
push edi
push eax
push esi
call fcn.00415ce9
mov eax, dword [ebp - 0x210]
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x4040c3
push str.productpath
push eax
call fcn.00407159
mov ecx, eax
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4040c8
sub ecx, esi
lea esi, [ebx + 0xac]
push esi
push ecx
push eax
call fcn.00415ce9
add esp, 0xc
push dword [ebp - 0x204]
call dword [sym.imp.MSVCR90.dll__wtoi]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x204], esp
mov dword [ebx + 0xa8], eax
push esi
add ebx, 0xc8
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_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
call fcn.00415798
add esp, 0x1c
cmp dword [ebx + 0x18], 8
jb 0x40411f
mov ebx, dword [ebx + 4]
jmp 0x404122
add ebx, 4
cmp dword [edi + 0x18], 8
jb 0x40412d
mov edi, dword [edi + 4]
jmp 0x404130
add edi, 4
mov eax, dword [ebp - 0x200]
cmp dword [eax + 0x18], 8
jb 0x404141
mov eax, dword [eax + 4]
jmp 0x404144
add eax, 4
push ebx
push edi
push eax
call fcn.00401078
mov esi, eax
call fcn.00411932
mov eax, dword [ebp - 0x208]
push str.DlPath
call fcn.00406a1a
xor ebx, ebx
mov dword [ebp - 0x204], eax
cmp eax, ebx
je 0x4041e3
call fcn.00406965
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404177
mov edi, dword [ebp - 0x20c]
sub eax, esi
lea esi, [edi + 0xe4]
push esi
push eax
mov eax, dword [ebp - 0x204]
call fcn.00406965
push eax
call fcn.00415ce9
add esp, 0xc
cmp dword [edi + 0xf8], ebx
jne 0x4041e9
lea eax, [ebp - 0x25c]
push eax
call fcn.004173a0
pop ecx
push eax
mov ecx, esi
mov byte [ebp - 4], 4
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__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 3
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_]
push str.download_interface.dll
mov ecx, esi
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__]
jmp 0x4041e9
mov edi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x208]
push str.LocalParam
call fcn.00406a1a
cmp eax, ebx
je 0x40420f
call fcn.00406965
push eax
lea ecx, [edi + 0x224]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
push ebx
call fcn.00401569
mov esi, eax
call fcn.0040138d
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventW]
push ebx
push ebx
push ebx
push ebx
call esi
push ebx
push ebx
push ebx
push ebx
mov dword [edi + 0x30], eax
call esi
mov dword [edi + 0x244], eax
cmp byte [edi + 0x242], bl
jne 0x40426c
push edi
push ebx
push edi
push 0x4045cf
push ebx
push ebx
call dword [sym.imp.MSVCR90.dll__beginthreadex]
add esp, 0x18
cmp eax, 0xffffffff
je 0x40425e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xbb8
push dword [edi + 0x30]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x1fc]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
cmp eax, ebx
je 0x4042c2
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 2
call fcn.00406c12
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
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 - 0x68]
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 - 0x30]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, bl
call fcn.00428f9c
ret 4
mov bl, 1
jmp 0x404282
xor bl, bl
jmp 0x404282