Function at 0x1003ccba
Capabilities:
Get disk size
Get thread local storage value

Disassembly:
mov eax, 0x10089e88
call fcn.10088cbc
sub esp, 0x70
push ebx
push esi
mov esi, ecx
push edi
cmp dword [esi], 0
je 0x1003d03b
push dword [esi]
xor ebx, ebx
push ebx
push dword [esi + 4]
call fcn.10022a34
movdqa xmm0, xmmword [0x10008360]
lea eax, [ebp - 0x6c]
add esp, 0xc
mov dword [ebp - 0x18], 0xd509
xor edi, edi
mov dword [ebp - 0x20], 0xfffffff6
inc edi
mov dword [ebp - 0x1c], 0x56411d7f
mov dword [ebp - 0x24], edi
lea ecx, [ebp - 0x38]
push dword [ebp - 0x2c]
movdqu xmmword [ebp - 0x7c], xmm0
push eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x38], ebx
push eax
push ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
call fcn.10016ecb
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x24], 0xb0d58e7e
mov dword [ebp - 0x24], 0x898d08f4
mov dword [ebp - 0x24], 0x4fe10ef7
push 2
call fcn.10015911
mov dword [ebp - 0x24], ebx
jmp 0x1003cd61
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], 0xbd1a6f32
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x1003cd51
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
je 0x1003cd7f
mov eax, edi
cmp dword [ebp - 0x1c], ebx
jne 0x1003cd81
mov eax, ebx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x38]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [edi + 4]
setne dl
sub edx, eax
sub edx, 0x617c0ec0
cmp dword [ebp - 0x18], edx
jne 0x1003cdb5
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov ecx, dword [edi + 4]
mov dword [eax], ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x1c]
sub eax, 0x4643a64e
neg eax
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
imul ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003ce15
push 0x8ed
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ecx, [ebp - 0x44]
call fcn.1001614d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.1001614d
push dword [esi + 4]
call fcn.1006e262
mov dword [ebp - 0x2c], 0x2799
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
pop ecx
je 0x1003ce4d
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003ce6b
push 0x11e4
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetClassNameW]
mov dword [esi + 4], ebx
mov dword [ebp - 0x18], 0xfffffff6
mov dword [ebp - 0x2c], 0xffffffff
cmp dword [ebp - 0x18], ebx
je 0x1003cf37
push 1
lea ecx, [ebp - 0x5c]
call fcn.10015911
mov dword [ebp - 4], 1
mov dword [ebp - 0x24], ebx
jmp 0x1003ceab
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], 0xfb0b0297
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jl 0x1003ce9b
mov dword [ebp - 0x18], ebx
jmp 0x1003cf25
mov dword [ebp - 0x20], 0x39ed080c
mov dword [ebp - 0x20], ebx
jmp 0x1003cf0e
push 1
lea ecx, [ebp - 0x50]
call fcn.10015911
mov dword [ebp - 0x24], ebx
jmp 0x1003cee1
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 0x5653d423
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jl 0x1003ced1
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003cefa
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_EndPaint]
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x50]
mov dword [eax], 0xfffffffc
call fcn.1001614d
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1003cec2
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x1003ceb6
lea ecx, [ebp - 0x5c]
call fcn.1001614d
jmp 0x1003d020
mov dword [ebp - 0x24], ebx
xor edx, edx
mov dword [ebp - 0x28], 0xae215169
mov eax, 0x33490ce6
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setne dl
xor ecx, ecx
cmp edx, eax
setg cl
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], 0x48aab564
mov eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
add eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0xf75d
setne dl
xor ecx, ecx
sub edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
add edx, 0x54953c65
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0x5063f373
mov ecx, dword [ebp - 0x24]
setne al
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x24]
jne 0x1003cfeb
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003d020
push 0x8b9
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x1003d039
push ebx
push ebx
push 0xfe5
call edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItemInt]
mov dword [esi], ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret