Function at 0x4113b0
Capabilities:
Read .ini file

Disassembly:
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi]
mov ebx, dword [eax - 4]
mov edx, dword [eax - 8]
sub eax, 0x10
mov ecx, 1
sub ecx, ebx
sub edx, 0x200
or ecx, edx
push edi
jge 0x4113de
push 0x200
mov ecx, esi
call fcn.00401f20
mov edi, dword [esp + 0x14]
mov eax, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push edi
push 0x200
push eax
push 0x4294b8
push str.Version
push 0x429420
call ebx
mov eax, dword [esi + 4]
mov edx, dword [eax - 4]
lea ebp, [esi + 4]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x200
or ecx, edx
jge 0x41142e
push 0x200
mov ecx, ebp
call fcn.00401f20
mov eax, dword [ebp]
push edi
push 0x200
push eax
push 0x4294b8
push str.BuildNumber
push 0x429420
call ebx
mov eax, dword [esi + 8]
mov edx, dword [eax - 4]
lea ebp, [esi + 8]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x200
or ecx, edx
jge 0x411475
push 0x200
mov ecx, ebp
call fcn.00401f20
mov eax, dword [ebp]
push edi
push 0x200
push eax
push 0x4294b8
push str.Checksum
push 0x429420
call ebx
mov eax, dword [esi + 0xc]
mov edx, dword [eax - 4]
lea ebp, [esi + 0xc]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x200
or ecx, edx
jge 0x4114bc
push 0x200
mov ecx, ebp
call fcn.00401f20
mov eax, dword [ebp]
push edi
push 0x200
push eax
push 0x4294b8
push str.PackageURL
push 0x429420
call ebx
mov eax, dword [esi + 0x10]
mov edx, dword [eax - 4]
lea ebp, [esi + 0x10]
sub eax, 0x10
mov ecx, 1
sub ecx, edx
mov edx, dword [eax + 8]
sub edx, 0x200
or ecx, edx
jge 0x411503
push 0x200
mov ecx, ebp
call fcn.00401f20
mov eax, dword [ebp]
push edi
push 0x200
push eax
push 0x4294b8
push str.PackageLen
push 0x429420
call ebx
mov eax, dword [esi]
test eax, eax
je 0x411535
push eax
call fcn.004195c1
add esp, 4
test eax, eax
jl 0x411666
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x411666
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov word [ecx + eax*2], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x411563
push eax
call fcn.004195c1
add esp, 4
test eax, eax
jl 0x411666
mov ecx, dword [esi + 4]
cmp eax, dword [ecx - 8]
jg 0x411666
mov dword [ecx - 0xc], eax
mov edx, dword [esi + 4]
lea ebx, [esi + 8]
mov word [edx + eax*2], 0
mov eax, dword [ebx]
test eax, eax
je 0x411595
push eax
call fcn.004195c1
add esp, 4
test eax, eax
jl 0x411666
mov ecx, dword [ebx]
cmp eax, dword [ecx - 8]
jg 0x411666
mov dword [ecx - 0xc], eax
mov ecx, dword [ebx]
lea edi, [esi + 0xc]
mov word [ecx + eax*2], 0
mov eax, dword [edi]
test eax, eax
je 0x4115c5
push eax
call fcn.004195c1
add esp, 4
test eax, eax
jl 0x411666
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x411666
mov dword [ecx - 0xc], eax
mov edx, dword [edi]
mov word [edx + eax*2], 0
mov eax, dword [ebp]
test eax, eax
je 0x4115ef
push eax
call fcn.004195c1
add esp, 4
test eax, eax
jl 0x411666
mov ecx, dword [ebp]
cmp eax, dword [ecx - 8]
jg 0x411666
mov dword [ecx - 0xc], eax
mov ecx, dword [ebp]
mov word [ecx + eax*2], 0
mov esi, dword [esi]
push 0x4294b8
push esi
call fcn.00419d5d
add esp, 8
test eax, eax
je 0x411640
mov ebp, dword [ebp]
push 0x4294b8
push ebp
call fcn.00419d5d
add esp, 8
test eax, eax
je 0x411640
mov edi, dword [edi]
push 0x4294b8
push edi
call fcn.00419d5d
add esp, 8
test eax, eax
jne 0x411649
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 4
mov ebx, dword [ebx]
push 0x4294b8
push ebx
call fcn.00419d5d
add esp, 8
pop edi
neg eax
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
ret 4
push 0x80070057
call fcn.00401220
int3