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

Disassembly:
sub esp, 0x414
push ebx
push esi
push edi
push 0x19
push 0x20a
push 0x1002be00
call fcn.100154d0
add esp, 0xc
cmp word [0x1002c180], 0
jne 0x100090f9
push 0x1002fa24
push 0x1002c180
call fcn.1001ef83
add esp, 8
mov ax, word [0x1002b730]
and ax, 7
jne 0x1000910e
test byte [0x1002b732], 1
jne 0x10009114
cmp ax, 4
jne 0x1000911f
call fcn.10018cb0
mov word [0x1002f408], ax
push 1
push 0x1002f4c4
push 0x1002c180
call fcn.10009680
lea ecx, [esp + 0x18]
add esp, 0xc
mov eax, dword [0x1002f4c4]
push 0x1002fa28
push eax
push ecx
call fcn.10005900
lea ecx, [esp + 0x18]
add esp, 0xc
push 4
push ecx
call fcn.10006d60
add esp, 8
mov edi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 1
call edi
mov esi, eax
push 0x1002fa2c
lea eax, [esp + 0x10]
push eax
call fcn.10018df0
add esp, 8
mov dword [0x100308d0], eax
push esi
call edi
mov eax, dword [0x100308d0]
test eax, eax
jne 0x100091cd
mov word [0x1002f4c8], 1
lea eax, [esp + 0x214]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [esp + 0xc]
lea eax, [esp + 0x214]
push ecx
push eax
call fcn.10018b30
lea ecx, [esp + 0x14]
add esp, 8
push 2
push 0x1002f490
push ecx
call fcn.10009680
jmp 0x100091ee
push eax
call fcn.1001efa5
lea ecx, [esp + 0x10]
add esp, 4
mov dword [0x100308d0], 0
push 0
push 0
push ecx
call fcn.100067e0
add esp, 0xc
cmp word [0x1002f4c8], 0
je 0x10009202
mov eax, dword [0x1002f490]
jmp 0x10009207
mov eax, dword [0x1002f4c4]
push str.PATCH.ERR
push eax
push 0x1002abd0
call fcn.10005900
add esp, 0xc
test byte [0x1002b5e1], 4
je 0x10009267
cmp dword [0x1002c4bc], 0
mov eax, 0x1002fa44
jne 0x10009236
mov eax, 0x1002fa48
push eax
push 0x1002abd0
call fcn.10018df0
add esp, 8
mov dword [0x100308d0], eax
test eax, eax
jne 0x1000928a
push 0x91
push 1
push 0
push 0x25
push 0x1002f464
call fcn.1001bc20
add esp, 0x14
jmp 0x1000928a
push 0x1002abd0
call fcn.1001ac00
add esp, 4
test ax, ax
je 0x1000928a
push 0
push 0
push 0x1002abd0
call fcn.100067e0
add esp, 0xc
cmp word [0x1002ae30], 0x5c
je 0x100092d1
cmp word [0x1002ae30], 0x2e
je 0x100092d1
cmp word [0x1002ae32], 0x3a
je 0x100092d1
cmp word [0x1002f4c8], 0
je 0x100092b9
mov eax, dword [0x1002f490]
jmp 0x100092be
mov eax, dword [0x1002f4c4]
push 0x1002ae30
push eax
push 0x1002ae30
call fcn.10005900
add esp, 0xc
xor esi, esi
push esi
push 0x1002f384
push 0x1002ae30
call fcn.10009680
add esp, 0xc
mov eax, dword [0x1002f4c0]
cmp eax, esi
je 0x10009477
cmp word [eax], 0x2a
jne 0x10009419
lea eax, [esp + 0x214]
push 0x1002fa4c
push eax
call fcn.1001ef83
mov word [esp + 0x224], si
add esp, 8
cmp word [esp + 0x214], 0x7a
ja 0x10009477
mov edi, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov ebx, 0x7a
cmp dword [0x1002f4bc], 0xffffffff
jne 0x10009477
lea eax, [esp + 0x214]
push 0x1002be20
push eax
call fcn.10018be0
add esp, 8
push eax
call edi
cmp eax, 3
je 0x10009367
cmp eax, 4
jne 0x100093f9
lea eax, [esp + 0x214]
push str.RT_____
push eax
call fcn.1001ef52
lea eax, [esp + 0x21c]
add esp, 8
push eax
call fcn.1001a680
lea eax, [esp + 0x218]
add esp, 4
push eax
call fcn.1001ff14
add esp, 4
test eax, eax
jne 0x100093f9
lea eax, [esp + 0x214]
push eax
call fcn.10005850
add esp, 4
mov ecx, dword [0x1002add8]
mov dword [0x1002f4bc], eax
push ecx
push esi
push eax
call fcn.1000d0b0
add esp, 0xc
test eax, eax
je 0x100093f0
mov dword [0x1002fa20], 1
lea eax, [esp + 0x214]
push eax
call fcn.1001f3ad
mov dword [0x1002f4bc], 0xffffffff
add esp, 4
jmp 0x100093f9
mov word [0x1002f4b8], 1
inc word [esp + 0x214]
mov word [esp + 0x21a], si
cmp word [esp + 0x214], bx
jbe 0x10009334
jmp 0x10009477
push 0x1002fa64
push eax
call fcn.1001fecd
add esp, 8
test eax, eax
mov eax, dword [0x1002f4c0]
je 0x10009446
push eax
call fcn.1001acb0
add esp, 4
test ax, ax
je 0x10009477
mov eax, dword [0x1002f4c0]
push eax
jmp 0x1000946a
cmp word [eax], 0
je 0x10009477
push eax
call fcn.1001fe50
add esp, 4
mov esi, eax
test esi, esi
je 0x10009477
push esi
call fcn.1001acb0
add esp, 4
test ax, ax
je 0x10009477
push esi
call fcn.10005850
add esp, 4
mov dword [0x1002f4bc], eax
push 0x32
push 0x48
push 0x1002c4f0
call fcn.100154d0
add esp, 0xc
push 0x32
push 0x48
push 0x1002c508
call fcn.100154d0
add esp, 0xc
test byte [0x1002b5e1], 1
je 0x100094c4
push 0x32
push 0x48
push 0x1002c520
call fcn.100154d0
add esp, 0xc
push 0x32
push 0x48
push 0x1002c538
call fcn.100154d0
add esp, 0xc
push 0x32
push 0x214
push 0x1002bb60
call fcn.100154d0
add esp, 0xc
push 0xa
push 0x410
push 0x1002b5c0
call fcn.100154d0
add esp, 0xc
cmp word [0x1002f408], 0
je 0x1000950a
push 0xa
push 0x210
push 0x1002bf50
call fcn.100154d0
add esp, 0xc
push 0
call fcn.1001e930
add esp, 4
mov dword [0x1002aa68], eax
mov ax, word [0x1002f3b4]
test ax, ax
jne 0x100095aa
xor eax, eax
mov esi, 1
mov ax, word [0x1002aa68]
push eax
call fcn.1000ddc0
mov word [0x1002f46c], si
add esp, 4
mov dword [0x1002f504], eax
xor eax, eax
mov ax, word [0x1002f4ec]
push eax
call fcn.1000ddc0
mov word [0x1002f470], si
add esp, 4
mov dword [0x1002f4f0], eax
xor eax, eax
mov ax, word [0x1002f4f4]
push eax
call fcn.1000ddc0
mov word [0x1002f474], si
add esp, 4
mov dword [0x1002f4f8], eax
mov ax, word [0x1002f3b4]
test ax, ax
jne 0x100095aa
push 0x2000
call fcn.1000ddc0
add esp, 4
mov dword [0x1002f3a4], eax
mov word [0x1002f478], 1
push 0x7d0
push 0xc
push 0x1002ae10
call fcn.100154d0
add esp, 0xc
push 0x1388
push 8
push 0x1002abb0
call fcn.100154d0
add esp, 0xc
push 0xa
push 0xc
push 0x1002bdb0
call fcn.100154d0
add esp, 0xc
push 0xa
push 0x21c
push 0x1002adf0
call fcn.100154d0
add esp, 0xc
test byte [0x1002b5e0], 0x10
je 0x10009628
push 0x64
push 0x22c
push 0x1002bde0
call fcn.100154d0
add esp, 0xc
push 0x64
push 0x428
push 0x1002c4d0
call fcn.100154d0
add esp, 0xc
test byte [0x1002b5e1], 8
je 0x10009642
push 0x14
push 4
push 0x1002b250
call fcn.100154d0
add esp, 0xc
cmp word [0x1002f4d0], 0
je 0x10009666
push 0x1002abb0
call fcn.10015510
add esp, 4
push 0x1002ae10
call fcn.10015510
add esp, 4
call fcn.10018190
mov word [0x1002f3b4], 1
pop edi
pop esi
pop ebx
add esp, 0x414
ret