Function at 0x403d39
Capabilities:
Create thread
Initialize winsock library

Disassembly:
push 0x250
mov eax, 0x4338cb
call fcn.00428b99
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 0x403d87
sub eax, ecx
lea ecx, [ebp - 0x30]
push ecx
sar eax, 1
push eax
push esi
call fcn.0041598d
add esp, 0xc
lea eax, [ebp - 0x240]
push eax
call fcn.0040682d
lea edi, [ebp - 0x23c]
mov byte [ebp - 4], 3
call fcn.00406a15
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x403dca
lea eax, [ebp - 0x2c]
push 1
push eax
lea eax, [ebp - 0x23c]
push eax
or eax, 0xffffffff
call fcn.00406a55
test al, al
je 0x404206
mov eax, dword [ebp - 0x220]
test eax, eax
je 0x403dfe
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 0x404206
cmp dword [eax + 0x48], 0x10
jb 0x403e17
mov esi, dword [eax + 0x34]
jmp 0x403e1a
lea esi, [eax + 0x34]
push 0xc
mov edi, str.LiveUDParam
pop ecx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404206
lea edi, [eax + 0x80]
mov eax, dword [edi]
mov dword [ebp - 0x210], edi
test eax, eax
je 0x403e49
push str.serverver
push eax
call fcn.00406dcf
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 0x403e6a
push str.checkupdate
push eax
call fcn.00406dcf
push eax
call esi
test eax, eax
setne al
mov byte [ebx + 0x10c], al
mov eax, dword [edi]
pop ecx
test eax, eax
je 0x403e9d
push str.isinservice
push eax
call fcn.00406dcf
test eax, eax
je 0x403e9d
push eax
call esi
test eax, eax
setne al
pop ecx
mov byte [ebx + 0x242], al
mov eax, dword [edi]
test eax, eax
jne 0x403ea7
xor esi, esi
jmp 0x403eb4
push str.xarpath
push eax
call fcn.00406dcf
mov esi, eax
mov eax, dword [edi]
test eax, eax
jne 0x403ec2
and dword [ebp - 0x200], eax
jmp 0x403ed3
push str.xarname
push eax
call fcn.00406dcf
mov dword [ebp - 0x200], eax
mov edi, dword [edi]
test edi, edi
je 0x403ee6
push str.param
push edi
call fcn.00406dcf
mov edi, eax
test esi, esi
je 0x403f09
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403eef
lea ecx, [ebx + 0x1d0]
push ecx
sub eax, edx
push eax
push esi
call fcn.00415a02
add esp, 0xc
cmp dword [ebp - 0x200], 0
je 0x403f24
push dword [ebp - 0x200]
lea ecx, [ebx + 0x1ec]
call dword [0x43435c]
test edi, edi
je 0x403f47
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403f2d
lea ecx, [ebx + 0x208]
push ecx
sub eax, edx
push eax
push edi
call fcn.00415a02
add esp, 0xc
mov eax, dword [ebp - 0x208]
push str.Product
call fcn.004066f0
mov esi, eax
test esi, esi
je 0x404206
mov eax, dword [esi + 0x80]
test eax, eax
je 0x403f76
push str.name
push eax
call fcn.00406dcf
lea edi, [ebx + 0x70]
push eax
mov ecx, edi
call dword [0x43435c]
mov esi, dword [esi + 0x80]
test esi, esi
jne 0x403f90
xor eax, eax
jmp 0x403f9b
push 0x438c54
push esi
call fcn.00406dcf
lea esi, [ebx + 0x8c]
push eax
mov ecx, esi
call dword [0x43435c]
cmp dword [edi + 0x18], 0x10
mov ecx, dword [ebx + 0x84]
jb 0x403fbb
mov edi, dword [edi + 4]
jmp 0x403fbe
add edi, 4
lea eax, [ebx + 0x38]
push eax
push ecx
push edi
mov dword [ebp - 0x200], eax
call fcn.00415a02
mov eax, dword [ebx + 0xa0]
add esp, 0xc
cmp dword [esi + 0x18], 0x10
jb 0x403fe3
mov esi, dword [esi + 4]
jmp 0x403fe6
add esi, 4
lea edi, [ebx + 0x54]
push edi
push eax
push esi
call fcn.00415a02
mov eax, dword [ebp - 0x210]
mov eax, dword [eax]
add esp, 0xc
test eax, eax
je 0x40400b
push str.productpath
push eax
call fcn.00406dcf
mov ecx, eax
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x404010
sub ecx, esi
lea esi, [ebx + 0xac]
push esi
push ecx
push eax
call fcn.00415a02
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.004154b1
add esp, 0x1c
cmp dword [ebx + 0x18], 8
jb 0x404067
mov ebx, dword [ebx + 4]
jmp 0x40406a
add ebx, 4
cmp dword [edi + 0x18], 8
jb 0x404075
mov edi, dword [edi + 4]
jmp 0x404078
add edi, 4
mov eax, dword [ebp - 0x200]
cmp dword [eax + 0x18], 8
jb 0x404089
mov eax, dword [eax + 4]
jmp 0x40408c
add eax, 4
push ebx
push edi
push eax
call fcn.00401094
mov esi, eax
call fcn.0041161f
mov eax, dword [ebp - 0x208]
push str.DlPath
call fcn.004066f0
xor ebx, ebx
mov dword [ebp - 0x204], eax
cmp eax, ebx
je 0x40412b
call fcn.0040663b
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4040bf
mov edi, dword [ebp - 0x20c]
sub eax, esi
lea esi, [edi + 0xe4]
push esi
push eax
mov eax, dword [ebp - 0x204]
call fcn.0040663b
push eax
call fcn.00415a02
add esp, 0xc
cmp dword [edi + 0xf8], ebx
jne 0x404131
lea eax, [ebp - 0x25c]
push eax
call fcn.004170b8
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 0x404131
mov edi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x208]
push str.LocalParam
call fcn.004066f0
cmp eax, ebx
je 0x404157
call fcn.0040663b
push eax
lea ecx, [edi + 0x224]
call dword [0x43435c]
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
push edi
push ebx
push edi
push 0x4044f6
push ebx
push ebx
mov dword [edi + 0x244], eax
call dword [sym.imp.MSVCR90.dll__beginthreadex]
add esp, 0x18
cmp eax, 0xffffffff
je 0x40419e
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 0x404202
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 2
call fcn.0040688a
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.00428c1c
ret 4
mov bl, 1
jmp 0x4041c2
xor bl, bl
jmp 0x4041c2