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

Disassembly:
sub esp, 0x4c
push ebx
xor eax, eax
xor ecx, ecx
push ebp
mov dword [0x412b90], eax
mov dword [0x412fb0], ecx
push esi
mov dword [0x412b94], eax
mov dword [0x412fb4], ecx
push edi
mov dword [0x412b98], eax
mov dword [0x412fb8], ecx
push 0x400
mov dword [0x412b9c], eax
mov dword [0x412fbc], ecx
push 0x412fd8
mov dword [0x412ba0], eax
mov dword [0x412fc0], ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
xor ebx, ebx
cmp eax, ebx
je 0x401fe7
cmp byte [eax + 0x412fd7], 0x5c
jne 0x401fe7
mov byte [eax + 0x412fd7], bl
push str.PACKAGE_INFO
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
cmp esi, ebx
je 0x4026cc
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push esi
push ebx
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
cmp edi, ebx
je 0x4026cc
push 0x4137e0
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, ebx
je 0x402055
mov cl, byte [eax + 0x4137df]
cmp cl, 0x5c
je 0x40203e
cmp cl, 0x2f
jne 0x402044
mov byte [eax + 0x4137df], bl
push 1
push 0x4137e0
call fcn.00401140
add esp, 8
jmp 0x40206d
mov dx, word [0x40eaf0]
mov al, byte [0x40eaf2]
mov word [0x4137e0], dx
mov byte [0x4137e2], al
push 0x4137e0
push str._s_vae.vpkg
push 0x4133d8
call fcn.00405ec2
push 0x40e558
push 0x4133d8
call fcn.00406175
mov esi, eax
push esi
push 1
push ebp
push edi
call fcn.00406044
push esi
call fcn.00405fee
add esp, 0x28
push str.GROUPNAME_INFO
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
cmp edi, ebx
je 0x4020ff
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
cmp esi, ebx
je 0x4020ff
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, eax
cmp ebp, ebx
jbe 0x4020ff
lea ecx, [ebp + 1]
push ecx
call fcn.00405dba
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov dword [0x413be8], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x413be8]
mov byte [eax + ebp], bl
push str.STYLENAME_INFO
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
cmp edi, ebx
je 0x402159
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
cmp esi, ebx
je 0x402159
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, eax
cmp ebp, ebx
jbe 0x402159
lea ecx, [ebp + 1]
push ecx
call fcn.00405dba
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov dword [0x413be4], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x413be4]
mov byte [eax + ebp], bl
push str.VERSIONNAME_INFO
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
cmp edi, ebx
je 0x4021b7
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
cmp esi, ebx
je 0x4021b7
cmp ebp, ebx
jbe 0x4021b7
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, eax
cmp ebp, ebx
jbe 0x4021b7
lea ecx, [ebp + 1]
push ecx
call fcn.00405dba
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov dword [0x413bec], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x413bec]
mov byte [eax + ebp], bl
mov eax, dword [0x413bec]
cmp eax, ebx
je 0x4023fe
mov al, byte [eax]
cmp al, bl
je 0x4023fe
cmp al, 0x50
je 0x4023fe
cmp al, 0x43
push 0x35545
push 0x412fb0
push 0x412b90
push 0x52
push str.3D_Album_CS
jne 0x402247
call fcn.004010a0
mov eax, dword [0x412b90]
add esp, 0x14
cmp eax, ebx
jne 0x40221e
push ebx
push ebx
push str.The_3D_Album_commercial_suite_can_not_be_detected._Please_install_3D_Album_commercial_suite_first.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x10
cmp dword [0x412fb0], ebx
jne 0x402566
push ebx
push ebx
push str.The_serial_number_of_your_3D_Album_commercial_suite_is_invalid._Please_reinstall_3D_Album_commercial_suite.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x10
call fcn.004010a0
push 0xb89
push 0x412fb4
push 0x412b94
push 0x50
push str.3D_Album_PL
call fcn.004010a0
push 0xb89
push 0x412fb8
push 0x412b98
push 0x53
push str.3D_Album_ST
call fcn.004010a0
push 0xb89
push 0x412fbc
push 0x412b9c
push 0x5a
push str.3D_Album_EZ
call fcn.004010a0
add esp, 0x50
push 0xb89
push 0x412fc0
push 0x412ba0
push 0x43
push str.3D_Album_SC
call fcn.004010a0
mov eax, dword [0x412b90]
add esp, 0x14
cmp eax, ebx
jne 0x40239c
cmp dword [0x412b94], ebx
jne 0x40239c
cmp dword [0x412b98], ebx
jne 0x40239c
cmp dword [0x412b9c], ebx
jne 0x40239c
cmp dword [0x412ba0], ebx
jne 0x40239c
push 0xb89
push 0x412fb0
push 0x412b90
push 0x41
push str.3D_Album_TR
call fcn.004010a0
push 0xb89
push 0x412fb4
push 0x412b94
push 0x4c
push str.3D_Album_LE
call fcn.004010a0
push 0xb89
push 0x412fb8
push 0x412b98
push 0x49
push str.3D_Album_IE
call fcn.004010a0
mov eax, dword [0x412b90]
add esp, 0x3c
cmp eax, ebx
mov byte [0x413be0], 1
jne 0x40239c
cmp dword [0x412b94], ebx
jne 0x40239c
cmp dword [0x412b98], ebx
jne 0x40239c
cmp dword [0x412b9c], ebx
jne 0x40239c
cmp dword [0x412ba0], ebx
jne 0x40239c
push ebx
push ebx
push str.The_3D_Album_cannt_be_detected._Please_install_3D_Album_first.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x10
cmp dword [0x412fb0], ebx
jne 0x4023e1
cmp dword [0x412fb4], ebx
jne 0x4023e1
cmp dword [0x412fb8], ebx
jne 0x4023e1
cmp dword [0x412fbc], ebx
jne 0x4023e1
cmp dword [0x412fc0], ebx
jne 0x4023e1
push ebx
push ebx
push str.The_serial_number_of_your_3D_Album_is_invalid._Please_reinstall_3D_Album.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x10
xor eax, eax
cmp dword [eax + 0x412fb0], ebx
jne 0x4023f1
mov dword [eax + 0x412b90], ebx
add eax, 4
cmp eax, 0x14
jl 0x4023e3
jmp 0x402566
push 0xb89
push 0x412fb4
push 0x412b94
push 0x50
push str.3D_Album_PL
call fcn.004010a0
push 0xb89
push 0x412fb8
push 0x412b98
push 0x53
push str.3D_Album_ST
call fcn.004010a0
push 0xb89
push 0x412fbc
push 0x412b9c
push 0x5a
push str.3D_Album_EZ
call fcn.004010a0
push 0xb89
push 0x412fc0
push 0x412ba0
push 0x43
push str.3D_Album_SC
call fcn.004010a0
mov eax, dword [0x412b90]
add esp, 0x50
cmp eax, ebx
jne 0x402501
cmp dword [0x412b94], ebx
jne 0x402525
cmp dword [0x412b98], ebx
jne 0x402525
cmp dword [0x412b9c], ebx
jne 0x402525
cmp dword [0x412ba0], ebx
jne 0x402525
push 0xb89
push 0x412fb0
push 0x412b90
push 0x41
push str.3D_Album_TR
call fcn.004010a0
push 0xb89
push 0x412fb4
push 0x412b94
push 0x4c
push str.3D_Album_LE
call fcn.004010a0
push 0xb89
push 0x412fb8
push 0x412b98
push 0x49
push str.3D_Album_IE
call fcn.004010a0
add esp, 0x3c
mov byte [0x413be0], 1
cmp dword [0x412b94], ebx
jne 0x402525
cmp dword [0x412b98], ebx
jne 0x402525
cmp dword [0x412b9c], ebx
jne 0x402525
cmp dword [0x412ba0], ebx
je 0x40237f
cmp dword [0x412fb4], ebx
jne 0x402549
cmp dword [0x412fb8], ebx
jne 0x402549
cmp dword [0x412fbc], ebx
jne 0x402549
cmp dword [0x412fc0], ebx
je 0x4023c4
xor eax, eax
jmp 0x402550
cmp dword [eax + 0x412fb0], ebx
jne 0x40255e
mov dword [eax + 0x412b90], ebx
add eax, 4
cmp eax, 0x14
jl 0x402550
push str.LICENSE_INFO
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
cmp edi, ebx
je 0x4025c0
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
cmp esi, ebx
je 0x4025c0
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, eax
cmp ebp, ebx
je 0x4025c0
lea ecx, [ebp + 1]
push ecx
call fcn.00405dba
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov dword [0x413bf0], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x413bf0]
mov byte [eax + ebp], bl
mov ebp, dword [esp + 0x60]
xor eax, eax
push 0x7f00
mov ecx, 0xc
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
push ebx
mov dword [esp + 0x34], 0x30
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 0x4015e0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebp
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0x6c
push ebp
mov dword [esp + 0x50], eax
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], 0x10
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], str.main_win
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
je 0x4026cc
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
call esi
push 1
mov edi, eax
call esi
push ebx
push ebp
push ebx
add eax, 0xfffffe20
push ebx
cdq
push 0x1e0
sub eax, edx
push 0x280
sar eax, 1
push eax
lea eax, [edi - 0x280]
cdq
sub eax, edx
sar eax, 1
push eax
push 0x80c80000
push str.3D_Album_Style_Package_Installation
push str.main_win
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 1
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
push ebx
lea edx, [esp + 0x1c]
push edx
call esi
test eax, eax
je 0x4026cc
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
lea esp, [esp]
lea eax, [esp + 0x10]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
call ebp
push ebx
push ebx
push ebx
lea edx, [esp + 0x1c]
push edx
call esi
test eax, eax
jne 0x4026b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret 0x10