Function at 0x463e86
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 - 0x34], edi
call fcn.00428a5b
push 4
lea eax, [ebp + 8]
push eax
xor ebx, ebx
push str._udm
mov byte [ebp - 1], bl
call fcn.0042fc5f
add esp, 0x10
test al, al
je 0x46404a
mov esi, dword [ebp + 8]
push 6
lea eax, [ebp + 8]
push eax
push str.listud
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x463fda
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x30], ebx
call fcn.0042e1c4
push 1
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 8]
mov ecx, edi
call fcn.00436312
mov eax, dword [ebp - 0x10]
mov dword [ebp + 8], eax
push 5
lea eax, [ebp + 8]
push eax
push str._ret:
mov dword [ebp - 0xc], ebx
call fcn.0042fc5f
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
push 0xd
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.004149d8
mov dword [ebp + 8], eax
push 8
lea eax, [ebp + 8]
push eax
xor esi, esi
push str._udmask:
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], ebx
call fcn.0042fc5f
add esp, 0x24
test al, al
je 0x463f71
mov eax, dword [ebp + 8]
cmp word [eax], 0x2a
jne 0x463f5f
add dword [ebp + 8], 2
push 0x3d
pop esi
mov dword [ebp - 0x38], ebx
jmp 0x463f71
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00430ab3
mov esi, dword [ebp - 0x3c]
pop ecx
pop ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
push 0xd
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004149d8
add esp, 0xc
xor edi, edi
cmp word [eax], bx
je 0x463f92
mov edi, eax
lea ecx, [ebp + 8]
call fcn.0042e1c4
push ebx
push dword [ebp - 0x38]
and esi, 0xfffeffff
push esi
push edi
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x20]
call fcn.00442e0f
mov ecx, dword [ebp - 0x34]
add esp, 0x18
push dword [ebp + 8]
push dword [ebp - 0xc]
call fcn.0042cbf7
lea ecx, [ebp + 8]
call fcn.00428a48
lea ecx, [ebp - 0x10]
call fcn.00428a48
xor eax, eax
jmp 0x46470f
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
je 0x46401b
mov eax, ecx
call fcn.0040ac1b
test al, al
jne 0x46400e
or ecx, 0x20
cmp cx, 0x61
jb 0x46401b
cmp cx, 0x7a
ja 0x46401b
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
mov byte [ebp - 1], 1
jne 0x463fe4
jmp 0x464014
cmp byte [ebp - 1], 0
je 0x46401b
mov eax, str.22:INDATA
jmp 0x464020
mov eax, str.22:INDATA_mount
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0xc]
call fcn.0043a4f0
push dword [ebp + 8]
lea ecx, [ebp - 0xc]
call fcn.0042e232
push dword [ebp - 0xc]
mov ecx, edi
call fcn.0041e615
mov esi, eax
lea ecx, [ebp - 0xc]
jmp 0x464708
lea ecx, [ebp + 8]
call fcn.00429a6d
lea ecx, [ebp + 8]
call fcn.00429a54
push eax
mov dword [ebp - 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push eax
push str.MOUN__:__Drives0x_lX__WIM_DLL_ver7_ld_r_n
push 0x49aed0
call fcn.0040c0f5
add esp, 0x10
cmp dword [ebp - 0x10], ebx
jge 0x46408e
push str.WIM_DLL_ERR_r_n
push edi
call fcn.0040c0f5
pop ecx
pop ecx
jmp 0x46467f
push edi
lea ecx, [ebp - 0x4c]
call fcn.0042fe12
mov esi, 0x484964
push esi
lea ecx, [ebp - 0x18]
call fcn.0043a4ba
push esi
lea ecx, [ebp - 0x28]
call fcn.0043a4ba
push esi
lea ecx, [ebp - 0x20]
call fcn.0043a4ba
push esi
lea ecx, [ebp - 0x14]
call fcn.0043a4ba
push 6
lea eax, [ebp + 8]
push eax
push str.query
mov dword [ebp - 8], 0x80000000
mov byte [ebp - 1], 0
call fcn.0042fc5f
mov byte [ebp - 0x21], al
push 2
lea eax, [ebp + 8]
push eax
push 0x48ceec
call fcn.0042fc5f
mov ecx, dword [ebp + 8]
add esp, 0x18
mov byte [ebp - 0x29], al
jmp 0x464108
cmp ax, 0x21
jne 0x464110
inc ecx
inc ecx
mov byte [ebp - 1], 1
mov dword [ebp + 8], ecx
mov ax, word [ecx]
cmp ax, bx
jne 0x4640f9
lea eax, [ebp + 8]
push eax
call fcn.00428a5b
pop ecx
push 1
push 0x2c
pop ebx
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043c3b4
push 0
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.004306c6
mov edi, dword [ebp - 0x18]
push edi
call fcn.0040bf57
push edi
call fcn.0040dca1
mov esi, eax
mov ax, word [esi]
add esp, 0x14
cmp ax, 0x5c
mov dword [ebp - 0xc], esi
je 0x464162
cmp ax, 0x2f
mov byte [ebp - 2], 0
jne 0x464166
mov byte [ebp - 2], 1
cmp byte [ebp - 0x21], 0
jne 0x4641b9
cmp byte [ebp - 2], 0
je 0x4641b9
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 - 0x40], edi
call fcn.0042e20b
mov eax, dword [ebp - 0x18]
inc esi
push esi
mov dword [ebp - 0xc], eax
mov word [eax], 0x20
mov word [eax + 2], 0x3a
add eax, 4
push edi
push eax
call fcn.00403fda
add esp, 0xc
lea ecx, [ebp - 0x40]
call fcn.00428a48
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
cmp word [eax], bx
jne 0x4641e6
add dword [ebp + 8], 2
push 1
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043c3b4
xor edi, edi
push edi
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.0043060a
add esp, 0xc
jmp 0x4641e8
xor edi, edi
push dword [ebp - 0x28]
call fcn.0040dca1
cmp byte [ebp - 0x21], 0
pop ecx
mov dword [ebp - 0x1c], eax
je 0x4643c8
cmp dword [0x49b014], edi
jne 0x46420e
push 0x78
pop esi
jmp 0x4646e5
push 0x3d
push esi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, edi
mov dword [ebp - 0x30], eax
je 0x464226
mov word [eax], di
inc eax
inc eax
mov dword [ebp - 0x30], eax
cmp word [esi], di
jne 0x464235
mov esi, 0x80070057
jmp 0x4646e5
push 0x100020
lea ecx, [ebp - 0x10]
call fcn.0042e06b
push 0x20
lea ecx, [ebp - 8]
mov dword [ebp - 0x40], 0x100000
call fcn.0042e1e2
mov eax, dword [ebp - 8]
mov word [eax + 4], di
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x10]
mov byte [ebp + 0xb], 0
call dword [0x49b014]
test eax, eax
jne 0x464284
lea ecx, [ebp - 8]
call fcn.00428a48
lea ecx, [ebp - 0x10]
call fcn.00428a48
jmp 0x4643d0
mov eax, dword [ebp - 0x40]
mov ebx, 0x418
xor edx, edx
mov ecx, ebx
div ecx
xor edi, edi
test eax, eax
mov dword [ebp - 0x38], eax
jle 0x46439f
mov esi, dword [ebp - 0x10]
add esi, 0x208
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
je 0x464321
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x464318
cmp dword [ebp - 0x30], eax
mov byte [ebp + 0xb], 1
je 0x464321
push dword [ebp - 0x30]
push 0x48cee8
call fcn.0042999a
test al, al
pop ecx
pop ecx
je 0x464321
mov eax, dword [ebp - 0x10]
imul edi, edi, 0x418
xor esi, esi
cmp dword [edi + eax + 0x414], esi
mov eax, 0x488814
jne 0x4642f7
mov eax, 0x486260
mov ecx, dword [ebp - 0x34]
push eax
push dword [ebp - 0xc]
call fcn.0042cbf7
lea ecx, [ebp - 8]
call fcn.00428a48
lea ecx, [ebp - 0x10]
call fcn.00428a48
jmp 0x4646e5
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0
jne 0x464393
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.0042e232
lea eax, [esi - 0x208]
push eax
lea ecx, [ebp - 8]
call fcn.0042e232
push 0x48cec4
lea ecx, [ebp - 8]
call fcn.0042e232
push esi
lea ecx, [ebp - 8]
call fcn.0042e232
push 0x485294
lea ecx, [ebp - 8]
call fcn.0042e232
cmp byte [ebp + 0xb], 0
jne 0x46439f
inc edi
add esi, ebx
cmp edi, dword [ebp - 0x38]
jl 0x4642a8
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
add eax, 4
push eax
push dword [ebp - 0xc]
call fcn.0042cbf7
lea ecx, [ebp - 8]
call fcn.00428a48
lea ecx, [ebp - 0x10]
call fcn.00428a48
xor esi, esi
jmp 0x4646e5
mov eax, dword [ebp - 0x1c]
cmp word [eax], di
jne 0x4643d8
xor esi, esi
inc esi
jmp 0x4646e5
mov eax, dword [ebp + 8]
cmp word [eax], bx
jne 0x46442a
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 - 0x4c]
call fcn.0043c3b4
push eax
call fcn.00430857
mov eax, dword [ebp + 8]
add esp, 0xc
cmp word [eax], bx
jne 0x46442a
add dword [ebp + 8], 2
push 1
push ebx
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0043c3b4
push edi
lea ecx, [ebp - 0x14]
push ecx
push eax
call fcn.0043060a
add esp, 0xc
mov eax, dword [ebp - 0x14]
push eax
mov dword [ebp + 8], eax
mov dword [ebp - 0x14], edi
call fcn.0040dca1
pop ecx
push eax
lea ecx, [ebp - 0x14]
call fcn.0043a522
lea ecx, [ebp + 8]
call fcn.00428a48
cmp byte [ebp - 0x29], 0
mov dword [ebp - 0x38], edi
jne 0x464641
cmp word [esi], di
je 0x464641
mov ebx, dword [ebp - 0x14]
cmp word [ebx], 0x2a
jne 0x464489
push 0x105
lea ecx, [ebp - 0x14]
call fcn.0042e20b
mov ebx, dword [ebp - 0x14]
push ebx
push 0x104
mov word [ebx], di
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp dword [0x49b00c], edi
je 0x464657
push dword [ebp - 0x1c]
call fcn.0046fe88
test eax, eax
pop ecx
jne 0x4644be
push dword [ebp - 0x1c]
lea ecx, [ebp + 8]
call fcn.0043a4ba
push dword [ebp + 8]
call fcn.004171c6
pop ecx
lea ecx, [ebp + 8]
call fcn.00428a48
push dword [ebp - 0x1c]
call fcn.0046fe88
test eax, eax
pop ecx
je 0x464657
cmp byte [ebp - 2], 0
jne 0x4644e4
push esi
call fcn.00470011
test eax, eax
pop ecx
je 0x464657
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 0x464509
test byte [ebp - 0x70], 1
jne 0x464514
cmp word [ebx], 0
je 0x464514
mov dword [ebp - 0xc], ebx
jmp 0x464518
and dword [ebp - 0xc], 0
and dword [ebp + 8], 0
cmp byte [ebp - 2], 0
je 0x464539
cmp dword [ebp - 0x10], 0
jne 0x46452f
mov dword [ebp + 8], 0x100
cmp byte [ebp - 1], 0
je 0x464539
or byte [ebp + 9], 2
xor eax, eax
inc eax
cmp byte [ebp - 2], 0
je 0x46454e
lea eax, [ebp + 8]
push eax
push esi
call fcn.0045ed18
pop ecx
pop ecx
mov ebx, dword [ebp - 8]
sar eax, 8
movzx edi, al
dec edi
cmp ebx, 0x80000000
jne 0x464563
xor ebx, ebx
inc ebx
push esi
call fcn.00470011
test eax, eax
pop ecx
je 0x4645c6
cmp dword [ebp - 0x10], 0
je 0x464591
test ebx, ebx
jl 0x46457c
mov eax, ebx
jmp 0x46457f
xor eax, eax
inc eax
push dword [ebp - 0xc]
push eax
push esi
push dword [ebp - 0x1c]
call fcn.0043166d
add esp, 0x10
jmp 0x4645aa
test ebx, ebx
jl 0x464599
mov eax, ebx
jmp 0x46459c
xor eax, eax
inc eax
push dword [ebp - 0xc]
push eax
push esi
push dword [ebp - 0x1c]
call dword [0x49b00c]
mov ebx, eax
push ebx
push dword [ebp - 0xc]
push dword [ebp - 0x1c]
push esi
push str.FOUND_WIM___s____mount_to___s____s___d_r_n
push dword [ebp - 0x34]
call fcn.0040c0f5
add esp, 0x18
jmp 0x4645c9
mov ebx, dword [ebp - 0x38]
cmp byte [ebp - 2], 0
je 0x4645e2
cmp byte [ebp - 1], 0
jne 0x4645e2
mov eax, dword [ebp + 8]
test ax, ax
je 0x4645e2
call fcn.0042a246
test edi, edi
jl 0x46460d
push edi
lea eax, [ebp - 0x138]
push str.PART_update__d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x34]
add esp, 0xc
push 0
lea eax, [ebp - 0x130]
push eax
call fcn.0044a907
lea ecx, [ebp - 0x14]
call fcn.00428a48
lea ecx, [ebp - 0x20]
call fcn.00428a48
lea ecx, [ebp - 0x28]
call fcn.00428a48
lea ecx, [ebp - 0x18]
call fcn.00428a48
lea ecx, [ebp - 0x4c]
call fcn.00428a48
xor eax, eax
test ebx, ebx
sete al
jmp 0x46470f
cmp dword [0x49b010], edi
je 0x464657
mov ebx, dword [ebp - 0x1c]
push ebx
call fcn.0046fe88
test eax, eax
pop ecx
jne 0x464687
lea ecx, [ebp - 0x14]
call fcn.00428a48
lea ecx, [ebp - 0x20]
call fcn.00428a48
lea ecx, [ebp - 0x28]
call fcn.00428a48
lea ecx, [ebp - 0x18]
call fcn.00428a48
lea ecx, [ebp - 0x4c]
call fcn.00428a48
xor eax, eax
inc eax
jmp 0x46470f
cmp word [esi], di
mov edx, esi
jne 0x464690
xor edx, edx
cmp word [ebx], di
mov ecx, ebx
jne 0x464699
xor ecx, ecx
mov eax, 0x80000000
cmp dword [ebp - 8], eax
jne 0x4646a6
mov dword [ebp - 8], edi
cmp dword [ebp - 0x10], edi
je 0x4646c2
xor eax, eax
cmp dword [ebp - 8], eax
setne al
push eax
push dword [ebp - 0x1c]
call fcn.0042b0f9
pop ecx
pop ecx
mov esi, eax
jmp 0x4646e5
cmp dword [ebp - 8], eax
je 0x4646d1
cmp dword [ebp - 8], edi
je 0x4646d1
xor eax, eax
inc eax
jmp 0x4646d3
xor eax, eax
push eax
push 0
push edx
push ecx
call dword [0x49b010]
mov esi, eax
neg esi
sbb esi, esi
inc esi
lea ecx, [ebp - 0x14]
call fcn.00428a48
lea ecx, [ebp - 0x20]
call fcn.00428a48
lea ecx, [ebp - 0x28]
call fcn.00428a48
lea ecx, [ebp - 0x18]
call fcn.00428a48
lea ecx, [ebp - 0x4c]
call fcn.00428a48
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 8