Function at 0x140054c90
Capabilities:
Get common file path
Link many functions at runtime
Write file on windows

Disassembly:
push rbx
push rbp
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0x2a0
mov rax, qword [0x140106438]
xor rax, rsp
mov qword [rsp + 0x280], rax
xor esi, esi
mov qword [rsp + 0x68], rcx
mov rbx, r8
mov dword [rsp + 0x50], esi
mov r13d, edx
mov rbp, rcx
xor edx, edx
lea rcx, [rsp + 0x70]
mov r8d, 0x208
mov r14d, esi
mov r15d, esi
mov r12, r9
call fcn.140093c00
mov rcx, rbp
call fcn.140003550
mov rcx, rbx
mov qword [rsp + 0x58], rax
call fcn.140003550
mov rcx, r12
mov qword [rsp + 0x40], rax
call fcn.140003550
cmp qword [0x140158078], rsi
mov qword [rsp + 0x48], rax
jne 0x140054d6d
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMCreateFile
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140158078], rax
test rax, rax
jne 0x140054d6d
call fcn.140041e50
mov r9, rax
lea r8, str.Wimgapi
lea rdx, str.WIMCreateFile
lea rcx, str.Unable_to_locate__s___in__s.dll:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x1400551bc
cmp qword [0x140158178], rsi
jne 0x140054dcf
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMSetTemporaryPath
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140158178], rax
test rax, rax
jne 0x140054dcf
call fcn.140041e50
mov r9, rax
lea r8, str.Wimgapi
lea rdx, str.WIMSetTemporaryPath
lea rcx, str.Unable_to_locate__s___in__s.dll:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x1400551bc
cmp qword [0x140157c30], rsi
jne 0x140054e31
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMLoadImage
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140157c30], rax
test rax, rax
jne 0x140054e31
call fcn.140041e50
mov r9, rax
lea r8, str.Wimgapi
lea rdx, str.WIMLoadImage
lea rcx, str.Unable_to_locate__s___in__s.dll:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x1400551bc
cmp qword [0x140157c38], rsi
jne 0x140054e93
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMExtractImagePath
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140157c38], rax
test rax, rax
jne 0x140054e93
call fcn.140041e50
mov r9, rax
lea r8, str.Wimgapi
lea rdx, str.WIMExtractImagePath
lea rcx, str.Unable_to_locate__s___in__s.dll:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x1400551bc
cmp qword [0x140158180], rsi
jne 0x140054ef5
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMCloseHandle
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140158180], rax
test rax, rax
jne 0x140054ef5
call fcn.140041e50
mov r9, rax
lea r8, str.Wimgapi
lea rdx, str.WIMCloseHandle
lea rcx, str.Unable_to_locate__s___in__s.dll:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x1400551bc
mov qword [rsp + 0x298], rdi
mov edi, dword [rsp + 0x300]
test edi, edi
jne 0x140054f1a
mov r8d, r13d
lea rcx, str.Opening:__s:__d___API_
mov rdx, rbp
call fcn.140041aa0
lea rdx, [rsp + 0x70]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x140054f51
call fcn.140041e50
mov rdx, rax
lea rcx, str.__Could_not_fetch_temp_path:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x1400551b4
cmp dword [0x14015b408], 0xe0000
mov r9d, esi
mov rcx, qword [rsp + 0x58]
mov eax, 0x20000000
cmovae r9d, eax
mov qword [rsp + 0x28], rsi
mov edx, 0x80000000
mov dword [rsp + 0x20], esi
mov r8d, 3
call qword [0x140158078]
mov rbp, rax
test rax, rax
jne 0x140054fb1
call fcn.140041e50
mov rdx, rax
lea rcx, str.__Could_not_access_image:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x1400551b4
lea rdx, [rsp + 0x70]
mov rcx, rbp
call qword [0x140158178]
test eax, eax
jne 0x140054fe6
call fcn.140041e50
mov rdx, rax
lea rcx, str.__Could_not_set_temp_path:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x14005516e
test edi, edi
jne 0x140054ffc
mov r8, rbx
lea rcx, str.Extracting:__s__From__s_
mov rdx, r12
call fcn.140041aa0
test rbx, rbx
lea rax, str._NULL_
mov rcx, rsi
lea rdx, str._1_.xml
cmove rbx, rax
movzx eax, byte [rbx + rcx]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x1400550f6
cmp rcx, 8
jne 0x140055014
lea r8, [rsp + 0x50]
mov rcx, rbp
lea rdx, [rsp + 0x60]
call qword [0x140158158]
test eax, eax
je 0x1400550d3
cmp dword [rsp + 0x50], esi
je 0x1400550d3
mov rbx, qword [rsp + 0x48]
xor r9d, r9d
mov qword [rsp + 0x30], rsi
mov edx, 0xc0000000
mov dword [rsp + 0x28], 0x80
mov rcx, rbx
mov dword [rsp + 0x20], 2
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x1400550ad
mov r8d, dword [rsp + 0x50]
lea r9, [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
mov rcx, rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140055164
test edi, edi
jne 0x140055193
call fcn.140041e50
mov rdx, rax
lea rcx, str.__Could_not_extract_file:__s
call fcn.140041aa0
mov r12, qword [rsp + 0x40]
jmp 0x140055172
call fcn.140041e50
mov rdx, rax
lea rcx, str.__Could_not_access_WIM_info:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x14005516e
mov edx, r13d
mov rcx, rbp
call qword [0x140157c30]
mov r14, rax
test rax, rax
jne 0x14005512a
call fcn.140041e50
mov rdx, rax
lea rcx, str.__Could_not_set_index:__s
call fcn.140041aa0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
jmp 0x14005516e
mov rbx, qword [rsp + 0x48]
xor r9d, r9d
mov r12, qword [rsp + 0x40]
mov r8, rbx
mov rdx, r12
mov rcx, rax
call qword [0x140157c38]
test eax, eax
jne 0x140055169
test edi, edi
jne 0x140055188
call fcn.140041e50
mov rdx, rax
lea rcx, str.__Could_not_extract_file:__s
call fcn.140041aa0
jmp 0x140055172
mov r12, qword [rsp + 0x40]
mov esi, 1
test edi, edi
jne 0x140055183
mov rdx, qword [rsp + 0x68]
lea rcx, str.Closing:__s
call fcn.140041aa0
test r14, r14
je 0x140055198
mov rcx, r14
call qword [0x140158180]
jmp 0x140055198
mov r12, qword [rsp + 0x40]
mov rcx, rbp
call qword [0x140158180]
lea rcx, [r15 - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x1400551b4
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x298]
mov rcx, qword [rsp + 0x58]
call fcn.14009b5a0
mov rcx, r12
call fcn.14009b5a0
mov rcx, rbx
call fcn.14009b5a0
mov eax, esi
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140092060
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret