Function at 0x103a2f0
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x1044
call fcn.01077a20
mov eax, dword [0x10de03c]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [esi]
xor ebx, ebx
cmp eax, ebx
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x102c], esi
mov dword [ebp - 0x1008], ebx
mov dword [ebp - 0x1010], 1
je 0x103a336
push eax
call fcn.0103a183
mov dword [esi], ebx
cmp edi, ebx
jne 0x103a367
lea edi, [ebp - 0x1004]
push 0x104
mov eax, edi
push eax
push 0x1005d9c
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x103a37d
mov eax, edi
push 0x1005d7c
push eax
call dword [sym.imp.msvcrt.dll_wcscat]
pop ecx
pop ecx
push ebx
push 2
push ebx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x1028], eax
jne 0x103a386
mov ax, 1
jmp 0x103a61e
mov esi, dword [sym.imp.SETUPAPI.dll_SetupGetIntField]
cmp word [ebp - reloc.ADVAPI32.dll_RegDeleteValueW], bx
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
je 0x103a3c2
mov eax, dword [ebp - 0x1008]
push ebx
push dword [eax*4 + 0x10dc91c]
push dword [ebp - 0x1028]
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
mov dword [ebp - 0x100c], 1
jmp 0x103a3d5
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
inc dword [ebp - 0x100c]
cmp ax, bx
je 0x103a5ec
push ebx
push 0x800
lea eax, [ebp - 0x1004]
push eax
push ebx
push ebx
push ebx
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
mov dword [ebp - 0x1010], ebx
call dword [sym.imp.SETUPAPI.dll_SetupGetLineTextW]
test ax, ax
je 0x103a38c
lea eax, [ebp - 0x100c]
push eax
push ebx
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call esi
cmp dword [ebp - 0x1008], ebx
jne 0x103a38c
xor eax, eax
push 0x7f
pop edx
mov word [ebp - reloc.ADVAPI32.dll_RegDeleteValueW], bx
mov ecx, edx
lea edi, [ebp - 0x602]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - reloc.ADVAPI32.dll_RegDeleteValueW], bx
mov ecx, edx
lea edi, [ebp - 0x802]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - reloc.ADVAPI32.dll_RegDeleteValueW], bx
mov ecx, edx
lea edi, [ebp - 0x402]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - reloc.ADVAPI32.dll_RegDeleteValueW], bx
mov ecx, edx
lea edi, [ebp - 0x202]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x1044]
push eax
push 1
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
mov dword [ebp - 0x1024], ebx
call esi
lea eax, [ebp - 0x1038]
push eax
push 2
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call esi
lea eax, [ebp - 0x1040]
push eax
push 3
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call esi
lea eax, [ebp - 0x1030]
push eax
push 4
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call esi
lea eax, [ebp - 0x103c]
push eax
push 5
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call esi
lea eax, [ebp - 0x1034]
push eax
push 6
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call esi
mov edi, dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
push ebx
push 0x200
lea eax, [ebp - 0x404]
push eax
push 7
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call edi
push ebx
push 0x200
lea eax, [ebp - 0x604]
push eax
push 8
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call edi
push ebx
push 0x200
lea eax, [ebp - 0x804]
push eax
push 9
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call edi
push ebx
push 0x200
lea eax, [ebp - 0x204]
push eax
push 0xa
lea eax, reloc.KERNEL32.dll_GetCurrentThreadId
push eax
call edi
cmp word [ebp - reloc.ADVAPI32.dll_RegDeleteValueW], bx
je 0x103a57b
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
mov dword [ebp - 0x1024], 1
push dword [ebp - 0x1024]
lea eax, [ebp - 0x404]
push dword [ebp - 0x1030]
push eax
lea eax, [ebp - 0x804]
push eax
lea eax, [ebp - 0x604]
push eax
push dword [ebp - 0x1040]
push dword [ebp - 0x1038]
push dword [ebp - 0x102c]
call fcn.0103a08f
mov edi, eax
cmp edi, ebx
je 0x103a38c
mov eax, dword [ebp - 0x1034]
mov ecx, dword [ebp - 0x100c]
push ebx
push 0x400
push ebx
push eax
mov dword [edi], ecx
call fcn.01077b80
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov eax, dword [ebp - 0x103c]
mov dword [edi + 0x20], eax
jmp 0x103a38c
inc dword [ebp - 0x1008]
mov eax, dword [ebp - 0x1008]
cmp dword [eax*4 + 0x10dc91c], ebx
mov dword [ebp - 0x1010], 1
jne 0x103a38c
push dword [ebp - 0x1028]
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
xor ax, ax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.01075bbb
leave
ret 8