Function at 0x403d2b
Capabilities:
Create thread
Initialize winsock library

Disassembly:
push 0x258
mov eax, 0x433ac0
call fcn.00428df5
mov eax, dword [ebp + 8]
mov ebx, ecx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20c], ebx
mov esi, edx
mov dword [ebp - 0x210], 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 - 0x4c]
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 - 0x68]
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 0x403d79
sub eax, ecx
lea ecx, [ebp - 0x30]
push ecx
sar eax, 1
push eax
push esi
call fcn.00415ac6
add esp, 0xc
lea eax, [ebp - 0x248]
push eax
call fcn.00406a25
lea edi, [ebp - 0x244]
mov byte [ebp - 4], 3
call fcn.00406c0d
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x403dbc
lea eax, [ebp - 0x2c]
push 1
push eax
lea eax, [ebp - 0x244]
push eax
or eax, 0xffffffff
call fcn.00406c4d
test al, al
je 0x404262
mov eax, dword [ebp - 0x228]
test eax, eax
je 0x403df0
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x208], eax
test eax, eax
je 0x404262
cmp dword [eax + 0x48], 0x10
jb 0x403e09
mov esi, dword [eax + 0x34]
jmp 0x403e0c
lea esi, [eax + 0x34]
push 0xc
mov edi, str.LiveUDParam
pop ecx
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404262
lea edi, [eax + 0x80]
mov eax, dword [edi]
mov dword [ebp - 0x214], edi
test eax, eax
je 0x403e3b
push str.serverver
push eax
call fcn.00406fc7
mov esi, dword [sym.imp.MSVCR90.dll_atoi]
push eax
call esi
mov dword [ebx + 0x140], eax
mov eax, dword [edi]
pop ecx
test eax, eax
je 0x403e5c
push str.checkupdate
push eax
call fcn.00406fc7
push eax
call esi
test eax, eax
setne al
mov byte [ebx + 0x144], al
mov eax, dword [edi]
pop ecx
test eax, eax
je 0x403e8f
push str.isinservice
push eax
call fcn.00406fc7
test eax, eax
je 0x403e8f
push eax
call esi
test eax, eax
setne al
pop ecx
mov byte [ebx + 0x27a], al
mov eax, dword [edi]
test eax, eax
jne 0x403e99
xor esi, esi
jmp 0x403ea6
push str.xarpath
push eax
call fcn.00406fc7
mov esi, eax
mov eax, dword [edi]
test eax, eax
jne 0x403eb4
and dword [ebp - 0x200], eax
jmp 0x403ec5
push str.xarname
push eax
call fcn.00406fc7
mov dword [ebp - 0x200], eax
mov edi, dword [edi]
test edi, edi
je 0x403ed8
push str.param
push edi
call fcn.00406fc7
mov edi, eax
test esi, esi
je 0x403efb
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403ee1
lea ecx, [ebx + 0x208]
push ecx
sub eax, edx
push eax
push esi
call fcn.00415b3b
add esp, 0xc
cmp dword [ebp - 0x200], 0
je 0x403f16
push dword [ebp - 0x200]
lea ecx, [ebx + 0x224]
call dword [0x434360]
test edi, edi
je 0x403f39
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403f1f
lea ecx, [ebx + 0x240]
push ecx
sub eax, edx
push eax
push edi
call fcn.00415b3b
add esp, 0xc
mov eax, dword [ebp - 0x208]
push str.Product
call fcn.0040688a
mov dword [ebp - 0x200], eax
test eax, eax
je 0x404262
mov eax, dword [eax + 0x80]
test eax, eax
je 0x403f6c
push str.name
push eax
call fcn.00406fc7
lea edi, [ebx + 0x70]
push eax
mov ecx, edi
call dword [0x434360]
mov eax, dword [ebp - 0x200]
mov eax, dword [eax + 0x80]
test eax, eax
je 0x403f93
push 0x438c64
push eax
call fcn.00406fc7
lea esi, [ebx + 0x8c]
push eax
mov ecx, esi
call dword [0x434360]
cmp dword [edi + 0x18], 0x10
mov eax, dword [ebx + 0x84]
jb 0x403fb3
mov ecx, dword [edi + 4]
jmp 0x403fb6
lea ecx, [edi + 4]
lea edx, [ebx + 0x38]
push edx
push eax
push ecx
mov dword [ebp - 0x204], edx
call fcn.00415b3b
mov eax, dword [ebx + 0xa0]
add esp, 0xc
cmp dword [esi + 0x18], 0x10
jb 0x403fdb
mov esi, dword [esi + 4]
jmp 0x403fde
add esi, 4
lea ecx, [ebx + 0x54]
push ecx
push eax
push esi
mov dword [ebp - 0x218], ecx
call fcn.00415b3b
mov esi, dword [ebp - 0x200]
mov eax, dword [esi + 0x80]
add esp, 0xc
test eax, eax
je 0x40401e
push 0x438c68
push eax
call fcn.00406fc7
test eax, eax
je 0x40401e
push eax
lea ecx, [ebx + 0xa8]
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__::assign_char_const__]
mov esi, dword [esi + 0x80]
test esi, esi
je 0x404044
push str.keyname
push esi
call fcn.00406fc7
test eax, eax
je 0x404044
push eax
lea ecx, [ebx + 0xc4]
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__::assign_char_const__]
mov eax, dword [ebp - 0x214]
mov eax, dword [eax]
test eax, eax
jne 0x404054
xor edi, edi
jmp 0x404061
push str.productpath
push eax
call fcn.00406fc7
mov edi, eax
mov ecx, edi
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404066
sub ecx, esi
lea esi, [ebx + 0xe4]
push esi
push ecx
push edi
call fcn.00415b3b
add esp, 0xc
push dword [ebp - 0x210]
call dword [sym.imp.MSVCR90.dll__wtoi]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x210], esp
mov dword [ebx + 0xe0], eax
push esi
add ebx, 0x100
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.004155ea
add esp, 0x1c
cmp dword [ebx + 0x18], 8
jb 0x4040bd
mov ebx, dword [ebx + 4]
jmp 0x4040c0
add ebx, 4
mov eax, dword [ebp - 0x218]
cmp dword [eax + 0x18], 8
jb 0x4040d1
mov ecx, dword [eax + 4]
jmp 0x4040d4
lea ecx, [eax + 4]
mov eax, dword [ebp - 0x204]
cmp dword [eax + 0x18], 8
jb 0x4040e5
mov eax, dword [eax + 4]
jmp 0x4040e8
add eax, 4
push ebx
push ecx
push eax
call fcn.00401078
mov esi, eax
call fcn.0041175a
mov eax, dword [ebp - 0x208]
push str.DlPath
call fcn.0040688a
xor ebx, ebx
mov dword [ebp - 0x204], eax
cmp eax, ebx
je 0x404187
call fcn.004067d5
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40411b
mov edi, dword [ebp - 0x20c]
sub eax, esi
lea esi, [edi + 0x11c]
push esi
push eax
mov eax, dword [ebp - 0x204]
call fcn.004067d5
push eax
call fcn.00415b3b
add esp, 0xc
cmp dword [edi + 0x130], ebx
jne 0x40418d
lea eax, [ebp - 0x264]
push eax
call fcn.004171f2
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 - 0x264]
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 0x40418d
mov edi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x208]
push str.LocalParam
call fcn.0040688a
cmp eax, ebx
je 0x4041b3
call fcn.004067d5
push eax
lea ecx, [edi + 0x25c]
call dword [0x434360]
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 0x40471a
push ebx
push ebx
mov dword [edi + 0x27c], eax
call dword [sym.imp.MSVCR90.dll__beginthreadex]
add esp, 0x18
cmp eax, 0xffffffff
je 0x4041fa
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 0x40425e
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.00406a82
lea ecx, [ebp - 0x68]
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 - 0x4c]
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.00428e78
ret 4
mov bl, 1
jmp 0x40421e
xor bl, bl
jmp 0x40421e