Function at 0x46023a
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.00426ff7
push 3
push dword [ebp + 8]
push str._udm
call fcn.00427f14
add esp, 0x10
test al, al
je 0x4602e5
lea eax, [ebp + 8]
push eax
call fcn.00403c51
mov esi, dword [ebp + 8]
pop ecx
xor ecx, ecx
mov cx, word [esi]
xor bl, bl
test cx, cx
mov edx, esi
je 0x4602b8
mov eax, ecx
call fcn.00426fde
test al, al
jne 0x4602ad
or ecx, 0x20
cmp cx, 0x61
jb 0x4602b8
cmp cx, 0x7a
ja 0x4602b8
inc edx
inc edx
mov cx, word [edx]
test cx, cx
mov bl, 1
jne 0x460285
jmp 0x4602b1
test bl, bl
je 0x4602b8
mov eax, str.22:INDATA
jmp 0x4602bd
mov eax, str.22:INDATA_mount
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 8]
call fcn.00436214
push esi
lea ecx, [ebp + 8]
call fcn.0042c465
push dword [ebp + 8]
mov ecx, edi
call fcn.0041cfc7
mov esi, eax
lea ecx, [ebp + 8]
jmp 0x46068f
lea ecx, [ebp + 8]
call fcn.00428017
lea ecx, [ebp + 8]
call fcn.00427ffe
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.0040b348
add esp, 0x10
cmp dword [ebp - 0x2c], 0
jge 0x46032a
push str.WIM_DLL_ERR_r_n
push edi
call fcn.0040b348
pop ecx
pop ecx
jmp 0x460913
push edi
lea ecx, [ebp - 0x48]
call fcn.0042e119
mov esi, 0x480934
push esi
lea ecx, [ebp - 0x18]
call fcn.004361de
push esi
lea ecx, [ebp - 0x28]
call fcn.004361de
push esi
lea ecx, [ebp - 0x30]
call fcn.004361de
push esi
lea ecx, [ebp - 0x10]
call fcn.004361de
push 6
lea eax, [ebp + 8]
push eax
push str.query
mov dword [ebp - 8], 0x80000000
mov byte [ebp - 9], 0
call fcn.0042df66
mov byte [ebp - 0x1d], al
push 2
lea eax, [ebp + 8]
push eax
push 0x488acc
call fcn.0042df66
mov ecx, dword [ebp + 8]
add esp, 0x18
mov byte [ebp - 0x31], al
jmp 0x4603a4
cmp ax, 0x21
jne 0x4603ac
inc ecx
inc ecx
mov byte [ebp - 9], 1
mov dword [ebp + 8], ecx
mov ax, word [ecx]
test ax, ax
jne 0x460395
lea eax, [ebp + 8]
push eax
call fcn.00426ff7
pop ecx
push 1
push 0x2c
pop ebx
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.00440583
push 0
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.0042e968
mov edi, dword [ebp - 0x18]
push edi
call fcn.0040b1aa
push edi
call fcn.0040ce49
mov esi, eax
mov ax, word [esi]
add esp, 0x14
cmp ax, 0x5c
mov dword [ebp - 0x24], esi
je 0x4603fe
cmp ax, 0x2f
mov byte [ebp - 1], 0
jne 0x460402
mov byte [ebp - 1], 1
cmp byte [ebp - 0x1d], 0
jne 0x460455
cmp byte [ebp - 1], 0
je 0x460455
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.0042c43e
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.00403c15
add esp, 0xc
lea ecx, [ebp - 0x38]
call fcn.0042704a
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp + 8]
cmp word [eax], bx
jne 0x460482
add dword [ebp + 8], 2
push 1
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.00440583
xor edi, edi
push edi
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.0042e8ac
add esp, 0xc
jmp 0x460484
xor edi, edi
push dword [ebp - 0x28]
call fcn.0040ce49
cmp byte [ebp - 0x1d], 0
pop ecx
mov dword [ebp - 0x1c], eax
je 0x460661
cmp dword [0x496ff4], edi
jne 0x4604aa
push 0x78
pop esi
jmp 0x46066c
push 0x3d
push esi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, edi
mov dword [ebp - 0x2c], eax
je 0x4604c2
mov word [eax], di
inc eax
inc eax
mov dword [ebp - 0x2c], eax
cmp word [esi], di
jne 0x4604d1
mov esi, 0x80070057
jmp 0x46066c
push 0x100020
lea ecx, [ebp - 0x14]
call fcn.0042c29e
push 0x20
lea ecx, [ebp - 8]
mov dword [ebp - 0x38], 0x100000
call fcn.0042c415
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 0x460520
lea ecx, [ebp - 8]
call fcn.0042704a
lea ecx, [ebp - 0x14]
call fcn.0042704a
jmp 0x460669
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 0x46063b
mov esi, dword [ebp - 0x14]
add esi, 0x208
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
je 0x4605bd
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4605b4
cmp dword [ebp - 0x2c], eax
mov byte [ebp + 0xb], 1
je 0x4605bd
push dword [ebp - 0x2c]
push 0x488ac8
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x4605bd
mov eax, dword [ebp - 0x14]
imul edi, edi, 0x418
xor esi, esi
cmp dword [edi + eax + 0x414], esi
mov eax, 0x4846b8
jne 0x460593
mov eax, 0x482188
mov ecx, dword [ebp - 0x3c]
push eax
push dword [ebp - 0x24]
call fcn.0042af0d
lea ecx, [ebp - 8]
call fcn.0042704a
lea ecx, [ebp - 0x14]
call fcn.0042704a
jmp 0x46066c
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
jne 0x46062f
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.0042c465
lea eax, [esi - 0x208]
push eax
lea ecx, [ebp - 8]
call fcn.0042c465
push 0x488aa4
lea ecx, [ebp - 8]
call fcn.0042c465
push esi
lea ecx, [ebp - 8]
call fcn.0042c465
push 0x48124c
lea ecx, [ebp - 8]
call fcn.0042c465
cmp byte [ebp + 0xb], 0
jne 0x46063b
inc edi
add esi, ebx
cmp edi, dword [ebp - 0x4c]
jl 0x460544
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x3c]
add eax, 4
push eax
push dword [ebp - 0x24]
call fcn.0042af0d
lea ecx, [ebp - 8]
call fcn.0042704a
lea ecx, [ebp - 0x14]
call fcn.0042704a
xor esi, esi
jmp 0x46066c
mov eax, dword [ebp - 0x1c]
cmp word [eax], di
jne 0x46069b
xor esi, esi
inc esi
lea ecx, [ebp - 0x10]
call fcn.0042704a
lea ecx, [ebp - 0x30]
call fcn.0042704a
lea ecx, [ebp - 0x28]
call fcn.0042704a
lea ecx, [ebp - 0x18]
call fcn.0042704a
lea ecx, [ebp - 0x48]
call fcn.0042704a
mov eax, esi
jmp 0x4609a0
mov eax, dword [ebp + 8]
cmp word [eax], bx
jne 0x4606ed
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.00440583
push eax
call fcn.0042eaf9
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], bx
jne 0x4606ed
add dword [ebp + 8], 2
push 1
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x48]
call fcn.00440583
push edi
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.0042e8ac
add esp, 0xc
mov eax, dword [ebp - 0x10]
push eax
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], edi
call fcn.0040ce49
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.00436246
lea ecx, [ebp + 8]
call fcn.0042704a
cmp byte [ebp - 0x31], 0
mov dword [ebp + 8], edi
jne 0x4608d5
cmp word [esi], di
je 0x4608d5
mov ebx, dword [ebp - 0x10]
cmp word [ebx], 0x2a
jne 0x46074c
push 0x105
lea ecx, [ebp - 0x10]
call fcn.0042c43e
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 0x4608eb
push dword [ebp - 0x1c]
call fcn.0046c02a
test eax, eax
pop ecx
jne 0x460781
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.004361de
push dword [ebp - 0x38]
call fcn.00415c5b
pop ecx
lea ecx, [ebp - 0x38]
call fcn.0042704a
push dword [ebp - 0x1c]
call fcn.0046c02a
test eax, eax
pop ecx
je 0x4608eb
cmp byte [ebp - 1], 0
jne 0x4607a7
push esi
call fcn.0046c1b3
test eax, eax
pop ecx
je 0x4608eb
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 0x4607cc
test byte [ebp - 0x70], 1
jne 0x4607d7
cmp word [ebx], 0
je 0x4607d7
mov dword [ebp - 0x24], ebx
jmp 0x4607db
and dword [ebp - 0x24], 0
and dword [ebp - 0x14], 0
cmp byte [ebp - 1], 0
je 0x4607fc
cmp dword [ebp - 0x2c], 0
jne 0x4607f2
mov dword [ebp - 0x14], 0x100
cmp byte [ebp - 9], 0
je 0x4607fc
or byte [ebp - 0x13], 2
xor eax, eax
inc eax
cmp byte [ebp - 1], 0
je 0x460811
lea eax, [ebp - 0x14]
push eax
push esi
call fcn.00459b2f
pop ecx
pop ecx
mov ebx, dword [ebp - 8]
sar eax, 8
movzx edi, al
dec edi
cmp ebx, 0x80000000
jne 0x460826
xor ebx, ebx
inc ebx
push esi
call fcn.0046c1b3
test eax, eax
pop ecx
je 0x460888
cmp dword [ebp - 0x2c], 0
je 0x460854
test ebx, ebx
jl 0x46083f
mov eax, ebx
jmp 0x460842
xor eax, eax
inc eax
push dword [ebp - 0x24]
push eax
push esi
push dword [ebp - 0x1c]
call fcn.0042f7c5
add esp, 0x10
jmp 0x46086d
test ebx, ebx
jl 0x46085c
mov eax, ebx
jmp 0x46085f
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.0040b348
add esp, 0x18
cmp byte [ebp - 1], 0
je 0x4608a1
cmp byte [ebp - 9], 0
jne 0x4608a1
mov eax, dword [ebp - 0x14]
test ax, ax
je 0x4608a1
call fcn.004287f0
test edi, edi
jl 0x460970
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.00446e4c
jmp 0x460970
cmp dword [0x496ff0], edi
je 0x4608eb
mov ebx, dword [ebp - 0x1c]
push ebx
call fcn.0046c02a
test eax, eax
pop ecx
jne 0x46091b
lea ecx, [ebp - 0x10]
call fcn.0042704a
lea ecx, [ebp - 0x30]
call fcn.0042704a
lea ecx, [ebp - 0x28]
call fcn.0042704a
lea ecx, [ebp - 0x18]
call fcn.0042704a
lea ecx, [ebp - 0x48]
call fcn.0042704a
xor eax, eax
inc eax
jmp 0x4609a0
cmp word [esi], di
mov edx, esi
jne 0x460924
xor edx, edx
cmp word [ebx], di
mov ecx, ebx
jne 0x46092d
xor ecx, ecx
mov eax, 0x80000000
cmp dword [ebp - 8], eax
jne 0x46093a
mov dword [ebp - 8], edi
cmp dword [ebp - 0x2c], edi
je 0x460952
xor eax, eax
cmp dword [ebp - 8], edi
setne al
push eax
push ebx
call fcn.00429689
pop ecx
pop ecx
jmp 0x46096d
cmp dword [ebp - 8], eax
je 0x460961
cmp dword [ebp - 8], edi
je 0x460961
xor eax, eax
inc eax
jmp 0x460963
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.0042704a
lea ecx, [ebp - 0x30]
call fcn.0042704a
lea ecx, [ebp - 0x28]
call fcn.0042704a
lea ecx, [ebp - 0x18]
call fcn.0042704a
lea ecx, [ebp - 0x48]
call fcn.0042704a
xor eax, eax
cmp dword [ebp + 8], eax
sete al
pop edi
pop esi
pop ebx
leave
ret 8