Function at 0x460510
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [0x59fdd8], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov dword [ebp - 4], ecx
jne 0x460544
push str.WIMCreateFile
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59fdd8], eax
cmp dword [0x59feb0], 0
jne 0x460568
push str.WIMSetTemporaryPath
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59feb0], eax
cmp dword [0x59f9a4], 0
jne 0x46058c
push str.WIMLoadImage
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59f9a4], eax
cmp dword [0x59feac], 0
jne 0x4605b0
push str.WIMApplyImage
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59feac], eax
cmp dword [0x59fbb0], 0
jne 0x4605d4
push str.WIMExtractImagePath
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59fbb0], eax
cmp dword [0x59fea0], 0
jne 0x4605f8
push str.WIMGetImageInformation
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59fea0], eax
cmp dword [0x59fea4], 0
jne 0x46061c
push str.WIMRegisterMessageCallback
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59fea4], eax
cmp dword [0x59fe98], 0
jne 0x460640
push str.WIMUnregisterMessageCallback
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59fe98], eax
mov eax, dword [0x59feb8]
test eax, eax
jne 0x460664
push str.WIMCloseHandle
push ecx
mov ecx, str.Wimgapi
call fcn.0045f020
add esp, 4
push eax
call esi
mov dword [0x59feb8], eax
cmp dword [0x59fdd8], 0
je 0x460693
cmp dword [0x59feb0], 0
je 0x460693
cmp dword [0x59f9a4], 0
je 0x460693
cmp dword [0x59fbb0], 0
je 0x460693
test eax, eax
je 0x460693
or byte [0x58b32d], 1
push 0x104
push 0x59fcc0
push 1
mov edx, 0x54495c
mov ecx, 0x80000001
call fcn.0045f8b0
add esp, 0xc
test eax, eax
jne 0x4606db
push 0x104
push 0x59fcc0
push 1
mov edx, 0x54495c
mov ecx, 0x80000002
call fcn.0045f8b0
add esp, 0xc
test eax, eax
je 0x4607e9
mov ecx, 0x59fcc0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4606e3
sub ecx, edx
mov eax, 0x103
sub eax, ecx
mov ecx, 8
cmp eax, ecx
cmova eax, ecx
push eax
push str.7z.exe
push 0x59fcc0
call fcn.004d16a0
add esp, 0xc
cmp byte [0x59fcc0], 0
jne 0x46073e
push 2
push 1
call fcn.004b6706
mov esi, eax
push 0
push esi
call fcn.004e9cc1
add esp, 0x10
mov edi, eax
test esi, esi
je 0x4607d3
jmp 0x4607ca
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
push 0xffffffffffffffff
push 0x59fcc0
push 0
push 0xfde9
call ebx
mov edi, eax
cmp edi, 1
jg 0x46076f
push 0
push 0
call fcn.004e9cc1
add esp, 8
mov edi, eax
jmp 0x4607d3
push 2
push edi
call fcn.004b6706
mov esi, eax
add esp, 8
test esi, esi
jne 0x46078e
push eax
push eax
call fcn.004e9cc1
add esp, 8
mov edi, eax
jmp 0x4607d3
push edi
push esi
push 0xffffffffffffffff
push 0x59fcc0
push 0
push 0xfde9
call ebx
cmp eax, edi
je 0x4607bd
push esi
call fcn.004d1211
add esp, 4
push 0
push 0
call fcn.004e9cc1
add esp, 8
mov edi, eax
jmp 0x4607d3
push 0
push esi
call fcn.004e9cc1
add esp, 8
mov edi, eax
push esi
call fcn.004d1211
add esp, 4
cmp edi, 0xffffffff
je 0x4607e9
mov cl, byte [0x58b32d]
or cl, 2
mov byte [0x58b32d], cl
jmp 0x4607ef
mov cl, byte [0x58b32d]
test cl, 1
je 0x460818
cmp dword [0x59feac], 0
je 0x460818
cmp dword [0x59fea4], 0
je 0x460818
cmp dword [0x59fe98], 0
je 0x460818
or cl, 4
mov byte [0x58b32d], cl
cmp dword [ebp - 4], 0
jne 0x460888
mov edi, 0x52ad5a
mov ebx, str.NONE
test cl, 2
je 0x460834
mov edx, 0x544bb4
jmp 0x46083c
test cl, 1
mov edx, edi
cmove edx, ebx
test cl, 1
mov esi, str.wimgapi.dll
mov eax, esi
cmove eax, edi
and cl, 3
push eax
cmp cl, 3
mov eax, 0x544bb0
cmovne eax, edi
push eax
push edx
push str.WIM_extraction_method_s__supported:__s_s_s
call fcn.0044b0b0
test byte [0x58b32d], 4
cmove esi, ebx
push esi
push str.WIM_apply_method_supported:__s
call fcn.0044b0b0
mov al, byte [0x58b32d]
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret