Function at 0x401c0c
Capabilities:
Get common file path
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb8
mov eax, 0x48c2dc
call fcn.0047d508
mov word [ebp - 0x34], 0xc
lea eax, [ebp - 4]
call fcn.00401fa8
inc dword [ebp - 0x28]
mov word [ebp - 0x34], 0x18
mov word [ebp - 0x34], 0x24
lea eax, [ebp - 8]
call fcn.00401fa8
mov edx, eax
inc dword [ebp - 0x28]
mov ecx, dword [0x49b54c]
mov eax, dword [ecx]
call fcn.00457080
lea edx, [ebp - 8]
push dword [edx]
lea eax, [ebp - 0xc]
call fcn.00401fa8
mov edx, eax
inc dword [ebp - 0x28]
pop eax
call fcn.0041683c
lea edx, [ebp - 0xc]
push edx
lea eax, [ebp - 0x14]
call fcn.00401fa8
push eax
inc dword [ebp - 0x28]
mov edx, 0x48c15e
lea eax, [ebp - 0x10]
call fcn.0048a45c
inc dword [ebp - 0x28]
lea edx, [ebp - 0x10]
pop ecx
pop eax
call fcn.0048a5b8
lea edx, [ebp - 0x14]
lea eax, [ebp - 4]
call fcn.0048a590
dec dword [ebp - 0x28]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0048a560
dec dword [ebp - 0x28]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0048a560
dec dword [ebp - 0x28]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0048a560
dec dword [ebp - 0x28]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0048a560
xor ecx, ecx
mov dword [0x48c0d4], ecx
mov eax, dword [ebp - 4]
call fcn.0041676c
test al, al
jne 0x401ddb
push 0x104
lea edx, [ebp - 0x148]
push edx
call sub.KERNEL32.DLL_GetSystemDirectoryA
test eax, eax
jne 0x401d33
xor eax, eax
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0048a560
pop eax
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
jmp 0x401fa2
mov word [ebp - 0x34], 0x30
lea eax, [ebp - 0x20]
call fcn.00401fa8
push eax
inc dword [ebp - 0x28]
mov edx, str.WinUsb.Dll
lea eax, [ebp - 0x1c]
call fcn.0048a45c
inc dword [ebp - 0x28]
lea edx, [ebp - 0x1c]
push edx
lea edx, [ebp - 0x148]
lea eax, [ebp - 0x18]
call fcn.0048a45c
inc dword [ebp - 0x28]
pop edx
pop ecx
call fcn.0048a5b8
lea edx, [ebp - 0x20]
lea eax, [ebp - 4]
call fcn.0048a590
dec dword [ebp - 0x28]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.0048a560
dec dword [ebp - 0x28]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.0048a560
dec dword [ebp - 0x28]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.0048a560
mov eax, dword [ebp - 4]
call fcn.0041676c
test al, al
jne 0x401ddb
xor eax, eax
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0048a560
pop eax
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
jmp 0x401fa2
lea eax, [ebp - 4]
call fcn.00401fd8
push eax
call sub.KERNEL32.DLL_LoadLibraryA
mov dword [0x48c0d4], eax
cmp dword [0x48c0d4], 0
jne 0x401e1a
xor eax, eax
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0048a560
pop eax
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
jmp 0x401fa2
push str.WinUsb_Initialize
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b774], eax
push str.WinUsb_Free
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b778], eax
push str.WinUsb_QueryDeviceInformation
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b788], eax
push str.WinUsb_QueryInterfaceSettings
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b784], eax
push str.WinUsb_QueryPipe
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b794], eax
push str.WinUsb_ControlTransfer
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b7a4], eax
push str.WinUsb_ReadPipe
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b79c], eax
push str.WinUsb_WritePipe
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b7a0], eax
push str.WinUsb_FlushPipe
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b7b0], eax
push str.WinUsb_AbortPipe
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b7ac], eax
push str.WinUsb_GetDescriptor
push dword [0x48c0d4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x49b780], eax
cmp dword [0x49b774], 0
je 0x401f64
cmp dword [0x49b778], 0
je 0x401f64
cmp dword [0x49b788], 0
je 0x401f64
cmp dword [0x49b794], 0
je 0x401f64
cmp dword [0x49b7a4], 0
je 0x401f64
cmp dword [0x49b79c], 0
je 0x401f64
cmp dword [0x49b7a0], 0
je 0x401f64
cmp dword [0x49b7b0], 0
je 0x401f64
cmp dword [0x49b7ac], 0
je 0x401f64
cmp dword [0x49b784], 0
je 0x401f64
cmp dword [0x49b780], 0
jne 0x401f84
xor eax, eax
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0048a560
pop eax
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
jmp 0x401fa2
mov al, 1
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0048a560
pop eax
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
mov esp, ebp
pop ebp
ret