Function at 0x140053d50
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x38
cmp qword [0x140158078], 0
mov qword [rsp + 0x48], rsi
mov esi, ecx
jne 0x140053d88
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
cmp qword [0x140158178], 0
jne 0x140053db5
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
cmp qword [0x140157c30], 0
jne 0x140053de2
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
cmp qword [0x140158170], 0
jne 0x140053e0f
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMApplyImage
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140158170], rax
cmp qword [0x140157c38], 0
jne 0x140053e3c
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
cmp qword [0x140158158], 0
jne 0x140053e69
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMGetImageInformation
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140158158], rax
cmp qword [0x140158160], 0
jne 0x140053e96
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMRegisterMessageCallback
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140158160], rax
cmp qword [0x140158150], 0
jne 0x140053ec3
lea rcx, str.Wimgapi
call fcn.140009360
mov rcx, rax
lea rdx, str.WIMUnregisterMessageCallback
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140158150], rax
mov rax, qword [0x140158180]
test rax, rax
jne 0x140053ef2
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
cmp qword [0x140158078], 0
je 0x140053f26
cmp qword [0x140158178], 0
je 0x140053f26
cmp qword [0x140157c30], 0
je 0x140053f26
cmp qword [0x140157c38], 0
je 0x140053f26
test rax, rax
je 0x140053f26
or byte [0x140142c16], 1
mov qword [rsp + 0x40], rbx
lea r9, [0x140157f60]
mov r8d, 1
mov qword [rsp + 0x30], rdi
lea rdx, [0x1400f1d50]
mov dword [rsp + 0x20], 0x104
mov rcx, 0xffffffff80000001
call fcn.140027c60
test eax, eax
jne 0x140053f86
lea r9, [0x140157f60]
mov dword [rsp + 0x20], 0x104
lea r8d, [rax + 1]
mov rcx, 0xffffffff80000002
lea rdx, [0x1400f1d50]
call fcn.140027c60
test eax, eax
je 0x140053fe3
mov r9, 0xffffffffffffffff
lea r8, str.7z.exe
mov edx, 0x104
lea rcx, [0x140157f60]
call fcn.14009b5bc
lea rcx, [0x140157f60]
call fcn.140003550
xor edx, edx
mov rcx, rax
mov rbx, rax
call fcn.1400a7060
mov edi, eax
test rbx, rbx
je 0x140053fcd
mov rcx, rbx
call fcn.14009b5a0
cmp edi, 0xffffffff
je 0x140053fe3
movzx eax, byte [0x140142c16]
or al, 2
mov byte [0x140142c16], al
jmp 0x140053fea
movzx eax, byte [0x140142c16]
test al, 1
je 0x140054014
cmp qword [0x140158170], 0
je 0x140054014
cmp qword [0x140158160], 0
je 0x140054014
cmp qword [0x140158150], 0
je 0x140054014
or al, 4
mov byte [0x140142c16], al
test esi, esi
mov rsi, qword [rsp + 0x48]
jne 0x14005408d
lea r8, [0x1400d756a]
lea rbx, str.NONE
test al, 2
je 0x140054038
lea rdx, [0x1400f1fc4]
jmp 0x140054041
test al, 1
mov rdx, rbx
cmovne rdx, r8
test al, 1
lea rcx, [0x1400f1fc0]
mov r9, r8
lea rdi, str.wimgapi.dll
cmovne r9, rdi
and al, 3
cmp al, 3
cmove r8, rcx
lea rcx, str.WIM_extraction_method_s__supported:__s_s_s
call fcn.140041aa0
test byte [0x140142c16], 4
lea rcx, str.WIM_apply_method_supported:__s
cmovne rbx, rdi
mov rdx, rbx
call fcn.140041aa0
movzx eax, byte [0x140142c16]
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
add rsp, 0x38
ret