Function at 0x469ad1
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.0042dd40
mov eax, dword [ebp + 8]
cmp word [eax], 0x2d
pop ecx
mov bl, 0x2a
jne 0x469af8
add bl, 3
push 4
lea eax, [ebp + 8]
push eax
push str._udm
call fcn.004349fd
add esp, 0xc
test al, al
push 4
lea eax, [ebp + 8]
push eax
je 0x469ce1
mov esi, dword [ebp + 8]
xor ebx, ebx
push str.upud
mov dword [ebp - 0x24], ebx
call fcn.004349fd
add esp, 0xc
test al, al
je 0x469b3b
mov dword [ebp - 0x24], 0x80000000
jmp 0x469b56
push 6
lea eax, [ebp + 8]
push eax
push str.listud
call fcn.004349fd
add esp, 0xc
test al, al
je 0x469c79
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x38], ebx
call fcn.00432cb7
mov ecx, dword [ebp - 0x28]
push 1
push ebx
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 8]
call fcn.00439f34
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.004349fd
mov ecx, dword [ebp + 8]
add esp, 0xc
cmp ecx, ebx
je 0x469ba7
mov dx, word [ecx]
cmp dx, 0x2d
je 0x469ba7
cmp dx, 0x5c
je 0x469ba7
mov al, 1
test al, al
je 0x469bc3
push 0xd
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0xc], ecx
call fcn.00414db6
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.004349fd
add esp, 0xc
test al, al
je 0x469c09
mov eax, dword [ebp + 8]
cmp word [eax], 0x2a
jne 0x469bf7
add dword [ebp + 8], 2
push 0x3d
pop esi
mov dword [ebp - 0x3c], ebx
jmp 0x469c09
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 8]
push eax
call fcn.004358c4
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.00414db6
add esp, 0xc
xor edi, edi
cmp word [eax], bx
je 0x469c2a
mov edi, eax
lea ecx, [ebp - 0x10]
call fcn.00432cb7
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.0042c116
mov ecx, dword [ebp - 0x28]
add esp, 0x18
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00432698
lea ecx, [ebp - 0x10]
call fcn.0042dd2d
lea ecx, [ebp - 0x20]
call fcn.0042dd2d
xor eax, eax
jmp 0x46a506
movzx esi, word [esi]
mov eax, esi
or eax, 0x20
cmp ax, 0x61
jb 0x469c8d
cmp ax, 0x7a
jbe 0x469caa
mov eax, esi
call fcn.00432901
test al, al
jne 0x469caa
cmp si, 0x61
jb 0x469ca4
cmp si, 0x66
jbe 0x469caa
cmp si, 0x78
jne 0x469cb1
mov eax, str.22:INDATA
jmp 0x469cb6
mov eax, str.22:INDATA_mount
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0xc]
call fcn.0043cd32
push dword [ebp + 8]
lea ecx, [ebp - 0xc]
call fcn.00432d25
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x28]
call fcn.0041fd16
mov esi, eax
lea ecx, [ebp - 0xc]
jmp 0x46a4ff
push str._vhd
call fcn.004349fd
add esp, 0xc
push dword [ebp - 0x28]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x31], al
call fcn.00434bb0
mov esi, 0x48e984
push esi
lea ecx, [ebp - 0x18]
call fcn.0043ccfc
push esi
lea ecx, [ebp - 0x30]
call fcn.0043ccfc
push esi
lea ecx, [ebp - 0x38]
call fcn.0043ccfc
push esi
lea ecx, [ebp - 0x20]
call fcn.0043ccfc
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 0x469de5
lea eax, [edi + 2]
push 5
push eax
push str.query
call fcn.0042ec66
add esp, 0xc
test al, al
je 0x469d69
mov byte [ebp - 0x12], 1
jmp 0x469ddb
push 1
lea eax, [edi + 2]
push eax
push 0x4925ac
call fcn.0042ec66
add esp, 0xc
test al, al
je 0x469d86
mov byte [ebp - 0x11], 1
jmp 0x469ddb
push 1
lea eax, [edi + 2]
push eax
push 0x4970ec
call fcn.0042ec66
add esp, 0xc
test al, al
je 0x469da3
mov byte [ebp - 0x2a], 1
jmp 0x469ddb
push 1
lea eax, [edi + 2]
push eax
push 0x491938
call fcn.0042ec66
add esp, 0xc
test al, al
je 0x469dc0
mov byte [ebp - 0x29], 1
jmp 0x469ddb
push 1
lea eax, [edi + 2]
push eax
push 0x49656c
call fcn.0042ec66
add esp, 0xc
test al, al
je 0x469e04
mov byte [ebp - 0x2b], 1
lea eax, [ebp + 8]
push eax
call fcn.0040417e
pop ecx
mov edi, dword [ebp + 8]
movzx eax, word [edi]
cmp ebx, eax
je 0x469d4c
jmp 0x469e04
cmp ax, 0x21
jne 0x469e0c
inc edi
inc edi
mov byte [ebp - 0x19], 1
mov dword [ebp + 8], edi
mov ax, word [edi]
test ax, ax
jne 0x469df5
lea eax, [ebp + 8]
push eax
call fcn.0042dd40
pop ecx
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043eb85
xor edi, edi
push edi
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.004354d7
push dword [ebp - 0x18]
call fcn.0040c79a
push dword [ebp - 0x18]
call fcn.0040e84c
mov ebx, eax
mov ax, word [ebx]
add esp, 0x14
cmp ax, 0x5c
je 0x469e5b
cmp ax, 0x2f
mov byte [ebp - 1], 0
jne 0x469e5f
mov byte [ebp - 1], 1
cmp byte [ebp - 0x12], 0
jne 0x469eb5
cmp byte [ebp - 1], 0
je 0x469eb5
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.00432cfe
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.00404142
add esp, 0xc
lea ecx, [ebp - 0x24]
call fcn.0042dd2d
xor edi, edi
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x469ee0
add dword [ebp + 8], 2
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043eb85
push edi
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.0043541b
add esp, 0xc
push dword [ebp - 0x30]
call fcn.0040e84c
cmp byte [ebp - 0x12], 0
pop ecx
mov dword [ebp - 8], eax
jne 0x469f6a
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x469f49
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.0043eb85
push eax
call fcn.00435668
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x469f49
add dword [ebp + 8], 2
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043eb85
push edi
lea ecx, [ebp - 0x20]
push ecx
push eax
call fcn.0043541b
add esp, 0xc
mov eax, dword [ebp - 0x20]
push eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edi
call fcn.0040e84c
pop ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.0043cd64
lea ecx, [ebp - 0x24]
call fcn.0042dd2d
cmp byte [ebp - 0x31], 0
je 0x46a065
call fcn.0043067b
cmp byte [ebp - 0x11], 0
je 0x469f8f
push dword [ebp - 0x18]
call fcn.004308c1
pop ecx
mov esi, eax
jmp 0x46a4dc
cmp byte [ebp - 0x29], 0
mov dword [ebp + 8], edi
je 0x469fee
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 8]
push eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], edi
call fcn.004374f6
mov ebx, dword [ebp - 8]
xor eax, eax
pop ecx
inc eax
cmp byte [ebp - 0x2b], 0
pop ecx
mov word [ebx], di
je 0x469fbe
xor eax, eax
cmp dword [ebp - 0x3c], edi
jg 0x469fd5
jl 0x469fce
cmp dword [ebp - 0x40], 0x100000
jae 0x469fd5
mov esi, 0x80070057
jmp 0x46a026
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x18]
call fcn.0043075d
mov esi, eax
add esp, 0x10
mov dword [ebp + 8], esi
jmp 0x46a026
cmp byte [ebp - 0x2a], 0
push 4
pop eax
je 0x469ffa
push 5
pop eax
mov ebx, dword [ebp - 8]
cmp ebx, edi
je 0x46a004
or eax, 2
cmp dword [ebp - 0x10], edi
jg 0x46a010
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.0046427c
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.00432cd5
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.00432698
lea ecx, [ebp - 0xc]
jmp 0x46a4d7
mov eax, dword [ebp - 8]
cmp word [eax], di
jne 0x46a082
cmp byte [ebp - 0x11], 0
je 0x46a078
cmp word [ebx], di
jne 0x46a082
mov esi, 0x80070057
jmp 0x46a4dc
lea ecx, [ebp + 8]
call fcn.0042edb3
lea ecx, [ebp + 8]
call fcn.0042ed9a
cmp eax, edi
mov dword [ebp - 0x24], eax
jge 0x46a0b0
push str.WIM_DLL_ERR_r_n
push dword [ebp - 0x28]
call fcn.0040c938
pop ecx
pop ecx
xor esi, esi
inc esi
jmp 0x46a4dc
cmp byte [ebp - 0x12], 0
je 0x46a1d4
cmp dword [0x4a6074], edi
jne 0x46a0ca
push 0x78
pop esi
jmp 0x46a4dc
push 0x3d
push ebx
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, edi
mov dword [ebp - 0x24], eax
je 0x46a0e2
mov word [eax], di
inc eax
inc eax
mov dword [ebp - 0x24], eax
cmp word [ebx], di
je 0x46a078
lea ecx, [ebp - 0xc]
call fcn.00432cb7
mov eax, dword [ebp + 8]
cmp word [eax], 0x2c
jne 0x46a11a
add dword [ebp + 8], 2
push 1
push 0x2c
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043eb85
push edi
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.0043541b
add esp, 0xc
push dword [ebp - 0xc]
call fcn.0040e84c
pop ecx
lea ecx, [ebp - 0x10]
mov esi, eax
call fcn.00432cb7
mov eax, dword [ebp - 8]
cmp word [eax], di
je 0x46a158
cmp word [eax + 2], 0x3a
je 0x46a158
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.0040ede9
pop ecx
pop ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x30]
call fcn.0043cd64
mov eax, dword [eax]
mov dword [ebp - 8], eax
cmp word [esi], di
je 0x46a17d
cmp word [esi + 2], 0x3a
je 0x46a17d
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.0040ede9
pop ecx
pop ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0xc]
call fcn.0043cd64
mov esi, dword [eax]
push 0x20
lea ecx, [ebp + 8]
call fcn.00432cd5
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.004365f4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
add esp, 0x18
add eax, 4
push eax
push ebx
call fcn.00432698
lea ecx, [ebp + 8]
call fcn.0042dd2d
lea ecx, [ebp - 0x10]
call fcn.0042dd2d
lea ecx, [ebp - 0xc]
call fcn.0042dd2d
xor esi, esi
jmp 0x46a4dc
cmp byte [ebp - 0x11], 0
mov dword [ebp - 0x3c], edi
jne 0x46a3c2
cmp word [ebx], di
je 0x46a3c2
mov esi, dword [ebp - 0x20]
cmp word [esi], 0x2a
jne 0x46a212
push 0x105
lea ecx, [ebp - 0x20]
call fcn.00432cfe
mov esi, dword [ebp - 0x20]
push esi
push 0x104
mov word [esi], di
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp dword [0x4a606c], edi
je 0x46a0a8
push dword [ebp - 8]
call fcn.00479608
test eax, eax
pop ecx
jne 0x46a247
push dword [ebp - 8]
lea ecx, [ebp + 8]
call fcn.0043ccfc
push dword [ebp + 8]
call fcn.00417653
pop ecx
lea ecx, [ebp + 8]
call fcn.0042dd2d
push dword [ebp - 8]
call fcn.00479608
test eax, eax
pop ecx
je 0x46a0a8
cmp byte [ebp - 1], 0
jne 0x46a26d
push ebx
call fcn.00479791
test eax, eax
pop ecx
je 0x46a0a8
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 0x46a292
test byte [ebp - 0x70], 1
jne 0x46a29d
cmp word [esi], 0
je 0x46a29d
mov dword [ebp - 0xc], esi
jmp 0x46a2a1
and dword [ebp - 0xc], 0
and dword [ebp + 8], 0
cmp byte [ebp - 1], 0
je 0x46a2c2
cmp dword [ebp - 0x24], 0
jne 0x46a2b8
mov dword [ebp + 8], 0x100
cmp byte [ebp - 0x19], 0
je 0x46a2c2
or byte [ebp + 9], 2
xor eax, eax
inc eax
cmp byte [ebp - 1], 0
je 0x46a2d7
lea eax, [ebp + 8]
push eax
push ebx
call fcn.0046448f
pop ecx
pop ecx
mov edi, dword [ebp - 0x10]
sar eax, 8
movzx esi, al
dec esi
cmp edi, 0x80000000
jne 0x46a2ec
xor edi, edi
inc edi
push ebx
call fcn.00479791
test eax, eax
pop ecx
je 0x46a347
cmp dword [ebp - 0x24], 0
je 0x46a316
test edi, edi
jge 0x46a304
xor edi, edi
inc edi
push dword [ebp - 0xc]
push edi
push ebx
push dword [ebp - 8]
call fcn.0043647e
add esp, 0x10
jmp 0x46a32b
test edi, edi
jge 0x46a31d
xor edi, edi
inc edi
push dword [ebp - 0xc]
push edi
push ebx
push dword [ebp - 8]
call dword [0x4a606c]
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.0040c938
add esp, 0x18
jmp 0x46a34a
mov edi, dword [ebp - 0x3c]
cmp byte [ebp - 1], 0
je 0x46a363
cmp byte [ebp - 0x19], 0
jne 0x46a363
mov eax, dword [ebp + 8]
test ax, ax
je 0x46a363
call fcn.0042f58c
test esi, esi
jl 0x46a38e
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.0044e6d7
lea ecx, [ebp - 0x20]
call fcn.0042dd2d
lea ecx, [ebp - 0x38]
call fcn.0042dd2d
lea ecx, [ebp - 0x30]
call fcn.0042dd2d
lea ecx, [ebp - 0x18]
call fcn.0042dd2d
lea ecx, [ebp - 0x4c]
call fcn.0042dd2d
xor eax, eax
test edi, edi
sete al
jmp 0x46a506
lea ecx, [ebp + 8]
call fcn.00432cb7
mov eax, dword [ebp - 8]
cmp word [eax], di
je 0x46a3f7
cmp word [eax + 2], 0x3a
je 0x46a3f7
lea eax, [ebp + 8]
push eax
push dword [ebp - 8]
call fcn.0040ede9
pop ecx
pop ecx
push dword [ebp + 8]
lea ecx, [ebp - 0x30]
call fcn.0043cd64
mov eax, dword [eax]
mov dword [ebp - 8], eax
cmp word [ebx], di
je 0x46a41c
cmp word [ebx + 2], 0x3a
je 0x46a41c
lea eax, [ebp + 8]
push eax
push ebx
call fcn.0040ede9
pop ecx
pop ecx
push dword [ebp + 8]
lea ecx, [ebp - 0x18]
call fcn.0043cd64
mov ebx, dword [eax]
mov eax, dword [ebp - 8]
cmp word [eax], di
jne 0x46a457
cmp word [ebx], di
je 0x46a44f
lea eax, [ebp - 0x550]
push eax
push esi
lea eax, [ebp + 8]
push eax
push ebx
push esi
push dword [ebp - 0x28]
call fcn.004365f4
add esp, 0x18
test eax, eax
je 0x46a472
lea eax, [ebp - 0x348]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp word [eax], di
je 0x46a472
cmp dword [0x4a6070], edi
jne 0x46a464
xor esi, esi
inc esi
jmp 0x46a4d4
mov esi, dword [ebp - 8]
push esi
call fcn.00479608
test eax, eax
pop ecx
jne 0x46a479
mov esi, 0x80070057
jmp 0x46a4d4
cmp word [ebx], di
jne 0x46a480
xor ebx, ebx
cmp word [esi], di
mov ecx, esi
jne 0x46a489
xor ecx, ecx
mov eax, 0x80000000
cmp dword [ebp - 0x10], eax
jne 0x46a496
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x24], edi
je 0x46a4b2
xor eax, eax
cmp dword [ebp - 0x10], edi
setne al
push eax
push dword [ebp - 8]
call fcn.00430572
pop ecx
pop ecx
mov esi, eax
jmp 0x46a4d4
cmp dword [ebp - 0x10], eax
je 0x46a4c1
cmp dword [ebp - 0x10], edi
je 0x46a4c1
xor eax, eax
inc eax
jmp 0x46a4c3
xor eax, eax
push eax
push edi
push ebx
push ecx
call dword [0x4a6070]
mov esi, eax
neg esi
sbb esi, esi
inc esi
lea ecx, [ebp + 8]
call fcn.0042dd2d
lea ecx, [ebp - 0x20]
call fcn.0042dd2d
lea ecx, [ebp - 0x38]
call fcn.0042dd2d
lea ecx, [ebp - 0x30]
call fcn.0042dd2d
lea ecx, [ebp - 0x18]
call fcn.0042dd2d
lea ecx, [ebp - 0x4c]
call fcn.0042dd2d
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 8