Function at 0x14002a530
Capabilities:
Create thread
Get memory capacity
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x100
mov rax, qword [0x14007b108]
xor rax, rsp
mov qword [rbp + 0x17], rax
xor r12d, r12d
mov dword [rbp - 0x69], edx
mov dword [rsp + 0x44], r12d
xorps xmm0, xmm0
mov r15, rcx
mov r14d, r12d
movups xmmword [rbp - 9], xmm0
movups xmmword [rbp + 7], xmm0
test rcx, rcx
je 0x14002a59a
cmp qword [rcx + 0x40], r12
mov rax, rcx
cmovne rax, qword [rcx + 0x40]
test dword [rax + 0x24], 0x80000
je 0x14002a59a
lea edi, [r12 + 1]
jmp 0x14002ae7e
lea rcx, [rbp - 0x49]
mov dword [rbp - 0x49], 0x40
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
nop dword [rax + rax]
test eax, eax
je 0x14002a60f
mov rax, qword [rbp - 0x41]
mov rcx, qword [rbp - 0x39]
shr rax, 0xa
shr rcx, 0xa
cmp rax, 0x1f4000
jb 0x14002a5d6
cmp rcx, 0x100000
ja 0x14002a60f
mov dword [rsp + 0x30], 0xfac
lea r9, str.Insufficient_resources_for_multithreaded_chunked_decoding__will_skip_
mov esi, 1
lea rax, str.CreateParallelDecodeInfo
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov rdx, r15
mov dword [rsp + 0x20], esi
mov edi, esi
lea ecx, [rsi + 2]
call fcn.14000b4d0
jmp 0x14002ae7e
mov edi, FDICreate
lea rdx, [rbp - 9]
mov r8d, edi
lea rcx, str.WIM_Chunked_Parallel_Decode
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
nop dword [rax + rax]
mov dword [rsp + 0x44], eax
lea rbx, [0x14006e0ec]
dec eax
cmp eax, 0xf
ja 0x14002a677
lea r8, [rsp + 0x44]
mov rdx, rbx
lea rcx, [rbp - 9]
call qword [sym.imp.msvcrt.dll_swscanf_s]
nop dword [rax + rax]
test eax, eax
jle 0x14002a677
cmp dword [rsp + 0x44], r12d
jne 0x14002a677
mov dword [rsp + 0x30], 0xfb8
lea r9, str.Multithreaded_chunked_decoding_disabled_via_environment_variable__will_skip_
jmp 0x14002a5e5
xor r8d, r8d
mov dword [rsp + 0x30], 0xfbd
lea rax, str.CreateParallelDecodeInfo
mov rdx, r15
mov qword [rsp + 0x28], rax
lea r9, str.Multithreaded_decoding_for_chunked_WIM_is_enabled_
mov dword [rsp + 0x20], r12d
lea ecx, [r8 + 3]
call fcn.14000b4d0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8d, 0x60
mov rcx, rax
lea r13d, [r8 - 0x58]
mov edx, r13d
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov qword [rbp - 0x59], rax
mov r14, rax
test rax, rax
jne 0x14002a6e4
mov edi, 0x8007000e
jmp 0x14002ae7e
mov qword [rax], r15
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r13
mov edx, r13d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov qword [r14 + 8], rax
mov esi, 2
mov r8d, edi
lea rdx, [rbp - 9]
lea rcx, str.WIM_Chunked_Number_Of_Threads
mov dword [rax], esi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
nop dword [rax + rax]
mov dword [rsp + 0x44], eax
dec eax
cmp eax, 0xf
ja 0x14002a75e
lea r8, [rsp + 0x44]
mov rdx, rbx
lea rcx, [rbp - 9]
call qword [sym.imp.msvcrt.dll_swscanf_s]
nop dword [rax + rax]
test eax, eax
jle 0x14002a75e
mov rcx, qword [r14 + 8]
mov eax, dword [rsp + 0x44]
mov dword [rcx], eax
mov rax, qword [r14 + 8]
lea rdx, [rbp - 9]
mov r8d, edi
lea rcx, str.WIM_Chunked_Number_Of_Buffers
mov dword [rax + 4], esi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
nop dword [rax + rax]
mov dword [rsp + 0x44], eax
dec eax
cmp eax, 0xf
ja 0x14002a7b1
lea r8, [rsp + 0x44]
mov rdx, rbx
lea rcx, [rbp - 9]
call qword [sym.imp.msvcrt.dll_swscanf_s]
nop dword [rax + rax]
test eax, eax
jle 0x14002a7b1
mov rcx, qword [r14 + 8]
mov eax, dword [rsp + 0x44]
mov dword [rcx + 4], eax
mov rcx, qword [r14 + 8]
mov esi, 1
cmp dword [rcx + 4], r13d
ja 0x14002a7c5
cmp dword [rcx + 4], esi
jae 0x14002a7d3
mov edx, 2
mov dword [rcx + 4], edx
mov rcx, qword [r14 + 8]
jmp 0x14002a7d8
mov edx, 2
mov eax, dword [rcx]
sub eax, esi
cmp eax, 3
jbe 0x14002a7e3
mov dword [rcx], edx
mov rcx, r15
call fcn.140007518
mov rcx, rax
mov dword [rsp + 0x58], r12d
mov rdi, rax
mov r13d, r12d
call fcn.14000813c
test rax, rax
je 0x14002a818
mov rcx, rax
add r13d, esi
call fcn.1400081c4
test rax, rax
jne 0x14002a803
mov dword [rsp + 0x58], r13d
mov ebx, r13d
shl rbx, 3
mov dword [rsp + 0x50], r12d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov rcx, rdi
mov qword [rbp - 0x61], rax
mov rbx, rax
call fcn.14000813c
xor r8d, r8d
mov rdi, rax
test rax, rax
je 0x14002ab0b
mov r14d, dword [rsp + 0x58]
mov rcx, rdi
call fcn.1400076f4
xor r8d, r8d
test eax, eax
je 0x14002aaa4
test rdi, rdi
je 0x14002aaae
cmp dword [rdi], 0xfeedf001
jne 0x14002aaae
cmp word [rdi + 0x5a], si
jbe 0x14002aa96
cmp word [rdi + 0x58], si
jne 0x14002aa96
mov eax, r12d
movzx r11d, r8w
add r12d, esi
mov word [rsp + 0x48], r8w
mov qword [rbx + rax*8], rdi
cmp dword [rdi], 0xfeedf001
jne 0x14002a8cd
movzx r11d, word [rdi + 0x5a]
mov word [rsp + 0x48], r11w
mov eax, 2
mov rcx, r15
movzx r9d, ax
mov word [rsp + 0x40], ax
mov r10d, esi
call fcn.14000813c
mov r13, rax
mov eax, 2
cmp ax, r11w
ja 0x14002aaae
mov rcx, r13
lea rdx, [r13 + 0x48]
neg rcx
sbb r8, r8
and r8, rdx
mov rax, qword [r8]
cmp rax, qword [rdi + 0x48]
jne 0x14002a973
mov rax, qword [r8 + 8]
xor r8d, r8d
cmp rax, qword [rdi + 0x50]
jne 0x14002a976
movzx eax, r8w
test r13, r13
je 0x14002a936
cmp dword [r13], 0xfeedf001
jne 0x14002a936
movzx eax, word [r13 + 0x5a]
cmp ax, r11w
jne 0x14002a976
movzx eax, r8w
test r13, r13
je 0x14002a954
cmp dword [r13], 0xfeedf001
jne 0x14002a954
movzx eax, word [r13 + 0x58]
cmp ax, r9w
jne 0x14002a976
mov eax, dword [rsp + 0x50]
mov qword [rbx + r12*8], r13
add r12d, esi
test eax, eax
cmove eax, esi
mov dword [rsp + 0x50], eax
jmp 0x14002aa5f
xor r8d, r8d
cmp r10d, r14d
jbe 0x14002aa6c
mov rcx, rdi
call fcn.140007600
mov rcx, rax
mov qword [rbp - 0x71], rax
or rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], r8w
jne 0x14002a992
sub rax, 0xffffffffffffff80
mov qword [rbp - 0x79], rax
lea rbx, [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
xor r8d, r8d
mov rbx, rax
test rax, rax
je 0x14002aa4f
mov rax, qword [rbp - 0x71]
lea r8, str.Expected___u__contiguous_parts__but_missing_part_number___u__for___s__
movzx ecx, word [rsp + 0x40]
movzx r9d, word [rsp + 0x48]
mov rdx, qword [rbp - 0x79]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.14000bb08
xor r8d, r8d
mov dword [rsp + 0x30], 0x104d
lea rax, str.CreateParallelDecodeInfo
mov r9, rbx
mov qword [rsp + 0x28], rax
mov rdx, r15
and dword [rsp + 0x20], 0
lea ecx, [r8 + 2]
call fcn.14000b4d0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
xor r8d, r8d
movzx r9d, word [rsp + 0x40]
mov rbx, qword [rbp - 0x61]
movzx r11d, word [rsp + 0x48]
add r9w, si
mov r10d, r8d
mov word [rsp + 0x40], r9w
mov rcx, r13
call fcn.1400081c4
mov r13, rax
test rax, rax
jne 0x14002aa87
mov rcx, r15
call fcn.14000813c
mov r13, rax
add r10d, esi
cmp r9w, r11w
jbe 0x14002a8f8
jmp 0x14002aaae
cmp dword [rdi], 0xfeedf001
jne 0x14002aaae
cmp word [rdi + 0x5a], si
jne 0x14002aaae
mov eax, r12d
add r12d, esi
mov qword [rbx + rax*8], rdi
mov rcx, rdi
call fcn.1400081c4
mov rdi, rax
test rax, rax
jne 0x14002a86a
mov r14, qword [rbp - 0x59]
cmp dword [rsp + 0x50], eax
je 0x14002ab0b
mov r13d, dword [rsp + 0x58]
cmp r13d, esi
jbe 0x14002aafc
lea r8, [rbx + 8]
mov r9, rbx
lea r10d, [r13 - 1]
mov rdx, qword [r8]
mov rcx, qword [r9]
call fcn.14000820c
lea r9, [r9 + 8]
lea r8, [r8 + 8]
sub r10, rsi
jne 0x14002aae1
xor r8d, r8d
lea eax, [r13 - 1]
xor edx, edx
mov rcx, qword [rbx + rax*8]
call fcn.14000820c
test rbx, rbx
je 0x14002ab33
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
xor r8d, r8d
mov rbx, r8
mov qword [rsp + 0x50], r8
mov rcx, r15
mov qword [rsp + 0x58], rbx
mov r12, r8
call fcn.14000813c
jmp 0x14002acda
mov rcx, r13
call fcn.1400076f4
xor r8d, r8d
test eax, eax
je 0x14002acd2
mov qword [rbp - 0x79], r8
mov eax, r8d
mov qword [rbp - 0x71], rax
test r13, r13
je 0x14002aca7
lea rdx, [rbp - 0x79]
mov rcx, r13
call 0x1400083bc
mov edi, eax
test eax, eax
js 0x14002aca1
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0x10]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
xor r8d, r8d
mov r12, rax
test rax, rax
mov eax, 0x8007000e
cmove edi, eax
test edi, edi
js 0x14002ac77
mov qword [r12 + 8], r8
mov ecx, r8d
mov qword [r12 + 0x10], r8
mov rax, qword [rbp - 0x79]
mov qword [r12], r13
mov edx, dword [rax + 8]
test edx, edx
je 0x14002abf8
mov rax, qword [rax]
add rax, 0x2c
add ecx, dword [rax]
lea rax, [rax + 0x38]
sub rdx, rsi
jne 0x14002abed
mov ebx, ecx
shl rbx, 2
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
xor r8d, r8d
mov rbx, rax
test rax, rax
mov eax, 0x8007000e
cmove edi, eax
test edi, edi
js 0x14002ac4d
lea rax, [r12 + 8]
test rax, rax
je 0x14002ac46
mov qword [rax], rbx
mov ebx, r8d
mov qword [rbp - 0x71], r12
mov r12, r8
test rbx, rbx
je 0x14002ac72
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rbx, qword [rsp + 0x58]
test r12, r12
je 0x14002ac9c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov r12, qword [rsp + 0x50]
mov rax, qword [rbp - 0x71]
jmp 0x14002acac
mov edi, 0x80070057
test edi, edi
js 0x14002ae7e
test rbx, rbx
cmove rbx, rax
mov qword [rsp + 0x58], rbx
test r12, r12
je 0x14002acca
mov qword [r12 + 0x10], rax
mov r12, rax
mov qword [rsp + 0x50], rax
mov rcx, r13
call fcn.1400081c4
mov r13, rax
test rax, rax
jne 0x14002ab50
lea r9, [r14 + 0x38]
mov qword [r14 + 0x48], rbx
lea rcx, [r14 + 0x28]
or edx, 0xffffffff
lea r8, [0x140026e70]
call 0x14000548c
xor r12d, r12d
mov edi, eax
test eax, eax
js 0x14002ae7e
xor r9d, r9d
xor r8d, r8d
mov edx, esi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
nop dword [rax + rax]
mov qword [r14 + 0x58], rax
test rax, rax
jne 0x14002ad71
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
mov ebx, 0x80070000
or ecx, ebx
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x14002ad67
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx edi, ax
or edi, ebx
test eax, eax
cmovle edi, eax
jmp 0x14002ae7e
mov edi, 0x80004005
jmp 0x14002ae7e
mov rax, qword [r14 + 8]
xor r9d, r9d
mov r8d, 0x7fffffff
xor ecx, ecx
mov edx, dword [rax + 4]
call qword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
nop dword [rax + rax]
mov qword [r14 + 0x30], rax
test rax, rax
je 0x14002ad2d
mov rax, qword [r14 + 8]
lea rbx, [r14 + 0x10]
mov r13d, dword [rbp - 0x69]
mov edx, 2
mov rcx, r15
mov qword [rsp + 0x20], rbx
mov r8d, dword [rax]
cmp r8d, r13d
lea r9d, [rdx + 8]
cmovae r8d, r13d
call fcn.140006b60
mov edi, eax
test eax, eax
js 0x14002ae7e
lea rax, [r14 + 0x18]
mov r9d, 0xa
mov r8d, esi
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, r15
call fcn.140006b60
mov edi, eax
test eax, eax
js 0x14002ae7e
cmp r13d, esi
jbe 0x14002ae2d
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
nop dword [rax + rax]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
nop dword [rax + rax]
mov rcx, qword [rbx]
lea edx, [r13 - 1]
mov rcx, qword [rcx + 0x38]
call qword [sym.imp.KERNEL32.dll_SetThreadIdealProcessor]
nop dword [rax + rax]
mov qword [rsp + 0x28], r12
lea r8, [0x14002a220]
mov r9, r14
mov dword [rsp + 0x20], r12d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop dword [rax + rax]
mov qword [r14 + 0x50], rax
test rax, rax
je 0x14002ad2d
test r15, r15
je 0x14002ae7b
mov rax, r15
mov r15, qword [r15 + 0x40]
test r15, r15
jne 0x14002ae63
test rax, rax
je 0x14002ae7b
mov qword [rax + 0x170], r14
mov r14, r12
mov rcx, r14
call fcn.14002a4cc
mov eax, edi
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140068870
mov rbx, qword [rsp + 0x150]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret