Function at 0x71201233
Capabilities:
Create directory
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x868
mov eax, dword [0x71202008]
push ebx
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x850], eax
push 0x105
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x71201498
cmp eax, 0xfe
jae 0x71201498
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x10c]
push eax
push 0x712010f0
mov ebx, 0x71202280
push ebx
call esi
push 0x712010e4
push 0x712023a0
call esi
push 0x712010d4
push 0x71202160
call esi
add esp, 0x1c
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x712012cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x7120149b
lea eax, [ebp - 0x84c]
push eax
push dword [ebp - 0x850]
mov dword [ebp - 0x84c], 0x31c
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetSelectedDriverA]
test eax, eax
jne 0x712012fa
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x7120149b
push 0
mov eax, 0x31d
push eax
mov dword [ebp - 0x530], eax
lea eax, [ebp - 0x530]
push eax
lea eax, [ebp - 0x84c]
push eax
push dword [ebp - 0x850]
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDriverInfoDetailA]
test eax, eax
jne 0x71201336
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x7120149b
mov edx, 0x71202040
push 0x41
pop ecx
lea esi, [ebp - 0x418]
mov edi, edx
mov eax, edx
rep movsd dword es:[edi], dword [esi]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x7120134d
sub eax, esi
lea eax, [eax + 0x71202040]
cmp byte [eax], 0x5c
je 0x71201370
cmp eax, edx
je 0x7120136b
dec eax
cmp byte [eax], 0x5c
jne 0x71201361
cmp byte [eax], 0x5c
jne 0x71201373
mov byte [eax], 0
mov edi, 0x712023a0
push edi
push ebx
push edx
call fcn.71201129
xor esi, esi
cmp eax, esi
mov dword [ebp - 0x850], eax
jne 0x7120149b
push esi
push 2
push esi
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x854], eax
je 0x71201498
mov dword [ebp - 0x858], 1
cmp dword [ebp - 0x858], esi
lea eax, [ebp - 0x868]
push eax
je 0x712013e3
push esi
push 0x71202160
push dword [ebp - 0x854]
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
mov dword [ebp - 0x858], esi
jmp 0x712013f0
lea eax, [ebp - 0x868]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
cmp eax, esi
je 0x71201448
push esi
push 0x104
lea eax, [ebp - 0x210]
push eax
push esi
push 0x71202160
push dword [ebp - 0x854]
lea eax, [ebp - 0x868]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetLineTextA]
test eax, eax
je 0x712013ba
lea eax, [ebp - 0x210]
push eax
push ebx
push 0x71202040
call fcn.71201129
cmp eax, esi
mov dword [ebp - 0x850], eax
je 0x712013ba
push dword [ebp - 0x854]
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x71201490
push dword [ebp - 0x854]
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
push edi
push ebx
lea eax, [ebp - 0x10c]
push 0x712010cc
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push esi
push esi
push esi
push esi
push esi
push 1
push ebx
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupCopyOEMInfA]
test eax, eax
jne 0x71201490
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x850], eax
mov eax, dword [ebp - 0x850]
jmp 0x7120149b
push 0x7b
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.71201914
leave
ret 8