Function at 0x46afb0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x550
push ebx
push esi
lea eax, [ebp + 8]
push edi
push eax
mov dword [ebp - 0x28], ecx
call fcn.0042ebab
mov eax, dword [ebp + 8]
cmp word [eax], 0x2d
pop ecx
mov bl, 0x2a
jne 0x46afd7
add bl, 3
push 4
lea eax, [ebp + 8]
push eax
push str._udm
call fcn.00435950
add esp, 0xc
test al, al
push 4
lea eax, [ebp + 8]
push eax
je 0x46b1c0
mov esi, dword [ebp + 8]
xor ebx, ebx
push str.upud
mov dword [ebp - 0x24], ebx
call fcn.00435950
add esp, 0xc
test al, al
je 0x46b01a
mov dword [ebp - 0x24], 0x80000000
jmp 0x46b035
push 6
lea eax, [ebp + 8]
push eax
push str.listud
call fcn.00435950
add esp, 0xc
test al, al
je 0x46b158
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x38], ebx
call fcn.00433c24
mov ecx, dword [ebp - 0x28]
push 1
push ebx
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 8]
call fcn.0043b011
mov eax, dword [ebp - 0x20]
mov dword [ebp + 8], eax
push 5
lea eax, [ebp + 8]
push eax
push str._ret:
mov dword [ebp - 0xc], ebx
call fcn.00435950
mov ecx, dword [ebp + 8]
add esp, 0xc
cmp ecx, ebx
je 0x46b086
mov dx, word [ecx]
cmp dx, 0x2d
je 0x46b086
cmp dx, 0x5c
je 0x46b086
mov al, 1
test al, al
je 0x46b0a2
push 0xd
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0xc], ecx
call fcn.00414faa
add esp, 0xc
mov dword [ebp + 8], eax
push 8
lea eax, [ebp + 8]
push eax
xor esi, esi
push str._udmask:
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], ebx
call fcn.00435950
add esp, 0xc
test al, al
je 0x46b0e8
mov eax, dword [ebp + 8]
cmp word [eax], 0x2a
jne 0x46b0d6
add dword [ebp + 8], 2
push 0x3d
pop esi
mov dword [ebp - 0x3c], ebx
jmp 0x46b0e8
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 8]
push eax
call fcn.004369a1
mov esi, dword [ebp - 0x40]
pop ecx
pop ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
push 0xd
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00414faa
add esp, 0xc
xor edi, edi
cmp word [eax], bx
je 0x46b109
mov edi, eax
lea ecx, [ebp - 0x10]
call fcn.00433c24
push ebx
xor eax, eax
xor ecx, ecx
or eax, ecx
push eax
and esi, 0xfeffff
or esi, dword [ebp - 0x24]
lea eax, [ebp - 0x10]
push esi
push edi
push eax
push dword [ebp - 8]
call fcn.0042cf56
mov ecx, dword [ebp - 0x28]
add esp, 0x18
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004335ed
lea ecx, [ebp - 0x10]
call fcn.0042eb98
lea ecx, [ebp - 0x20]
call fcn.0042eb98
xor eax, eax
jmp 0x46b9e5
movzx esi, word [esi]
mov eax, esi
or eax, 0x20
cmp ax, 0x61
jb 0x46b16c
cmp ax, 0x7a
jbe 0x46b189
mov eax, esi
call fcn.0043386d
test al, al
jne 0x46b189
cmp si, 0x61
jb 0x46b183
cmp si, 0x66
jbe 0x46b189
cmp si, 0x78
jne 0x46b190
mov eax, str.22:INDATA
jmp 0x46b195
mov eax, str.22:INDATA_mount
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0xc]
call fcn.0043ddff
push dword [ebp + 8]
lea ecx, [ebp - 0xc]
call fcn.00433c92
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x28]
call fcn.0042065b
mov esi, eax
lea ecx, [ebp - 0xc]
jmp 0x46b9de
push str._vhd
call fcn.00435950
add esp, 0xc
push dword [ebp - 0x28]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x31], al
call fcn.00435bf3
mov esi, 0x496134
push esi
lea ecx, [ebp - 0x18]
call fcn.0043ddc9
push esi
lea ecx, [ebp - 0x30]
call fcn.0043ddc9
push esi
lea ecx, [ebp - 0x38]
call fcn.0043ddc9
push esi
lea ecx, [ebp - 0x20]
call fcn.0043ddc9
mov dword [ebp - 0x10], 0x80000000
mov byte [ebp - 0x19], 0
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x2b], 0
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x11], 0
movsx ebx, bl
jmp 0x46b2c4
lea eax, [edi + 2]
push 5
push eax
push str.query
call fcn.0042fa9d
add esp, 0xc
test al, al
je 0x46b248
mov byte [ebp - 0x12], 1
jmp 0x46b2ba
push 1
lea eax, [edi + 2]
push eax
push 0x49360c
call fcn.0042fa9d
add esp, 0xc
test al, al
je 0x46b265
mov byte [ebp - 0x11], 1
jmp 0x46b2ba
push 1
lea eax, [edi + 2]
push eax
push 0x4981dc
call fcn.0042fa9d
add esp, 0xc
test al, al
je 0x46b282
mov byte [ebp - 0x2a], 1
jmp 0x46b2ba
push 1
lea eax, [edi + 2]
push eax
push 0x492980
call fcn.0042fa9d
add esp, 0xc
test al, al
je 0x46b29f
mov byte [ebp - 0x29], 1
jmp 0x46b2ba
push 1
lea eax, [edi + 2]
push eax
push 0x497664
call fcn.0042fa9d
add esp, 0xc
test al, al
je 0x46b2e3
mov byte [ebp - 0x2b], 1
lea eax, [ebp + 8]
push eax
call fcn.0040418b
pop ecx
mov edi, dword [ebp + 8]
movzx eax, word [edi]
cmp ebx, eax
je 0x46b22b
jmp 0x46b2e3
cmp ax, 0x21
jne 0x46b2eb
inc edi
inc edi
mov byte [ebp - 0x19], 1
mov dword [ebp + 8], edi
mov ax, word [edi]
test ax, ax
jne 0x46b2d4
lea eax, [ebp + 8]
push eax
call fcn.0042ebab
pop ecx
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043fb4e
xor edi, edi
push edi
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.004365b4
push dword [ebp - 0x18]
call fcn.0040c744
push dword [ebp - 0x18]
call fcn.0040ec9c
mov ebx, eax
mov ax, word [ebx]
add esp, 0x14
cmp ax, 0x5c
je 0x46b33a
cmp ax, 0x2f
mov byte [ebp - 1], 0
jne 0x46b33e
mov byte [ebp - 1], 1
cmp byte [ebp - 0x12], 0
jne 0x46b394
cmp byte [ebp - 1], 0
je 0x46b394
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
mov eax, dword [ebp - 0x18]
and dword [ebp - 0x18], 0
mov dword [ebp - 0x24], eax
lea eax, [edi + 3]
push eax
lea ecx, [ebp - 0x18]
call fcn.00433c6b
mov ebx, dword [ebp - 0x18]
inc edi
push edi
push dword [ebp - 0x24]
lea eax, [ebx + 4]
push eax
mov word [ebx], 0x20
mov word [ebx + 2], 0x3a
call fcn.0040414f
add esp, 0xc
lea ecx, [ebp - 0x24]
call fcn.0042eb98
xor edi, edi
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x46b3bf
add dword [ebp + 8], 2
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043fb4e
push edi
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.004364f8
add esp, 0xc
push dword [ebp - 0x30]
call fcn.0040ec9c
cmp byte [ebp - 0x12], 0
pop ecx
mov dword [ebp - 8], eax
jne 0x46b449
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x46b428
add dword [ebp + 8], 2
push 0x2c
lea eax, [ebp - 0x10]
push eax
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043fb4e
push eax
call fcn.00436745
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x46b428
add dword [ebp + 8], 2
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043fb4e
push edi
lea ecx, [ebp - 0x20]
push ecx
push eax
call fcn.004364f8
add esp, 0xc
mov eax, dword [ebp - 0x20]
push eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edi
call fcn.0040ec9c
pop ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.0043de31
lea ecx, [ebp - 0x24]
call fcn.0042eb98
cmp byte [ebp - 0x31], 0
je 0x46b544
call fcn.00431586
cmp byte [ebp - 0x11], 0
je 0x46b46e
push dword [ebp - 0x18]
call fcn.004317cc
pop ecx
mov esi, eax
jmp 0x46b9bb
cmp byte [ebp - 0x29], 0
mov dword [ebp + 8], edi
je 0x46b4cd
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 8]
push eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], edi
call fcn.004385d3
mov ebx, dword [ebp - 8]
xor eax, eax
pop ecx
inc eax
cmp byte [ebp - 0x2b], 0
pop ecx
mov word [ebx], di
je 0x46b49d
xor eax, eax
cmp dword [ebp - 0x3c], edi
jg 0x46b4b4
jl 0x46b4ad
cmp dword [ebp - 0x40], 0x100000
jae 0x46b4b4
mov esi, 0x80070057
jmp 0x46b505
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x18]
call fcn.00431668
mov esi, eax
add esp, 0x10
mov dword [ebp + 8], esi
jmp 0x46b505
cmp byte [ebp - 0x2a], 0
push 4
pop eax
je 0x46b4d9
push 5
pop eax
mov ebx, dword [ebp - 8]
cmp ebx, edi
je 0x46b4e3
or eax, 2
cmp dword [ebp - 0x10], edi
jg 0x46b4ef
mov dword [ebp - 0x10], 1
lea ecx, [ebp + 8]
push ecx
push dword [ebp - 0x10]
push ebx
push eax
push dword [ebp - 0x18]
call fcn.00465737
add esp, 0x14
mov esi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 0x3c
push eax
lea ecx, [ebp - 0xc]
call fcn.00433c42
push ebx
push esi
push dword [ebp + 8]
push str._d__d__s
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x28]
add esp, 0x14
push dword [ebp - 0xc]
push dword [ebp - 0x20]
call fcn.004335ed
lea ecx, [ebp - 0xc]
jmp 0x46b9b6
mov eax, dword [ebp - 8]
cmp word [eax], di
jne 0x46b561
cmp byte [ebp - 0x11], 0
je 0x46b557
cmp word [ebx], di
jne 0x46b561
mov esi, 0x80070057
jmp 0x46b9bb
lea ecx, [ebp + 8]
call fcn.0042fbea
lea ecx, [ebp + 8]
call fcn.0042fbd1
cmp eax, edi
mov dword [ebp - 0x24], eax
jge 0x46b58f
push str.WIM_DLL_ERR_r_n
push dword [ebp - 0x28]
call fcn.0040c8e2
pop ecx
pop ecx
xor esi, esi
inc esi
jmp 0x46b9bb
cmp byte [ebp - 0x12], 0
je 0x46b6b3
cmp dword [0x4a7074], edi
jne 0x46b5a9
push 0x78
pop esi
jmp 0x46b9bb
push 0x3d
push ebx
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, edi
mov dword [ebp - 0x24], eax
je 0x46b5c1
mov word [eax], di
inc eax
inc eax
mov dword [ebp - 0x24], eax
cmp word [ebx], di
je 0x46b557
lea ecx, [ebp - 0xc]
call fcn.00433c24
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x46b5f9
add dword [ebp + 8], 2
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043fb4e
push edi
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.004364f8
add esp, 0xc
push dword [ebp - 0xc]
call fcn.0040ec9c
pop ecx
lea ecx, [ebp - 0x10]
mov esi, eax
call fcn.00433c24
mov eax, dword [ebp - 8]
cmp word [eax], di
je 0x46b637
cmp word [eax + 2], 0x3a
je 0x46b637
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.0040efe9
pop ecx
pop ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x30]
call fcn.0043de31
mov eax, dword [eax]
mov dword [ebp - 8], eax
cmp word [esi], di
je 0x46b65c
cmp word [esi + 2], 0x3a
je 0x46b65c
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.0040efe9
pop ecx
pop ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0xc]
call fcn.0043de31
mov esi, dword [eax]
push 0x20
lea ecx, [ebp + 8]
call fcn.00433c42
mov eax, dword [ebp + 8]
push edi
push dword [ebp - 0x24]
mov word [eax + 4], di
lea eax, [ebp + 8]
push eax
push esi
push dword [ebp - 8]
push dword [ebp - 0x28]
call fcn.004376d1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
add esp, 0x18
add eax, 4
push eax
push ebx
call fcn.004335ed
lea ecx, [ebp + 8]
call fcn.0042eb98
lea ecx, [ebp - 0x10]
call fcn.0042eb98
lea ecx, [ebp - 0xc]
call fcn.0042eb98
xor esi, esi
jmp 0x46b9bb
cmp byte [ebp - 0x11], 0
mov dword [ebp - 0x3c], edi
jne 0x46b8a1
cmp word [ebx], di
je 0x46b8a1
mov esi, dword [ebp - 0x20]
cmp word [esi], 0x2a
jne 0x46b6f1
push 0x105
lea ecx, [ebp - 0x20]
call fcn.00433c6b
mov esi, dword [ebp - 0x20]
push esi
push 0x104
mov word [esi], di
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp dword [0x4a706c], edi
je 0x46b587
push dword [ebp - 8]
call fcn.0047ab2d
test eax, eax
pop ecx
jne 0x46b726
push dword [ebp - 8]
lea ecx, [ebp + 8]
call fcn.0043ddc9
push dword [ebp + 8]
call fcn.00417847
pop ecx
lea ecx, [ebp + 8]
call fcn.0042eb98
push dword [ebp - 8]
call fcn.0047ab2d
test eax, eax
pop ecx
je 0x46b587
cmp byte [ebp - 1], 0
jne 0x46b74c
push ebx
call fcn.0047acb6
test eax, eax
pop ecx
je 0x46b587
and dword [ebp - 0x70], 0
push 8
pop ecx
xor eax, eax
lea edi, [ebp - 0x6c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x70]
push eax
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x46b771
test byte [ebp - 0x70], 1
jne 0x46b77c
cmp word [esi], 0
je 0x46b77c
mov dword [ebp - 0xc], esi
jmp 0x46b780
and dword [ebp - 0xc], 0
and dword [ebp + 8], 0
cmp byte [ebp - 1], 0
je 0x46b7a1
cmp dword [ebp - 0x24], 0
jne 0x46b797
mov dword [ebp + 8], 0x100
cmp byte [ebp - 0x19], 0
je 0x46b7a1
or byte [ebp + 9], 2
xor eax, eax
inc eax
cmp byte [ebp - 1], 0
je 0x46b7b6
lea eax, [ebp + 8]
push eax
push ebx
call fcn.0046594e
pop ecx
pop ecx
mov edi, dword [ebp - 0x10]
sar eax, 8
movzx esi, al
dec esi
cmp edi, 0x80000000
jne 0x46b7cb
xor edi, edi
inc edi
push ebx
call fcn.0047acb6
test eax, eax
pop ecx
je 0x46b826
cmp dword [ebp - 0x24], 0
je 0x46b7f5
test edi, edi
jge 0x46b7e3
xor edi, edi
inc edi
push dword [ebp - 0xc]
push edi
push ebx
push dword [ebp - 8]
call fcn.0043755b
add esp, 0x10
jmp 0x46b80a
test edi, edi
jge 0x46b7fc
xor edi, edi
inc edi
push dword [ebp - 0xc]
push edi
push ebx
push dword [ebp - 8]
call dword [0x4a706c]
mov edi, eax
push edi
push dword [ebp - 0xc]
push dword [ebp - 8]
push ebx
push str.FOUND_WIM___s____mount_to___s____s___d_r_n
push dword [ebp - 0x28]
call fcn.0040c8e2
add esp, 0x18
jmp 0x46b829
mov edi, dword [ebp - 0x3c]
cmp byte [ebp - 1], 0
je 0x46b842
cmp byte [ebp - 0x19], 0
jne 0x46b842
mov eax, dword [ebp + 8]
test ax, ax
je 0x46b842
call fcn.00430413
test esi, esi
jl 0x46b86d
push esi
lea eax, [ebp - 0x138]
push str.PART_update__d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x28]
add esp, 0xc
push 0
lea eax, [ebp - 0x130]
push eax
call fcn.0044f6e4
lea ecx, [ebp - 0x20]
call fcn.0042eb98
lea ecx, [ebp - 0x38]
call fcn.0042eb98
lea ecx, [ebp - 0x30]
call fcn.0042eb98
lea ecx, [ebp - 0x18]
call fcn.0042eb98
lea ecx, [ebp - 0x4c]
call fcn.0042eb98
xor eax, eax
test edi, edi
sete al
jmp 0x46b9e5
lea ecx, [ebp + 8]
call fcn.00433c24
mov eax, dword [ebp - 8]
cmp word [eax], di
je 0x46b8d6
cmp word [eax + 2], 0x3a
je 0x46b8d6
lea eax, [ebp + 8]
push eax
push dword [ebp - 8]
call fcn.0040efe9
pop ecx
pop ecx
push dword [ebp + 8]
lea ecx, [ebp - 0x30]
call fcn.0043de31
mov eax, dword [eax]
mov dword [ebp - 8], eax
cmp word [ebx], di
je 0x46b8fb
cmp word [ebx + 2], 0x3a
je 0x46b8fb
lea eax, [ebp + 8]
push eax
push ebx
call fcn.0040efe9
pop ecx
pop ecx
push dword [ebp + 8]
lea ecx, [ebp - 0x18]
call fcn.0043de31
mov ebx, dword [eax]
mov eax, dword [ebp - 8]
cmp word [eax], di
jne 0x46b936
cmp word [ebx], di
je 0x46b92e
lea eax, [ebp - 0x550]
push eax
push esi
lea eax, [ebp + 8]
push eax
push ebx
push esi
push dword [ebp - 0x28]
call fcn.004376d1
add esp, 0x18
test eax, eax
je 0x46b951
lea eax, [ebp - 0x348]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp word [eax], di
je 0x46b951
cmp dword [0x4a7070], edi
jne 0x46b943
xor esi, esi
inc esi
jmp 0x46b9b3
mov esi, dword [ebp - 8]
push esi
call fcn.0047ab2d
test eax, eax
pop ecx
jne 0x46b958
mov esi, 0x80070057
jmp 0x46b9b3
cmp word [ebx], di
jne 0x46b95f
xor ebx, ebx
cmp word [esi], di
mov ecx, esi
jne 0x46b968
xor ecx, ecx
mov eax, 0x80000000
cmp dword [ebp - 0x10], eax
jne 0x46b975
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x24], edi
je 0x46b991
xor eax, eax
cmp dword [ebp - 0x10], edi
setne al
push eax
push dword [ebp - 8]
call fcn.0043147d
pop ecx
pop ecx
mov esi, eax
jmp 0x46b9b3
cmp dword [ebp - 0x10], eax
je 0x46b9a0
cmp dword [ebp - 0x10], edi
je 0x46b9a0
xor eax, eax
inc eax
jmp 0x46b9a2
xor eax, eax
push eax
push edi
push ebx
push ecx
call dword [0x4a7070]
mov esi, eax
neg esi
sbb esi, esi
inc esi
lea ecx, [ebp + 8]
call fcn.0042eb98
lea ecx, [ebp - 0x20]
call fcn.0042eb98
lea ecx, [ebp - 0x38]
call fcn.0042eb98
lea ecx, [ebp - 0x30]
call fcn.0042eb98
lea ecx, [ebp - 0x18]
call fcn.0042eb98
lea ecx, [ebp - 0x4c]
call fcn.0042eb98
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 8