Function at 0x4606bc
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
push ebx
push esi
push edi
lea eax, [ebp + 8]
mov edi, ecx
push eax
mov dword [ebp - 0x3c], edi
call fcn.00427312
push 3
push dword [ebp + 8]
push 0x488b7c
call fcn.00428263
add esp, 0x10
test al, al
je 0x460767
lea eax, [ebp + 8]
push eax
call fcn.00403cc8
mov esi, dword [ebp + 8]
pop ecx
xor ecx, ecx
mov cx, word [esi]
xor bl, bl
test cx, cx
mov edx, esi
je 0x46073a
mov eax, ecx
call fcn.00402a89
test al, al
jne 0x46072f
or ecx, 0x20
cmp cx, 0x61
jb 0x46073a
cmp cx, 0x7a
ja 0x46073a
inc edx
inc edx
mov cx, word [edx]
test cx, cx
mov bl, 1
jne 0x460707
jmp 0x460733
test bl, bl
je 0x46073a
mov eax, str.22:INDATA
jmp 0x46073f
mov eax, str.22:INDATA_mount
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 8]
call fcn.004365f0
push esi
lea ecx, [ebp + 8]
call fcn.0042c877
push dword [ebp + 8]
mov ecx, edi
call fcn.0041d2d9
mov esi, eax
lea ecx, [ebp + 8]
jmp 0x460b11
lea ecx, [ebp + 8]
call fcn.00428366
lea ecx, [ebp + 8]
call fcn.0042834d
push eax
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push eax
push str.MOUN__:__Drives0x_lX__WIM_DLL_ver7_ld_r_n
push 0x496eb8
call fcn.0040b4f8
add esp, 0x10
cmp dword [ebp - 0x2c], 0
jge 0x4607ac
push str.WIM_DLL_ERR_r_n
push edi
call fcn.0040b4f8
pop ecx
pop ecx
jmp 0x460d95
push edi
lea ecx, [ebp - 0x48]
call fcn.0042e48d
mov esi, 0x480934
push esi
lea ecx, [ebp - 0x18]
call fcn.004365ba
push esi
lea ecx, [ebp - 0x28]
call fcn.004365ba
push esi
lea ecx, [ebp - 0x30]
call fcn.004365ba
push esi
lea ecx, [ebp - 0x10]
call fcn.004365ba
push 6
lea eax, [ebp + 8]
push eax
push str.query
mov dword [ebp - 8], 0x80000000
mov byte [ebp - 9], 0
call fcn.0042e2da
mov byte [ebp - 0x1d], al
push 2
lea eax, [ebp + 8]
push eax
push 0x488adc
call fcn.0042e2da
mov ecx, dword [ebp + 8]
add esp, 0x18
mov byte [ebp - 0x31], al
jmp 0x460826
cmp ax, 0x21
jne 0x46082e
inc ecx
inc ecx
mov byte [ebp - 9], 1
mov dword [ebp + 8], ecx
mov ax, word [ecx]
test ax, ax
jne 0x460817
lea eax, [ebp + 8]
push eax
call fcn.00427312
pop ecx
push 1
push 0x2c
pop ebx
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.00440941
push 0
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.0042ecdc
mov edi, dword [ebp - 0x18]
push edi
call fcn.0040b35a
push edi
call fcn.0040d003
mov esi, eax
mov ax, word [esi]
add esp, 0x14
cmp ax, 0x5c
mov dword [ebp - 0x24], esi
je 0x460880
cmp ax, 0x2f
mov byte [ebp - 1], 0
jne 0x460884
mov byte [ebp - 1], 1
cmp byte [ebp - 0x1d], 0
jne 0x4608d7
cmp byte [ebp - 1], 0
je 0x4608d7
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
and dword [ebp - 0x18], 0
mov esi, eax
lea eax, [esi + 3]
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x38], edi
call fcn.0042c850
mov eax, dword [ebp - 0x18]
inc esi
push esi
mov dword [ebp - 0x24], eax
mov word [eax], 0x20
mov word [eax + 2], 0x3a
add eax, 4
push edi
push eax
call fcn.00403c6b
add esp, 0xc
lea ecx, [ebp - 0x38]
call fcn.00427365
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp + 8]
cmp word [eax], bx
jne 0x460904
add dword [ebp + 8], 2
push 1
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.00440941
xor edi, edi
push edi
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.0042ec20
add esp, 0xc
jmp 0x460906
xor edi, edi
push dword [ebp - 0x28]
call fcn.0040d003
cmp byte [ebp - 0x1d], 0
pop ecx
mov dword [ebp - 0x1c], eax
je 0x460ae3
cmp dword [0x496ff4], edi
jne 0x46092c
push 0x78
pop esi
jmp 0x460aee
push 0x3d
push esi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, edi
mov dword [ebp - 0x2c], eax
je 0x460944
mov word [eax], di
inc eax
inc eax
mov dword [ebp - 0x2c], eax
cmp word [esi], di
jne 0x460953
mov esi, 0x80070057
jmp 0x460aee
push 0x100020
lea ecx, [ebp - 0x14]
call fcn.0042c6b0
push 0x20
lea ecx, [ebp - 8]
mov dword [ebp - 0x38], 0x100000
call fcn.0042c827
mov eax, dword [ebp - 8]
mov word [eax + 4], di
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x14]
mov byte [ebp + 0xb], 0
call dword [0x496ff4]
test eax, eax
jne 0x4609a2
lea ecx, [ebp - 8]
call fcn.00427365
lea ecx, [ebp - 0x14]
call fcn.00427365
jmp 0x460aeb
mov eax, dword [ebp - 0x38]
mov ebx, 0x418
xor edx, edx
mov ecx, ebx
div ecx
xor edi, edi
test eax, eax
mov dword [ebp - 0x4c], eax
jle 0x460abd
mov esi, dword [ebp - 0x14]
add esi, 0x208
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
je 0x460a3f
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x460a36
cmp dword [ebp - 0x2c], eax
mov byte [ebp + 0xb], 1
je 0x460a3f
push dword [ebp - 0x2c]
push 0x488ad8
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x460a3f
mov eax, dword [ebp - 0x14]
imul edi, edi, 0x418
xor esi, esi
cmp dword [edi + eax + 0x414], esi
mov eax, 0x4846c0
jne 0x460a15
mov eax, 0x482178
mov ecx, dword [ebp - 0x3c]
push eax
push dword [ebp - 0x24]
call fcn.0042b2cd
lea ecx, [ebp - 8]
call fcn.00427365
lea ecx, [ebp - 0x14]
call fcn.00427365
jmp 0x460aee
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
jne 0x460ab1
lea eax, [esi + 0x208]
mov ecx, dword [eax + 4]
neg ecx
sbb ecx, ecx
and ecx, 0x100
push ecx
push dword [eax]
lea eax, [ebp - 0xd4]
push str._r_n_lu_0x_lX__
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 8]
call fcn.0042c877
lea eax, [esi - 0x208]
push eax
lea ecx, [ebp - 8]
call fcn.0042c877
push 0x488ab4
lea ecx, [ebp - 8]
call fcn.0042c877
push esi
lea ecx, [ebp - 8]
call fcn.0042c877
push 0x481248
lea ecx, [ebp - 8]
call fcn.0042c877
cmp byte [ebp + 0xb], 0
jne 0x460abd
inc edi
add esi, ebx
cmp edi, dword [ebp - 0x4c]
jl 0x4609c6
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x3c]
add eax, 4
push eax
push dword [ebp - 0x24]
call fcn.0042b2cd
lea ecx, [ebp - 8]
call fcn.00427365
lea ecx, [ebp - 0x14]
call fcn.00427365
xor esi, esi
jmp 0x460aee
mov eax, dword [ebp - 0x1c]
cmp word [eax], di
jne 0x460b1d
xor esi, esi
inc esi
lea ecx, [ebp - 0x10]
call fcn.00427365
lea ecx, [ebp - 0x30]
call fcn.00427365
lea ecx, [ebp - 0x28]
call fcn.00427365
lea ecx, [ebp - 0x18]
call fcn.00427365
lea ecx, [ebp - 0x48]
call fcn.00427365
mov eax, esi
jmp 0x460e22
mov eax, dword [ebp + 8]
cmp word [eax], bx
jne 0x460b6f
add dword [ebp + 8], 2
push ebx
lea eax, [ebp - 8]
push eax
push 1
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.00440941
push eax
call fcn.0042ee6d
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], bx
jne 0x460b6f
add dword [ebp + 8], 2
push 1
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.00440941
push edi
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.0042ec20
add esp, 0xc
mov eax, dword [ebp - 0x10]
push eax
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], edi
call fcn.0040d003
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.00436622
lea ecx, [ebp + 8]
call fcn.00427365
cmp byte [ebp - 0x31], 0
mov dword [ebp + 8], edi
jne 0x460d57
cmp word [esi], di
je 0x460d57
mov ebx, dword [ebp - 0x10]
cmp word [ebx], 0x2a
jne 0x460bce
push 0x105
lea ecx, [ebp - 0x10]
call fcn.0042c850
mov ebx, dword [ebp - 0x10]
push ebx
push 0x104
mov word [ebx], di
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp dword [0x496fec], edi
je 0x460d6d
push dword [ebp - 0x1c]
call fcn.0046c4f9
test eax, eax
pop ecx
jne 0x460c03
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.004365ba
push dword [ebp - 0x38]
call fcn.00415f03
pop ecx
lea ecx, [ebp - 0x38]
call fcn.00427365
push dword [ebp - 0x1c]
call fcn.0046c4f9
test eax, eax
pop ecx
je 0x460d6d
cmp byte [ebp - 1], 0
jne 0x460c29
push esi
call fcn.0046c682
test eax, eax
pop ecx
je 0x460d6d
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 esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x460c4e
test byte [ebp - 0x70], 1
jne 0x460c59
cmp word [ebx], 0
je 0x460c59
mov dword [ebp - 0x24], ebx
jmp 0x460c5d
and dword [ebp - 0x24], 0
and dword [ebp - 0x14], 0
cmp byte [ebp - 1], 0
je 0x460c7e
cmp dword [ebp - 0x2c], 0
jne 0x460c74
mov dword [ebp - 0x14], 0x100
cmp byte [ebp - 9], 0
je 0x460c7e
or byte [ebp - 0x13], 2
xor eax, eax
inc eax
cmp byte [ebp - 1], 0
je 0x460c93
lea eax, [ebp - 0x14]
push eax
push esi
call fcn.00459fb1
pop ecx
pop ecx
mov ebx, dword [ebp - 8]
sar eax, 8
movzx edi, al
dec edi
cmp ebx, 0x80000000
jne 0x460ca8
xor ebx, ebx
inc ebx
push esi
call fcn.0046c682
test eax, eax
pop ecx
je 0x460d0a
cmp dword [ebp - 0x2c], 0
je 0x460cd6
test ebx, ebx
jl 0x460cc1
mov eax, ebx
jmp 0x460cc4
xor eax, eax
inc eax
push dword [ebp - 0x24]
push eax
push esi
push dword [ebp - 0x1c]
call fcn.0042fb39
add esp, 0x10
jmp 0x460cef
test ebx, ebx
jl 0x460cde
mov eax, ebx
jmp 0x460ce1
xor eax, eax
inc eax
push dword [ebp - 0x24]
push eax
push esi
push dword [ebp - 0x1c]
call dword [0x496fec]
push eax
push dword [ebp - 0x24]
mov dword [ebp + 8], eax
push dword [ebp - 0x1c]
push esi
push str.FOUND_WIM___s____mount_to___s____s___d_r_n
push dword [ebp - 0x3c]
call fcn.0040b4f8
add esp, 0x18
cmp byte [ebp - 1], 0
je 0x460d23
cmp byte [ebp - 9], 0
jne 0x460d23
mov eax, dword [ebp - 0x14]
test ax, ax
je 0x460d23
call fcn.00428b3f
test edi, edi
jl 0x460df2
push edi
lea eax, [ebp - 0x138]
push str.PART_update__d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x3c]
add esp, 0xc
push 0
lea eax, [ebp - 0x130]
push eax
call fcn.0044720a
jmp 0x460df2
cmp dword [0x496ff0], edi
je 0x460d6d
mov ebx, dword [ebp - 0x1c]
push ebx
call fcn.0046c4f9
test eax, eax
pop ecx
jne 0x460d9d
lea ecx, [ebp - 0x10]
call fcn.00427365
lea ecx, [ebp - 0x30]
call fcn.00427365
lea ecx, [ebp - 0x28]
call fcn.00427365
lea ecx, [ebp - 0x18]
call fcn.00427365
lea ecx, [ebp - 0x48]
call fcn.00427365
xor eax, eax
inc eax
jmp 0x460e22
cmp word [esi], di
mov edx, esi
jne 0x460da6
xor edx, edx
cmp word [ebx], di
mov ecx, ebx
jne 0x460daf
xor ecx, ecx
mov eax, 0x80000000
cmp dword [ebp - 8], eax
jne 0x460dbc
mov dword [ebp - 8], edi
cmp dword [ebp - 0x2c], edi
je 0x460dd4
xor eax, eax
cmp dword [ebp - 8], edi
setne al
push eax
push ebx
call fcn.004299db
pop ecx
pop ecx
jmp 0x460def
cmp dword [ebp - 8], eax
je 0x460de3
cmp dword [ebp - 8], edi
je 0x460de3
xor eax, eax
inc eax
jmp 0x460de5
xor eax, eax
push eax
push edi
push edx
push ecx
call dword [0x496ff0]
mov dword [ebp + 8], eax
lea ecx, [ebp - 0x10]
call fcn.00427365
lea ecx, [ebp - 0x30]
call fcn.00427365
lea ecx, [ebp - 0x28]
call fcn.00427365
lea ecx, [ebp - 0x18]
call fcn.00427365
lea ecx, [ebp - 0x48]
call fcn.00427365
xor eax, eax
cmp dword [ebp + 8], eax
sete al
pop edi
pop esi
pop ebx
leave
ret 8