Function at 0x90d020
Capabilities:
Extract resource via kernel32 functions
Get common file path

Disassembly:
sub esp, 0x318
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x314], eax
mov eax, dword [esp + 0x32c]
push ebx
push ebp
mov ebp, dword [esp + 0x32c]
push esi
mov esi, dword [esp + 0x334]
push edi
push 0xff
mov edi, ecx
lea ecx, [esp + 0x21]
push 0
push ecx
mov ebx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0
mov byte [esp + 0x28], 0
call fcn.00a7ffb0
add esp, 0xc
test ebp, ebp
je 0x90d07e
mov byte [ebp], 0
test edi, edi
jne 0x90d08a
movzx edi, word [esp + 0x32c]
test ebx, ebx
jne 0x90d096
movzx ebx, word [esp + 0x330]
push edi
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov ebx, eax
test ebx, ebx
jne 0x90d0e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x100
mov edi, eax
lea esi, [esp + 0x20]
call fcn.00960a40
add esp, 4
mov edx, esi
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [0xbd6584], ebx
je 0x90d0e0
mov eax, esi
push eax
push str._tError_Finding_Resource___s_n
call fcn.00a7a8b1
add esp, 8
xor eax, eax
jmp 0x90d41a
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x90d136
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x100
mov edi, eax
lea esi, [esp + 0x20]
call fcn.00960a40
add esp, 4
mov ecx, esi
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [0xbd6584], 0
je 0x90d0e0
mov edx, esi
push edx
push str._tError_Loading_Resource___s_n
call fcn.00a7a8b1
add esp, 8
xor eax, eax
jmp 0x90d41a
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
jne 0x90d18a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x100
mov edi, eax
lea esi, [esp + 0x20]
call fcn.00960a40
add esp, 4
mov eax, esi
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [0xbd6584], 0
je 0x90d0e0
mov ecx, esi
push ecx
push str._tError_Locing_Resource___s_n
call fcn.00a7a8b1
add esp, 8
xor eax, eax
jmp 0x90d41a
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
cmp dword [0xbd6584], 0
mov esi, eax
je 0x90d1ab
push esi
push str._tResource_Size:__u_bytes_n
call fcn.00a7a8b1
add esp, 8
cmp esi, 0x10
jbe 0x90d415
cmp byte [edi], 0x89
jne 0x90d1e0
lea ecx, [edi + 1]
mov eax, 0xadf5d4
call fcn.0094c3e0
test eax, eax
jne 0x90d1e0
cmp dword [0xbd6584], eax
je 0x90d415
push str.PNG_Resource._Ignoring_n
jmp 0x90d40d
mov ebx, dword [esp + 0x340]
test ebx, ebx
jne 0x90d21b
mov edx, dword [0xbd6584]
mov eax, dword [esp + 0x14]
push ebx
push edx
push ebx
push eax
lea ecx, [esp + 0x20]
push ecx
push ebx
lea edx, [esi + edi]
push edx
push ebx
push esi
lea eax, [esi + esi]
push eax
push ebx
mov edx, edi
xor ecx, ecx
call fcn.0090e940
add esp, 0x2c
jmp 0x90d415
cmp dword [0xbd6584], 2
jne 0x90d2cd
push 0x103
lea ecx, [esp + 0x225]
push 0
push ecx
mov byte [esp + 0x22c], 0
call fcn.00a7ffb0
push 0x103
lea edx, [esp + 0x12d]
push 0
push edx
mov byte [esp + 0x134], 0
call fcn.00a7ffb0
add esp, 0x18
lea eax, [esp + 0x11c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x90d28d
push 0xaaa51c
lea ecx, [esp + 0x120]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x220]
push edx
push 0
push 0xadf904
lea eax, [esp + 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push esi
push edi
lea ecx, [esp + 0x228]
call fcn.0095b5d0
lea ecx, [esp + 0x228]
push ecx
push str.____Resource_saved_in___s__n
call fcn.00a7a8b1
add esp, 0x10
test bl, 1
je 0x90d3c4
lea edx, [esp + 0x10]
push edx
push esi
push 0xadf924
push 0xadf940
push 0xadf95c
push 0xadf974
push edi
mov dword [esp + 0x2c], 0
call fcn.0095cf80
add esp, 0x1c
cmp eax, 0xffffffff
jne 0x90d332
lea eax, [esp + 0x10]
push eax
push esi
push str.Extract_Only
push str.Wise_Install
push str._Installer
push str._launcher
push edi
call fcn.0095cb10
add esp, 0x1c
cmp eax, 0xffffffff
je 0x90d415
lea ecx, [esp + 0x18]
push ecx
push esi
push 0
push 0
push 0xadf9c0
push 0xadf9e4
push edi
call fcn.0095cf80
add esp, 0x1c
cmp eax, 0xffffffff
jne 0x90d415
lea edx, [esp + 0x18]
push edx
push esi
push 0
push 0
push str.service_Installer
push str.service_launcher
push edi
call fcn.0095cb10
add esp, 0x1c
cmp eax, 0xffffffff
jne 0x90d415
cmp dword [0xbd6584], 0
mov eax, dword [esp + 0x14]
mov dword [eax], 0x64
je 0x90d415
mov eax, dword [esp + 0x10]
cmp eax, 1
jne 0x90d3a5
push str._Launcher_in_Dialog__n
jmp 0x90d40d
cmp eax, 2
jne 0x90d3b1
push str._Installer_in_Dialog__n
jmp 0x90d40d
cmp eax, 4
jne 0x90d3bd
push str._Wise_Installer_in_Dialog__n
jmp 0x90d40d
push str._Extract_in_Dialog__n
jmp 0x90d40d
test bl, 2
je 0x90d415
cmp byte [edi], 0x4d
jne 0x90d415
cmp byte [edi + 1], 0x5a
jne 0x90d415
mov al, byte [edi + 2]
cmp al, 0x90
je 0x90d3ef
cmp al, 0xa
je 0x90d3ef
cmp al, 0x50
je 0x90d3ef
cmp al, 0x40
je 0x90d3ef
test al, al
je 0x90d3ef
cmp al, 0x80
jne 0x90d415
cmp byte [edi + 3], 0
jne 0x90d415
cmp dword [0xbd6584], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0x65
je 0x90d415
push str._Exec_in_RCDATA__n
call fcn.00a7a8b1
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x324]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00a78f21
add esp, 0x318
ret