Function at 0x10002590
Capabilities:
Check if file exists
Create directory
Delete directory
Get common file path
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x2a88
call fcn.10055920
xor ebx, ebx
sub esp, eax
lea esi, [ebp - 0x2624]
mov eax, dword [esp + eax]
mov dword [esp], 0x104
mov edi, eax
lea eax, [ebp - 0x282c]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetTempPathW]
xor edx, edx
mov dword [ebp - 0x2a5c], edi
sub esp, 8
mov edi, edx
lea esi, [esi]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0xc], esi
add edi, 1
add eax, ebx
mov dword [esp + 4], 0
add ebx, 0x428d
mov dword [esp + 8], eax
lea eax, [ebp - 0x282c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetTempFileNameW]
sub esp, 0x10
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_CreateDirectoryW]
sub esp, 8
test eax, eax
jne 0x10003090
cmp edi, 0x63
jbe 0x100025d8
mov edi, dword [ebp - 0x2a5c]
test eax, eax
je 0x10003b22
mov dword [edi + 0x18], esi
mov eax, esi
test byte [0x10056018], 8
jne 0x100030a8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call sym._ExtractFilesW_24
sub esp, 0x18
mov ebx, eax
test eax, eax
js 0x10003298
mov edx, dword [edi + 0x18]
cmp word [edx], 0
je 0x1000395c
mov ebx, edx
mov esi, esi
lea edi, [edi]
add ebx, 2
cmp word [ebx], 0
jne 0x100026a0
sub ebx, edx
mov eax, ebx
sar eax, 1
mov ecx, dword [edi + 0x1c]
cmp word [ecx], 0
mov dword [ebp - 0x2a5c], ecx
je 0x10003965
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x100026c8
sub ecx, dword [ebp - 0x2a5c]
mov dword [ebp - 0x2a68], ecx
sar ecx, 1
add eax, ecx
mov ecx, dword [sym.imp.ucrtbase.dll_malloc]
lea eax, [eax + eax + 4]
mov dword [ebp - 0x2a64], edx
mov dword [ebp - 0x2a60], eax
mov dword [esp], eax
mov dword [ebp - 0x2a74], ecx
call ecx
mov dword [edi + 0x10], eax
mov esi, eax
test eax, eax
je 0x10003b2c
mov edx, dword [ebp - 0x2a64]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._memcpy
mov edx, dword [ebp - 0x2a68]
mov ecx, dword [ebp - 0x2a5c]
mov eax, 0x5c
mov word [esi + ebx], ax
lea eax, [esi + ebx + 2]
add edx, 2
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0x2a60]
mov ebx, dword [sym.imp.kernel32.dll_GetFileAttributesW]
lea esi, [esi + eax - 8]
mov dword [esi], 0x6e0069
mov dword [esi + 4], 0x66
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call ebx
sub esp, 4
cmp eax, 0xffffffff
je 0x10002830
mov eax, dword [edi + 4]
mov dword [edi + 0x20], 2
test eax, eax
je 0x10002961
mov edx, dword [eax]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0xc], 8
mov dword [esp + 8], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x18]
mov eax, dword [edi + 0x20]
sub esp, 0x14
cmp eax, 1
jne 0x10002958
test byte [0x10056018], 1
jne 0x10003890
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LoadLibraryW]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100038cd
mov dword [esp + 4], 0x1005816b
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
sub esp, 8
test eax, eax
je 0x10003900
call eax
mov dword [esp], esi
mov ebx, eax
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
test ebx, ebx
js 0x10002938
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esi], 0x6c0064
mov dword [esi + 4], 0x6c
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call ebx
sub esp, 4
cmp eax, 0xffffffff
je 0x1000333b
mov eax, dword [edi + 4]
mov dword [edi + 0x20], 1
test eax, eax
jne 0x10002794
jmp 0x100027ca
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], 0x800
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x200c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a68]
mov dword [esp + 4], 0
mov dword [esp], str.Add.Code
call eax
sub esp, 0x18
test eax, eax
jne 0x100033a0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [edi + 0x18]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x24]
mov dword [esp], eax
call sym._RunSetupCommandW_32
sub esp, 0x20
mov ebx, eax
test eax, eax
jns 0x10002c5b
test byte [0x10056018], 4
je 0x10002938
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.RunSetupCommandW_failed:__08lx_n
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
lea esi, [esi]
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
sub esp, 4
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 2
jne 0x10003b36
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], 0x800
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x200c]
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.kernel32.dll_GetPrivateProfileStringW]
mov dword [esp + 4], 0
mov dword [esp], str.Setup_Hooks
mov dword [ebp - 0x2a68], eax
call eax
sub esp, 0x18
test eax, eax
je 0x10002870
cmp word [ebp - 0x200c], 0
je 0x10002c18
lea eax, [ebp - 0x241c]
shr eax, 0x10
mov dword [ebp - 0x2a78], eax
lea eax, [ebp - 0x200c]
mov dword [ebp - 0x2a6c], eax
lea eax, [ebp - 0x2a58]
mov dword [ebp - 0x2a64], eax
nop
test byte [0x10056018], 8
jne 0x10002ef8
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], pe_nt_image_headers32
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x2a64]
mov dword [esp], str.Setup_Hooks
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a6c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2a68]
call eax
sub esp, 0x18
test eax, eax
je 0x100038c0
mov eax, dword [edi + 0x10]
lea ebx, [ebp - 0x100c]
mov dword [esp + 0x10], 0x800
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x2a64]
mov dword [esp + 8], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x2a68]
mov dword [esp + 4], 0
call eax
sub esp, 0x18
test eax, eax
je 0x10002bd8
cmp word [ebp - 0x100c], 0
mov dword [ebp - 0x2a5c], ebx
je 0x10002bd8
nop
lea esi, [esi]
mov eax, dword [ebp - 0x2a5c]
mov dword [esp + 4], 0x100580ca
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x10003060
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], 0x208
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x241c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a64]
mov dword [esp + 4], 0x100580ca
mov dword [esp], eax
mov eax, dword [ebp - 0x2a68]
call eax
sub esp, 0x18
test byte [0x10056018], 8
jne 0x10002c78
lea eax, [ebp - 0x2958]
lea ebx, [edi + 0x18]
xor ecx, ecx
mov dword [esp], eax
lea edx, [ebp - 0x241c]
mov eax, ebx
call sym._expand_command.isra.0
mov eax, dword [ebp - 0x2958]
add eax, eax
mov dword [esp], eax
mov eax, dword [ebp - 0x2a74]
call eax
mov esi, eax
test eax, eax
je 0x10003b2c
lea eax, [ebp - 0x2958]
mov ecx, esi
lea edx, [ebp - 0x241c]
mov dword [esp], eax
mov eax, ebx
call sym._expand_command.isra.0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [edi + 0x18]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov dword [esp + 4], esi
mov eax, dword [edi + 0x24]
mov dword [esp], eax
call sym._RunSetupCommandW_32
sub esp, 0x20
mov ebx, eax
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_free]
test ebx, ebx
js 0x10002938
mov eax, dword [ebp - 0x2a5c]
cmp word [eax], 0
je 0x10002eb0
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x10002bb0
sub eax, dword [ebp - 0x2a5c]
add eax, 2
add dword [ebp - 0x2a5c], eax
mov ebx, dword [ebp - 0x2a5c]
cmp word [ebx], 0
jne 0x10002a90
mov ecx, dword [ebp - 0x2a6c]
cmp word [ecx], 0
mov eax, ecx
je 0x100032d8
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x10002bf0
sub eax, dword [ebp - 0x2a6c]
add eax, 2
add dword [ebp - 0x2a6c], eax
mov esi, dword [ebp - 0x2a6c]
cmp word [esi], 0
jne 0x100029e0
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], 0x800
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x200c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a68]
mov dword [esp + 4], 0
mov dword [esp], str.Add.Code
call eax
sub esp, 0x18
test eax, eax
jne 0x100033a0
mov eax, dword [edi + 0x18]
xor ebx, ebx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
sub esp, 4
jmp 0x10002947
mov eax, dword [ebp - 0x2a78]
test eax, eax
je 0x10002e80
lea eax, [ebp - 0x241c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x10058015
sub esp, 8
test eax, eax
jne 0x10002dae
cmp word [ebp - 0x241c], 0
je 0x10002ed0
nop
lea esi, [esi]
mov ecx, eax
lea eax, [eax + 1]
cmp word [ebp + ecx*2 - 0x241a], 0
jne 0x10002cc0
mov eax, 0x224c
lea ebx, [ebp - 0x241c]
lea esi, [ebp - 0x2836]
mov word [ebp - 0x2958], ax
lea eax, [ebp - 0x2956]
mov dword [ebp - 0x2a70], esi
mov dword [ebp - 0x2a60], ebx
jmp 0x10002d31
cmp dx, 9
je 0x10002e50
cmp dx, 0xa
jne 0x10002dfe
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
lea edx, [ecx - 1]
cmp eax, dword [ebp - 0x2a70]
ja 0x10002d80
test ecx, ecx
jle 0x10002d80
mov ecx, edx
add dword [ebp - 0x2a60], 2
mov esi, dword [ebp - 0x2a60]
movzx edx, word [esi - 2]
cmp dx, 0xd
je 0x10002de0
jbe 0x10002d00
cmp dx, 0x22
je 0x10002e68
cmp dx, 0x5c
jne 0x10002df1
mov ebx, 0x5c5c
add eax, 2
lea edx, [ecx - 1]
mov word [eax - 2], bx
cmp eax, dword [ebp - 0x2a70]
jbe 0x10002d2b
lea esi, [esi]
mov byte [eax], 0x22
test edx, edx
jle 0x10002ee9
mov ecx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], cx
lea eax, [ebp - 0x2958]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Run__s_n
mov dword [esp + 8], str.process_hook_section
mov dword [esp + 4], 0x10056018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x10002af9
mov ebx, 0x725c
add eax, 2
mov word [eax - 2], bx
jmp 0x10002d20
lea esi, [edx - 0x20]
cmp si, 0x5e
jbe 0x10002ec0
mov esi, edx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefsetup_dll]
mov esi, edx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefsetup_dll]
mov esi, edx
and edx, 0xf
shr si, 4
movzx edx, byte [edx + str.0123456789abcdefsetup_dll]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefsetup_dll]
mov byte [eax - 1], dl
mov byte [eax - 2], bl
jmp 0x10002d20
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x10002d20
mov esi, 0x225c
add eax, 2
mov word [eax - 2], si
jmp 0x10002d20
lea eax, [ebp - 0x241c]
mov dword [esp], 0x10058008
mov dword [ebp - 0x2a60], eax
movzx eax, word [ebp - 0x2a60]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x10002dae
mov eax, 2
jmp 0x10002bc2
mov byte [eax], dl
add eax, 1
jmp 0x10002d20
mov byte [ebp - 0x2956], 0x22
mov eax, 0x224c
mov word [ebp - 0x2958], ax
lea eax, [ebp - 0x2956]
lea edx, [eax + 1]
jmp 0x10002d9b
mov eax, dword [ebp - 0x2a6c]
shr eax, 0x10
je 0x100032e8
mov esi, dword [ebp - 0x2a6c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x10058015
sub esp, 8
test eax, eax
jne 0x1000302c
cmp word [esi], 0
je 0x1000331a
mov ecx, esi
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x10002f40
mov ebx, dword [ebp - 0x2a6c]
mov ecx, 0x224c
mov dword [ebp - 0x2a60], edi
lea esi, [ebp - 0xeea]
mov word [ebp - 0x100c], cx
lea ecx, [ebp - 0x100a]
mov dword [ebp - 0x2a5c], ebx
jmp 0x10002fad
cmp ax, 9
je 0x10003190
cmp ax, 0xa
jne 0x100031ae
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
cmp ecx, esi
ja 0x10002ff8
test edx, edx
jle 0x10002ff8
mov edx, eax
add dword [ebp - 0x2a5c], 2
mov eax, dword [ebp - 0x2a5c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x10003218
jbe 0x10002f80
cmp ax, 0x22
je 0x10003200
cmp ax, 0x5c
jne 0x100031a1
mov ebx, 0x5c5c
add ecx, 2
lea eax, [edx - 1]
mov word [ecx - 2], bx
cmp ecx, esi
jbe 0x10002fa7
lea esi, [esi]
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x2a60]
test eax, eax
jle 0x10003333
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x100c]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str._Setup_Hooks__key:__s_n
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x100029ed
test byte [0x10056018], 1
jne 0x10003740
mov eax, dword [edi + 0x18]
mov ebx, 0x80004001
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
sub esp, 4
jmp 0x10002947
mov edi, dword [ebp - 0x2a5c]
mov eax, esi
mov dword [edi + 0x18], esi
test byte [0x10056018], 8
je 0x1000264c
shr eax, 0x10
je 0x100038e0
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x10058015
sub esp, 8
test eax, eax
jne 0x10003264
cmp word [ebp - 0x2624], 0
je 0x10003a1b
mov edx, eax
lea eax, [eax + 1]
cmp word [esi + edx*2 + 2], 0
jne 0x100030e0
mov eax, 0x224c
lea ebx, [ebp - 0xeea]
mov dword [ebp - 0x2a60], edi
lea ecx, [ebp - 0x100a]
mov word [ebp - 0x100c], ax
mov dword [ebp - 0x2a5c], ebx
jmp 0x10003159
cmp ax, 9
je 0x100035f0
cmp ax, 0xa
jne 0x10003626
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
nop
lea esi, [esi]
lea eax, [edx - 1]
cmp ecx, dword [ebp - 0x2a5c]
ja 0x10003230
test edx, edx
jle 0x10003230
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp ax, 0xd
je 0x10003608
jbe 0x10003118
cmp ax, 0x22
je 0x10003680
cmp ax, 0x5c
jne 0x10003619
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x10003140
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x10002fa0
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x10003310
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefsetup_dll]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x10002fa0
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x10002fa0
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x10002fa0
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x2a60]
test eax, eax
jle 0x10003a34
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x100c]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Using_temporary_directory__s_n
mov dword [esp + 8], str.install_cab_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov eax, dword [edi + 0x18]
jmp 0x1000264c
test byte [0x10056018], 4
je 0x10002938
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.ExtractFilesW_failed:__08lx_n
mov dword [esp + 8], str.extract_cab_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x10002938
mov eax, 2
jmp 0x10002c02
movzx eax, word [ebp - 0x2a6c]
mov dword [esp], 0x10058008
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x1000302c
mov byte [ecx], al
add ecx, 1
jmp 0x10002fa0
mov ebx, 0x224c
mov byte [ebp - 0x100a], 0x22
lea ecx, [ebp - 0x100a]
mov word [ebp - 0x100c], bx
lea eax, [ecx + 1]
jmp 0x10003019
mov dword [esi], 0x63006f
mov dword [esi + 4], 0x78
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call ebx
sub esp, 4
cmp eax, 0xffffffff
jne 0x10002851
mov ebx, 0x80004001
test byte [0x10056018], 1
je 0x10002938
mov dword [esp + 0xc], str.No_known_install_file_n
mov dword [esp + 8], str.extract_cab_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x10002938
lea eax, [ebp - 0x2a58]
cmp word [ebp - 0x200c], 0
lea esi, [ebp - 0x200c]
mov dword [ebp - 0x2a64], eax
je 0x10002c5b
test byte [0x10056018], 8
jne 0x10003497
lea esi, [esi]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], pe_nt_image_headers32
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x2a64]
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a68]
mov dword [esp], str.Add.Code
call eax
sub esp, 0x18
test eax, eax
je 0x100038c0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [edi + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2a64]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x24]
mov dword [esp], eax
call sym._RunSetupCommandW_32
sub esp, 0x20
test eax, eax
js 0x10003b0e
cmp word [esi], 0
mov eax, esi
je 0x10003938
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x10003470
sub eax, esi
add eax, 2
add esi, eax
cmp word [esi], 0
je 0x10002c5b
test byte [0x10056018], 8
je 0x100033d0
mov eax, esi
shr eax, 0x10
je 0x10003942
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x10058015
sub esp, 8
test eax, eax
jne 0x100035ba
cmp word [esi], 0
je 0x10003a67
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [esi + edx*2 + 2], 0
jne 0x100034d0
mov eax, 0x224c
mov dword [ebp - 0x2a5c], esi
lea ecx, [ebp - 0x100a]
mov word [ebp - 0x100c], ax
lea eax, [ebp - 0xeea]
mov dword [ebp - 0x2a60], esi
mov esi, eax
mov dword [ebp - 0x2a6c], edi
jmp 0x1000353d
cmp ax, 9
je 0x10003698
cmp ax, 0xa
jne 0x100036b6
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
cmp ecx, esi
ja 0x10003580
test edx, edx
jle 0x10003580
mov edx, eax
add dword [ebp - 0x2a5c], 2
mov eax, dword [ebp - 0x2a5c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x10003728
jbe 0x10003510
cmp ax, 0x22
je 0x10003710
cmp ax, 0x5c
jne 0x100036a9
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x10003530
mov esi, dword [ebp - 0x2a60]
mov edi, dword [ebp - 0x2a6c]
mov byte [ecx], 0x22
test eax, eax
jle 0x10003a80
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x100c]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str._Add.Code__key:__s_n
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x100033d0
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x10003140
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x10003140
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x10003928
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefsetup_dll]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x10003140
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x10003140
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x10003530
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x10003a11
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefsetup_dll]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x10003530
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x10003530
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x10003530
mov eax, dword [ebp - 0x2a5c]
shr eax, 0x10
je 0x10003a88
mov esi, dword [ebp - 0x2a5c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x10058015
sub esp, 8
test eax, eax
jne 0x10003860
cmp word [esi], 0
je 0x10003a46
mov ecx, esi
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x10003788
mov esi, 0x224c
mov dword [ebp - 0x2a60], edi
lea ecx, [ebp - 0x2956]
mov word [ebp - 0x2958], si
lea esi, [ebp - 0x2836]
jmp 0x100037ed
cmp ax, 9
je 0x10003988
cmp ax, 0xa
jne 0x100039a6
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
nop
lea esi, [esi]
lea eax, [edx - 1]
cmp ecx, esi
ja 0x1000382c
test edx, edx
jle 0x1000382c
mov edx, eax
add dword [ebp - 0x2a5c], 2
mov eax, dword [ebp - 0x2a5c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x10003974
jbe 0x100037b8
cmp ax, 0x22
je 0x10003a00
cmp ax, 0x5c
jne 0x10003999
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x100037e0
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x2a60]
test eax, eax
jle 0x10003a5f
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x2958]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Unsupported_hook__s_n
mov dword [esp + 8], str.process_hook_section
mov dword [esp + 4], 0x10056018
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x1000306d
mov dword [esp + 0xc], str.Installing_DLL__registering_in_temporary_location_n
mov dword [esp + 8], str.install_cab_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x100027d7
test byte [0x10056018], 4
jne 0x10003aa6
mov ebx, 0x80004005
jmp 0x10002938
movzx esi, si
mov dword [esp], 0x10058008
mov dword [esp + 4], esi
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x10003264
test byte [0x10056018], 4
jne 0x10003ad4
mov dword [esp], esi
mov ebx, 0x80004005
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
jmp 0x10002938
mov byte [ecx], al
add ecx, 1
jmp 0x10003140
mov eax, 2
jmp 0x1000347e
movzx eax, si
mov dword [esp], 0x10058008
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x100035ba
xor eax, eax
xor ebx, ebx
jmp 0x100026af
mov dword [ebp - 0x2a68], 0
jmp 0x100026e1
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x100037e0
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x100037e0
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x10003a3c
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefsetup_dll]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefsetup_dll]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x100037e0
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x100037e0
mov byte [ecx], al
add ecx, 1
jmp 0x10003530
mov edx, 0x224c
mov byte [ebp - 0x100a], 0x22
lea ecx, [ebp - 0x100a]
mov word [ebp - 0x100c], dx
lea eax, [ecx + 1]
jmp 0x10003251
mov byte [ecx], al
add ecx, 1
jmp 0x100037e0
mov eax, 0x224c
mov byte [ebp - 0x2956], 0x22
lea ecx, [ebp - 0x2956]
mov word [ebp - 0x2958], ax
lea eax, [ecx + 1]
jmp 0x1000384d
mov eax, 0x224c
mov byte [ebp - 0x100a], 0x22
lea ecx, [ebp - 0x100a]
mov word [ebp - 0x100c], ax
lea eax, [ecx + 1]
jmp 0x100035a7
movzx eax, word [ebp - 0x2a5c]
mov dword [esp], 0x10058008
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov edx, eax
jmp 0x10003860
mov dword [esp + 0xc], str.Could_not_get_key_value_n
mov ebx, 0x80004005
mov dword [esp + 8], str.install_inf_file
mov dword [esp + 4], 0x10056018
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x10002938
mov dword [esp + 0xc], str.no_DllRegisterServer_function_n
mov ebx, 0x80004005
mov dword [esp + 8], 0x10058280
mov dword [esp + 4], 0x10056018
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
jmp 0x10002938
mov ebx, eax
test byte [0x10056018], 4
je 0x10002938
jmp 0x1000290a
mov ebx, 0x80004005
jmp 0x10002824
mov ebx, 0x8007000e
jmp 0x10002938
mov dword [esp + 8], 0x137
mov dword [esp + 4], str._home_runner_build_wine_wine_dlls_urlmon_axinstall.c
mov dword [esp], 0x100581d5
call dword [sym.imp.ucrtbase.dll__assert]
lea esi, [esi]
lea edi, [edi]