Function at 0x401f99
Capabilities:
Print debug messages
Read .ini file

Disassembly:
push ebp
lea ebp, [esp - 0x2a4]
sub esp, 0x320
mov eax, dword [0x44acac]
xor eax, ebp
mov dword [ebp + 0x2a0], eax
mov eax, dword [ebp + 0x2b4]
push ebx
push esi
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x6c]
call fcn.0040430a
push 8
push str._showbox
lea ecx, [ebp + 0x6c]
call fcn.00404667
push eax
call fcn.0042b67e
add esp, 0xc
test eax, eax
jne 0x402166
mov eax, dword [ebp + 0x2ac]
lea ecx, [ebp + 0x6c]
mov dword [0x44c130], eax
call fcn.00404667
add eax, 8
push eax
call fcn.0042b581
pop ecx
mov dword [0x44c134], eax
call fcn.0040176e
cmp dword [0x44c134], 0x64
je 0x40213d
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.upgrade_user_continue
call esi
push 1
call fcn.00403700
lea eax, [ebp + 0x104]
mov dword [esp], str.SoftUpdate.exe
push eax
call fcn.00403785
pop ecx
pop ecx
push 0x5c
lea ecx, [ebp + 0x104]
call fcn.00404109
cmp eax, 0xffffffff
je 0x4020b0
push eax
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp + 0x104]
call fcn.00404333
push eax
lea ecx, [ebp + 0x104]
call fcn.0040412d
lea ecx, [ebp - 0x7c]
call fcn.00403f99
push 0x5c
lea ecx, [ebp + 0x104]
call fcn.00404109
cmp eax, 0xffffffff
je 0x4020b0
push eax
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp + 0x104]
call fcn.00404333
push eax
lea ecx, [ebp + 0x104]
call fcn.0040412d
lea ecx, [ebp - 0x7c]
call fcn.00403f99
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp + 0x20]
call fcn.004042ac
lea eax, [ebp + 0x20]
push eax
call fcn.00401420
mov dword [esp], 0x43d508
push str.BinServerManager.exe
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp + 0x104]
call fcn.004043dc
mov ecx, eax
call fcn.00404667
push eax
push str.Win
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp + 0x20]
call fcn.004043dc
mov ecx, eax
call fcn.00404667
push eax
call fcn.00401327
add esp, 0xc
lea ecx, [ebp - 0x7c]
call fcn.00403f99
lea ecx, [ebp - 0x30]
call fcn.00403f99
push str.create_link
call esi
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp + 0x20]
call fcn.00403f99
lea ecx, [ebp + 0x104]
call fcn.00403f99
mov esi, dword [0x44c134]
lea ecx, [ebp + 0x6c]
call fcn.00403f99
mov ecx, dword [ebp + 0x2a0]
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042a2b0
add ebp, 0x2a4
leave
ret 0x10
push 1
call fcn.00403700
mov ebx, str.SoftUpdate.exe
lea eax, [ebp + 0x150]
push ebx
push eax
call fcn.00403785
add esp, 0xc
lea ecx, [ebp + 0x150]
call fcn.00403fe0
test al, al
je 0x4021ab
push str.xs_upk_path_not_found
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp + 0x150]
call fcn.00403f99
xor esi, esi
jmp 0x402143
push 0x5c
lea ecx, [ebp + 0x150]
call fcn.00404109
cmp eax, 0xffffffff
je 0x402217
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp + 0x150]
call fcn.00404333
push eax
lea ecx, [ebp + 0x150]
call fcn.0040412d
lea ecx, [ebp - 0x30]
call fcn.00403f99
push 0x5c
lea ecx, [ebp + 0x150]
call fcn.00404109
cmp eax, 0xffffffff
je 0x402217
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp + 0x150]
call fcn.00404333
push eax
lea ecx, [ebp + 0x150]
call fcn.0040412d
lea ecx, [ebp - 0x30]
call fcn.00403f99
lea ecx, [ebp + 0xb8]
call fcn.004042ac
lea ecx, [ebp + 0x150]
call fcn.00404667
push eax
lea eax, [ebp + 0xb8]
push str.xs_upk_path:__s
push eax
call fcn.00404368
add esp, 0xc
lea ecx, [ebp + 0xb8]
call fcn.00404667
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push eax
call esi
push 0x103
lea eax, [ebp + 0x19d]
push 0
push eax
mov byte [ebp + 0x19c], 0
call fcn.0042a2c0
add esp, 0xc
push str.DataVersion.dat
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp + 0x150]
call fcn.004043dc
mov ecx, eax
call fcn.00404667
push eax
push 0x104
lea eax, [ebp + 0x19c]
push eax
push 0x43d508
push str.VersionName
push str.MainVersion
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x30]
call fcn.00403f99
lea eax, [ebp + 0x19c]
push eax
lea eax, [ebp + 0xb8]
push str.xs_upk_ver:__s
push eax
call fcn.00404368
add esp, 0xc
lea ecx, [ebp + 0xb8]
call fcn.00404667
push eax
call esi
push 5
lea eax, [ebp + 0x19c]
push str.Build
push eax
call fcn.0042b67e
add esp, 0xc
test eax, eax
je 0x402312
push str.xs_upk_version_err
call esi
lea ecx, [ebp + 0xb8]
call fcn.00403f99
jmp 0x40219c
lea eax, [ebp + 0x19c]
push str.Build_1411170001
push eax
call fcn.0042abab
pop ecx
pop ecx
test eax, eax
jl 0x402330
push str.xs_upk_version_out
jmp 0x402300
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp + 0x1e]
push eax
lea eax, [ebp + 0x1f]
push eax
push str.DataCoreServer.data
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp + 0x150]
mov byte [ebp + 0x1f], 0
mov byte [ebp + 0x1e], 0
call fcn.004043dc
mov ecx, eax
call fcn.00404667
push eax
call fcn.00401be8
add esp, 0xc
lea ecx, [ebp - 0x30]
call fcn.00403f99
cmp byte [ebp + 0x1f], 0
jne 0x402380
cmp byte [ebp + 0x1e], 0
je 0x4023b5
push str.wp_check
call esi
push 1
call fcn.004015dc
pop ecx
cmp eax, 0x64
jne 0x4023b5
push str.upgrade_user_out
call esi
push ebx
call fcn.00403e7d
pop ecx
test eax, eax
je 0x4023b5
push eax
call fcn.004036d7
mov dword [esp], str.kill_process_softupdate.exe
call esi
call dword [sym.imp.ole32.dll_CoUninitialize]
push str.upgrade_continue
jmp 0x402300