Function at 0x423490
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x45f946
mov eax, dword fs:[0]
push eax
mov eax, 0xbef8
call fcn.0044bf30
mov eax, dword [0x47b038]
xor eax, esp
mov dword [esp + 0xbef4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47b038]
xor eax, esp
push eax
lea eax, [esp + 0xbf0c]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xbf1c]
mov edi, ecx
push ebx
xor esi, esi
xor ebp, ebp
push str.ProcessSectionVerifyApps_____s__n
mov dword [esp + 0x20], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x50], ebp
call fcn.0043e2c0
mov ecx, dword [edi + 4]
add esp, 8
push esi
lea eax, [esp + 0x6f0c]
push eax
push esi
push ebx
mov dword [esp + 0x70], esi
call fcn.004090a0
test al, al
je 0x427c67
lea ecx, [esp + 0x6f08]
push ecx
push esi
push ebx
push str.__s___d____s__n
call fcn.0043e2c0
push 0x1c2d0
call fcn.0044ad7f
add esp, 0x14
mov dword [esp + 0x20], eax
mov dword [esp + 0xbf14], 0
test eax, eax
je 0x42355c
mov ecx, eax
call fcn.0043d9e0
mov ebp, eax
mov dword [esp + 0x30], eax
jmp 0x423562
xor ebp, ebp
mov dword [esp + 0x30], ebp
push 0x469868
lea edx, [esp + 0x6f0c]
push edx
mov ecx, ebp
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.0043dc30
cmp byte [ebp + 0x1c2cc], 0
mov dword [esp + 0x40], eax
je 0x4235a3
cmp dword [ebp + 0x1c2c8], 0
jg 0x42359b
xor eax, eax
jmp 0x4235b1
lea eax, [ebp + 0x32c8]
jmp 0x4235b1
xor eax, eax
cmp dword [ebp + 0x1c2c8], eax
setle al
dec eax
and eax, ebp
push str.CompareVersion
push eax
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x427c30
push 0x7e
push eax
lea ecx, [esp + 0x27fa]
push ecx
mov word [esp + 0x27fc], ax
call fcn.0044ac90
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x423600
cmp dword [ebp + 0x1c2c8], 1
jg 0x4235f8
xor ecx, ecx
jmp 0x423613
lea ecx, [ebp + 0x3ac8]
jmp 0x423613
cmp dword [ebp + 0x1c2c8], 1
jg 0x42360d
xor ecx, ecx
jmp 0x423613
lea ecx, [ebp + 0x104]
lea edx, [esp + 0x27f0]
mov ebx, 2
nop
movzx eax, word [ecx]
mov word [edx], ax
add ecx, ebx
add edx, ebx
test ax, ax
jne 0x423620
lea edx, [esp + 0x27f0]
push str.CHECK_DOTNET
push edx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x4239f6
push str.CHECK_DOTNET
mov ecx, edi
call fcn.00415fb0
lea eax, [esp + 0x27f0]
push eax
push 0xffffffffffffffff
push 0xa
mov ecx, edi
call fcn.00415ea0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044ac90
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x4236a2
cmp dword [ebp + 0x1c2c8], ebx
jg 0x42369a
xor ecx, ecx
jmp 0x4236b4
lea ecx, [ebp + 0x42c8]
jmp 0x4236b4
cmp dword [ebp + 0x1c2c8], ebx
jg 0x4236ae
xor ecx, ecx
jmp 0x4236b4
lea ecx, [ebp + 0x208]
lea edx, [esp + 0x68]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, ebx
add edx, ebx
test ax, ax
jne 0x4236b8
lea eax, [esp + 0x68]
push eax
push str.wszAppName___s__n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2c92]
push edx
mov word [esp + 0x2c94], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x38ce]
push ecx
mov word [esp + 0x38d0], ax
call fcn.0044ac90
mov esi, dword [esp + 0x60]
mov eax, 3
add esp, 0x20
cmp esi, eax
jle 0x423765
cmp byte [ebp + 0x1c2cc], 0
je 0x42373d
cmp dword [ebp + 0x1c2c8], eax
jg 0x423735
xor ecx, ecx
jmp 0x42374f
lea ecx, [ebp + 0x4ac8]
jmp 0x42374f
cmp dword [ebp + 0x1c2c8], eax
jg 0x423749
xor ecx, ecx
jmp 0x42374f
lea ecx, [ebp + 0x30c]
lea edx, [esp + 0x2c80]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, ebx
add edx, ebx
test ax, ax
jne 0x423756
mov eax, 4
cmp esi, eax
jle 0x4237c8
cmp byte [ebp + 0x1c2cc], 0
je 0x42378b
cmp dword [ebp + 0x1c2c8], eax
jg 0x423783
xor ecx, ecx
jmp 0x42379d
lea ecx, [ebp + 0x52c8]
jmp 0x42379d
cmp dword [ebp + 0x1c2c8], eax
jg 0x423797
xor ecx, ecx
jmp 0x42379d
lea ecx, [ebp + 0x410]
lea edx, [esp + 0x38b0]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, ebx
add edx, ebx
test ax, ax
jne 0x4237a4
lea edx, [esp + 0x38b0]
push edx
push str.We_also_want_to_check_type___s__n
call fcn.0043e2c0
add esp, 8
lea eax, [esp + 0x2c80]
push 0x46c9bc
push eax
xor bl, bl
xor esi, esi
xor ebp, ebp
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x4237fa
mov ecx, edi
call fcn.0041e6e0
mov bl, al
test bl, bl
je 0x4237fa
lea esi, [ebp + 4]
lea ebp, [esi + 1]
lea ecx, [esp + 0x2c80]
push 0x46c9b4
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x423849
lea edx, [esp + 0x38b0]
push str.full
push edx
call fcn.0044b362
add esp, 8
test eax, eax
je 0x423837
cmp word [esp + 0x38b0], 0
jne 0x423849
mov ecx, edi
call fcn.0041e6b0
mov bl, al
test bl, bl
je 0x423849
mov esi, 4
lea eax, [esp + 0x2c80]
push 0x46c9b4
push eax
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x42388d
lea ecx, [esp + 0x38b0]
push str.client
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x42388d
mov ecx, edi
call fcn.0041e680
mov bl, al
test bl, bl
je 0x42388d
mov esi, 4
lea edx, [esp + 0x2c80]
push 0x46c990
push edx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x4238bb
mov ecx, edi
call fcn.0041e650
mov bl, al
test bl, bl
je 0x4238bb
mov esi, 3
lea ebp, [esi + 2]
lea eax, [esp + 0x2c80]
push 0x46c988
push eax
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x4238e6
mov ecx, edi
call fcn.0041e620
mov bl, al
test bl, bl
je 0x4238e6
mov esi, 3
lea ecx, [esp + 0x2c80]
push 0x46c980
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x423911
mov ecx, edi
call fcn.0041e5f0
mov bl, al
test bl, bl
je 0x423911
mov esi, 2
xor eax, eax
mov dword [edi + 0x28bc], eax
mov dword [edi + 0x28b8], eax
test bl, bl
je 0x423985
movzx eax, si
movzx edx, bp
shl eax, 0x10
or eax, edx
push eax
push str.DOTNET_VERSION_combined__d___n
mov dword [edi + 0x28b8], eax
mov dword [edi + 0x28bc], 1
call fcn.0043e2c0
movzx eax, word [edi + 0x28b8]
movzx ecx, word [edi + 0x28ba]
push eax
push ecx
push str.DOTNET_VERSION_return___d____d__n
call fcn.0043e2c0
lea eax, [esp + 0x7c]
mov edx, edi
mov ecx, eax
sub edx, ecx
add esp, 0x14
add edx, 0x28c0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x423976
push 0x208
call fcn.0044b473
mov ecx, dword [edi + 0x28bc]
mov esi, eax
mov eax, dword [edi + 0x28b8]
lea edx, [esp + 0x6c]
push edx
push eax
push ecx
push str._d__d___s_
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
push 0xffffffffffffffff
push 1
push esi
lea ecx, [edi + 0x48c0]
call fcn.004075d0
mov ecx, edi
test bl, bl
je 0x4239dd
lea edx, [esp + 0x27f0]
push edx
mov dword [esp + 0x18], 1
push 0
jmp 0x4239ef
lea eax, [esp + 0x27f0]
push eax
mov dword [esp + 0x18], 0
push 2
push 0xa
call fcn.00415ea0
lea ecx, [esp + 0x27f0]
push str.CHECK_SQLSERVER
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x4247b5
mov ebp, dword [esp + 0x18]
push str.CHECK_SQLSERVER
mov ecx, ebp
call fcn.00415fb0
lea edx, [esp + 0x27f0]
push edx
push 0xffffffffffffffff
push 0xa
mov ecx, ebp
call fcn.00415ea0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a82]
push ecx
mov word [esp + 0x2a84], ax
call fcn.0044ac90
mov esi, dword [esp + 0x3c]
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x423a78
cmp dword [esi + 0x1c2c8], 2
jg 0x423a70
xor ecx, ecx
jmp 0x423a8b
lea ecx, [esi + 0x42c8]
jmp 0x423a8b
cmp dword [esi + 0x1c2c8], 2
jg 0x423a85
xor ecx, ecx
jmp 0x423a8b
lea ecx, [esi + 0x208]
lea edx, [esp + 0x2a78]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x423a92
lea edx, [esp + 0x2a78]
push edx
push str.wszAppName___s__n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2c92]
push ecx
mov word [esp + 0x2c94], ax
call fcn.0044ac90
mov edi, dword [esp + 0x54]
mov eax, 4
add esp, 0x14
cmp edi, eax
jle 0x423b31
cmp byte [esi + 0x1c2cc], 0
je 0x423aff
cmp dword [esi + 0x1c2c8], eax
jg 0x423af7
xor ecx, ecx
jmp 0x423b11
lea ecx, [esi + 0x52c8]
jmp 0x423b11
cmp dword [esi + 0x1c2c8], eax
jg 0x423b0b
xor ecx, ecx
jmp 0x423b11
lea ecx, [esi + 0x410]
lea edx, [esp + 0x2c80]
jmp 0x423b20
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x423b20
lea edx, [esp + 0x2c80]
push edx
push str.wszInstancesNameToCheck___s__n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x38c2]
push ecx
mov word [esp + 0x38c4], ax
call fcn.0044ac90
mov eax, 5
add esp, 0x14
cmp edi, eax
jle 0x423bb3
cmp byte [esi + 0x1c2cc], 0
je 0x423b89
cmp dword [esi + 0x1c2c8], eax
jg 0x423b81
xor ecx, ecx
jmp 0x423b9b
lea ecx, [esi + 0x5ac8]
jmp 0x423b9b
cmp dword [esi + 0x1c2c8], eax
jg 0x423b95
xor ecx, ecx
jmp 0x423b9b
lea ecx, [esi + 0x514]
lea edx, [esp + 0x38b0]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x423ba2
lea edx, [esp + 0x38b0]
push edx
push str.wszEditionToCheck___s__n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2882]
push ecx
mov word [esp + 0x2884], ax
call fcn.0044ac90
push 0x20019
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a4a0
mov esi, eax
add esp, 0x20
test esi, esi
jbe 0x42407e
imul eax, eax, 0x104
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044b473
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x42407e
push 0x20019
push esi
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a4c0
add esp, 0x14
test eax, eax
jle 0x42407e
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
mov esi, eax
push ebx
push str._______Instances___s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2c80], 0
je 0x423c95
lea eax, [esp + 0x2c80]
push ebx
push eax
call fcn.0044b362
add esp, 8
test eax, eax
je 0x423c95
push str._______Instances_not_matched__Continue..._n
call fcn.0043e2c0
add esp, 4
jmp 0x42406d
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3ace]
push ecx
mov word [esp + 0x3ad0], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x30b2]
push eax
mov word [esp + 0x30b4], dx
call fcn.0044ac90
add esp, 0x24
cmp word [esp + 0x38b0], 0
je 0x423dec
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2e92]
push edx
mov word [esp + 0x2e94], cx
call fcn.0044ac90
push 0x20019
lea eax, [esp + 0x2e98]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x20
test eax, eax
je 0x423d4f
lea ecx, [esp + 0x2e88]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.0043e2c0
add esp, 0xc
cmp word [esp + 0x2e88], 0
je 0x423dec
lea edx, [esp + 0x2e88]
push edx
lea eax, [esp + 0x6c]
push str.SOFTWAREMicrosoftMicrosoft_SQL_Server_sSetup
push eax
call edi
lea ecx, [esp + 0x74]
push ecx
push str._______Look_at___s__for_edition_n
call fcn.0043e2c0
push 0x20019
lea edx, [esp + 0x30a8]
push edx
push str.Edition
lea eax, [esp + 0x88]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x28
test eax, eax
je 0x423dec
lea ecx, [esp + 0x3090]
push ecx
push str._______Edition___s__n
call fcn.0043e2c0
lea edx, [esp + 0x3098]
push edx
lea eax, [esp + 0x38bc]
push eax
call fcn.0044b362
add esp, 0x10
test eax, eax
je 0x423dec
push str._______Edition_did_not_match..._n
call fcn.0043e2c0
add esp, 4
jmp 0x42406d
push ebx
lea ecx, [esp + 0x6c]
push str.SOFTWAREMicrosoftMicrosoft_SQL_Server_sMSSQLServerCurrentVersion
push ecx
call edi
lea edx, [esp + 0x74]
push edx
push str._______Look_at___s__for_current_version_n
call fcn.0043e2c0
push 0x20019
lea eax, [esp + 0x3ad0]
push eax
push str.CurrentVersion
lea ecx, [esp + 0x88]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x28
test eax, eax
je 0x423ed5
lea edx, [esp + 0x3ab8]
push edx
push str._______current_version___s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x423e85
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x3ab8]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x423e60
lea edx, [esp + 0x2870]
push edx
jmp 0x424060
lea eax, [esp + 0x3ab8]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, ebp
call fcn.0041e350
cmp eax, 2
jne 0x423ec8
xor eax, eax
jmp 0x423eb0
movzx ecx, word [esp + eax + 0x3ab8]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x423eb0
lea edx, [esp + 0x2870]
push edx
jmp 0x424060
push str._____Somehow_current_version_is_missing__use_differnt_reg_key_to_check
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x34ae]
push ecx
mov word [esp + 0x34b0], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2ea2]
push eax
mov word [esp + 0x2ea4], dx
call fcn.0044ac90
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32be]
push edx
mov word [esp + 0x32c0], cx
call fcn.0044ac90
push 0x20019
lea eax, [esp + 0x32c4]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x3c
test eax, eax
je 0x423f70
lea ecx, [esp + 0x3298]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.0043e2c0
add esp, 0xc
cmp word [esp + 0x3298], 0
je 0x42406d
lea edx, [esp + 0x3298]
push edx
lea eax, [esp + 0x34a4]
push str.SOFTWAREMicrosoftMicrosoft_SQL_Server_sMSSQLServerCurrentVersion
push eax
call edi
lea ecx, [esp + 0x34ac]
push ecx
push str._______Look_at___s__for_version_n
call fcn.0043e2c0
push 0x20019
lea edx, [esp + 0x2ea0]
push edx
push str.CurrentVersion
lea eax, [esp + 0x34c0]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x28
test eax, eax
je 0x42406d
lea ecx, [esp + 0x2e88]
push ecx
push str._______wszOtherVersion___s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x42401a
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x2e88]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x424000
jmp 0x424058
lea edx, [esp + 0x2e88]
push edx
lea eax, [esp + 0x2874]
push eax
mov ecx, ebp
call fcn.0041e350
cmp eax, 2
jne 0x424058
xor eax, eax
jmp 0x424040
movzx ecx, word [esp + eax + 0x2e88]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x424040
lea ecx, [esp + 0x2870]
push ecx
push str._______wszExistVersion_version___s__n
call fcn.0043e2c0
add esp, 8
add ebx, 0x208
sub esi, 1
jne 0x423c55
jmp 0x424084
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp + 0xc]
call fcn.00444240
test eax, eax
je 0x42452c
push 0x20219
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a4a0
mov esi, eax
add esp, 0xc
test esi, esi
jbe 0x42452c
imul eax, eax, 0x104
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044b473
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x42452c
push 0x20219
push esi
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a4c0
add esp, 0x14
test eax, eax
jle 0x42452c
mov esi, eax
push ebx
push str._______Instances___s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2c80], 0
je 0x424141
lea eax, [esp + 0x2c80]
push ebx
push eax
call fcn.0044b362
add esp, 8
test eax, eax
je 0x424141
push str._______Instances_not_matched__Continue..._n
call fcn.0043e2c0
add esp, 4
jmp 0x42451d
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2e9e]
push ecx
mov word [esp + 0x2ea0], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x34c2]
push eax
mov word [esp + 0x34c4], dx
call fcn.0044ac90
add esp, 0x24
cmp word [esp + 0x38b0], 0
je 0x424298
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32a2]
push edx
mov word [esp + 0x32a4], cx
call fcn.0044ac90
push 0x20219
lea eax, [esp + 0x32a8]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x20
test eax, eax
je 0x4241fb
lea ecx, [esp + 0x3298]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.0043e2c0
add esp, 0xc
cmp word [esp + 0x3298], 0
je 0x424298
lea edx, [esp + 0x3298]
push edx
lea eax, [esp + 0x6c]
push str.SOFTWAREMicrosoftMicrosoft_SQL_Server_sSetup
push eax
call edi
lea ecx, [esp + 0x74]
push ecx
push str._______Look_at___s__for_edition_n
call fcn.0043e2c0
push 0x20219
lea edx, [esp + 0x34b8]
push edx
push str.Edition
lea eax, [esp + 0x88]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x28
test eax, eax
je 0x424298
lea ecx, [esp + 0x34a0]
push ecx
push str._______Edition___s__n
call fcn.0043e2c0
lea edx, [esp + 0x34a8]
push edx
lea eax, [esp + 0x38bc]
push eax
call fcn.0044b362
add esp, 0x10
test eax, eax
je 0x424298
push str._______Edition_did_not_match..._n
call fcn.0043e2c0
add esp, 4
jmp 0x42451d
push ebx
lea ecx, [esp + 0x6c]
push str.SOFTWAREMicrosoftMicrosoft_SQL_Server_sMSSQLServerCurrentVersion
push ecx
call edi
lea edx, [esp + 0x74]
push edx
push str._______Look_at___s__for_current_version_n
call fcn.0043e2c0
push 0x20219
lea eax, [esp + 0x2ea0]
push eax
push str.CurrentVersion
lea ecx, [esp + 0x88]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x28
test eax, eax
je 0x424385
lea edx, [esp + 0x2e88]
push edx
push str._______current_version___s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x424335
xor eax, eax
jmp 0x424310
movzx ecx, word [esp + eax + 0x2e88]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x424310
lea edx, [esp + 0x2870]
push edx
jmp 0x424510
lea eax, [esp + 0x2e88]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, ebp
call fcn.0041e350
cmp eax, 2
jne 0x424378
xor eax, eax
jmp 0x424360
movzx ecx, word [esp + eax + 0x2e88]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x424360
lea edx, [esp + 0x2870]
push edx
jmp 0x424510
push str._____Somehow_current_version_is_missing__use_differnt_reg_key_to_check
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309e]
push ecx
mov word [esp + 0x30a0], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x3ad2]
push eax
mov word [esp + 0x3ad4], dx
call fcn.0044ac90
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32be]
push edx
mov word [esp + 0x32c0], cx
call fcn.0044ac90
push 0x20219
lea eax, [esp + 0x32c4]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x3c
test eax, eax
je 0x424420
lea ecx, [esp + 0x3298]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.0043e2c0
add esp, 0xc
cmp word [esp + 0x3298], 0
je 0x42451d
lea edx, [esp + 0x3298]
push edx
lea eax, [esp + 0x3094]
push str.SOFTWAREMicrosoftMicrosoft_SQL_Server_sMSSQLServerCurrentVersion
push eax
call edi
lea ecx, [esp + 0x309c]
push ecx
push str._______Look_at___s__for_version_n
call fcn.0043e2c0
push 0x20219
lea edx, [esp + 0x3ad0]
push edx
push str.CurrentVersion
lea eax, [esp + 0x30b0]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044a470
add esp, 0x28
test eax, eax
je 0x42451d
lea ecx, [esp + 0x3ab8]
push ecx
push str._______wszOtherVersion___s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x4244ca
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x3ab8]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x4244b0
jmp 0x424508
lea edx, [esp + 0x3ab8]
push edx
lea eax, [esp + 0x2874]
push eax
mov ecx, ebp
call fcn.0041e350
cmp eax, 2
jne 0x424508
xor eax, eax
jmp 0x4244f0
movzx ecx, word [esp + eax + 0x3ab8]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x4244f0
lea ecx, [esp + 0x2870]
push ecx
push str._______wszExistVersion_version___s__n
call fcn.0043e2c0
add esp, 8
add ebx, 0x208
sub esi, 1
jne 0x424101
xor ebp, ebp
xor edi, edi
cmp word [esp + 0x2870], bp
je 0x42453d
lea edi, [ebp + 1]
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x2a78]
mov edx, ebx
mov ecx, eax
sub edx, ecx
add edx, 0x28c0
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, bp
jne 0x424554
cmp edi, 1
jne 0x424738
lea edx, [esp + 0x2870]
push edx
push str.wszExistVersion____s_n
call fcn.0043e2c0
add esp, 8
xor eax, eax
jmp 0x424590
movzx ecx, word [esp + eax + 0x2870]
mov word [esp + eax + 0x2e88], cx
add eax, 2
cmp cx, bp
jne 0x424590
lea eax, [esp + 0x2e88]
push 0x2e
push eax
call fcn.0044b416
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x42461e
lea edx, [esp + 0x2e88]
xor ecx, ecx
push edx
mov word [esi], cx
call fcn.0044b40b
mov ebx, eax
lea eax, [esi + 2]
lea edx, [esp + 0x2e8c]
add esp, 4
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4245e3
lea eax, [esp + 0x2e88]
push 0x2e
push eax
call fcn.0044b416
add esp, 8
test eax, eax
je 0x424630
lea edx, [esp + 0x2e88]
xor ecx, ecx
push edx
mov word [eax], cx
call fcn.0044b40b
mov ebp, eax
jmp 0x42462d
lea eax, [esp + 0x2e88]
push eax
call fcn.0044b40b
mov ebx, eax
add esp, 4
mov esi, dword [esp + 0x18]
movzx ecx, bx
movzx edx, bp
shl ecx, 0x10
or ecx, edx
xor eax, eax
push 0x206
mov dword [esi + 0x28b8], ecx
push eax
lea ecx, [esp + 0x34aa]
push ecx
mov dword [esi + 0x28bc], 1
mov word [esp + 0x34ac], ax
call fcn.0044ac90
mov eax, 3
add esp, 0xc
cmp dword [esp + 0x40], eax
jle 0x4246c5
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x1c2cc], 0
je 0x42469b
cmp dword [ecx + 0x1c2c8], eax
jg 0x424693
xor ecx, ecx
jmp 0x4246ad
add ecx, 0x4ac8
jmp 0x4246ad
cmp dword [ecx + 0x1c2c8], eax
jg 0x4246a7
xor ecx, ecx
jmp 0x4246ad
add ecx, 0x30c
lea edx, [esp + 0x34a0]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4246b4
cmp word [esp + 0x34a0], 0
je 0x424704
lea edx, [esp + 0x2870]
push edx
lea eax, [esp + 0x34a4]
push eax
mov ecx, esi
call fcn.0041e350
test eax, eax
jg 0x424704
push 0
push str.Version_desired_not_matched__return___d___n
mov dword [esi + 0x28bc], 0
call fcn.0043e2c0
add esp, 8
mov ecx, dword [esi + 0x28b8]
push ecx
push str.SQL_VERSION_combined__d___n
call fcn.0043e2c0
movzx edx, word [esi + 0x28b8]
movzx eax, word [esi + 0x28ba]
push edx
push eax
push str.SQL_return___d____d__n
call fcn.0043e2c0
add esp, 0x14
mov ebx, esi
xor ebp, ebp
jmp 0x424744
mov dword [ebx + 0x28bc], ebp
mov dword [ebx + 0x28b8], ebp
push 0x208
call fcn.0044b473
mov edx, dword [ebx + 0x28b8]
lea ecx, [esp + 0x2a7c]
push ecx
mov esi, eax
mov eax, dword [ebx + 0x28bc]
push edx
push eax
push str._d__d___s_
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
push 0xffffffffffffffff
push 1
push esi
lea ecx, [ebx + 0x48c0]
call fcn.004075d0
cmp edi, ebp
je 0x42479c
lea ecx, [esp + 0x27f0]
push ecx
mov dword [esp + 0x18], 1
push ebp
jmp 0x4247ac
lea edx, [esp + 0x27f0]
push edx
mov dword [ebx + 0x28b8], ebp
push 2
push 0xa
mov ecx, ebx
call fcn.00415ea0
lea eax, [esp + 0x27f0]
push str.VERIFY_INI_DATE
push eax
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x42494d
mov ecx, dword [esp + 0x18]
push str.VERIFY_INI_DATE
call fcn.00415fb0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32a2]
push edx
mov word [esp + 0x32a4], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a8e]
push ecx
mov word [esp + 0x2a90], ax
call fcn.0044ac90
mov esi, dword [esp + 0x48]
add esp, 0x18
cmp byte [esi + 0x1c2cc], 0
je 0x42483f
cmp dword [esi + 0x1c2c8], 2
jg 0x424837
xor eax, eax
jmp 0x424852
lea eax, [esi + 0x42c8]
jmp 0x424852
cmp dword [esi + 0x1c2c8], 2
jg 0x42484c
xor eax, eax
jmp 0x424852
lea eax, [esi + 0x208]
push eax
lea edx, [esp + 0x329c]
push 0x46451c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x424887
cmp dword [esi + 0x1c2c8], 3
jg 0x42487f
xor eax, eax
jmp 0x42489a
lea eax, [esi + 0x4ac8]
jmp 0x42489a
cmp dword [esi + 0x1c2c8], 3
jg 0x424894
xor eax, eax
jmp 0x42489a
lea eax, [esi + 0x30c]
push eax
lea eax, [esp + 0x2a7c]
push 0x46451c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov esi, dword [esp + 0x24]
add esp, 0xc
lea ecx, [esp + 0x3298]
push ecx
mov ecx, esi
call fcn.004160e0
lea edx, [esp + 0x2a78]
push edx
mov ecx, esi
call fcn.004160e0
lea eax, [esp + 0x3298]
push eax
push str.______s__n
call fcn.0043e2c0
lea ecx, [esp + 0x2a80]
push ecx
push str.______s__n
call fcn.0043e2c0
add esp, 0x10
lea edx, [esp + 0x3298]
push edx
mov ecx, esi
call fcn.0041ad20
mov ebx, eax
lea eax, [esp + 0x2a78]
push eax
mov ecx, esi
call fcn.0041ad20
push ebx
push str.__dwInfDateInCD_______d__n
mov esi, eax
call fcn.0043e2c0
push esi
push str.__dwInfDateInDest_____d__n
call fcn.0043e2c0
add esp, 0x10
test esi, esi
jbe 0x42494d
mov dword [esp + 0x14], 1
cmp ebx, esi
jbe 0x42494d
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x27f0]
push str.CHECK_PRODUCT_ARP
push ecx
call fcn.0044b362
mov ebx, dword [esp + 0x20]
add esp, 8
test eax, eax
jne 0x424a2d
push str.CHECK_PRODUCT_ARP
mov ecx, ebx
call fcn.00415fb0
lea edx, [esp + 0x27f0]
push edx
push 0xffffffffffffffff
push 0xa
mov ecx, ebx
call fcn.00415ea0
push 0x1058
lea eax, [esp + 0x1754]
push 0
push eax
call fcn.0044ac90
mov ebp, dword [esp + 0x3c]
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x4249c6
cmp dword [ebp + 0x1c2c8], 2
jg 0x4249be
xor eax, eax
jmp 0x4249d9
lea eax, [ebp + 0x42c8]
jmp 0x4249d9
cmp dword [ebp + 0x1c2c8], 2
jg 0x4249d3
xor eax, eax
jmp 0x4249d9
lea eax, [ebp + 0x208]
lea ecx, [esp + 0x1750]
push ecx
push eax
mov ecx, ebx
call fcn.0041b4e0
cmp byte [esp + 0x2790], 0
mov ecx, ebx
je 0x424a10
lea edx, [esp + 0x27f0]
push edx
push 0
push 0xa
mov dword [esp + 0x20], 1
call fcn.00415ea0
jmp 0x424a31
lea eax, [esp + 0x27f0]
push eax
push 2
push 0xa
mov dword [ebx + 0x28b8], 0
call fcn.00415ea0
jmp 0x424a31
mov ebp, dword [esp + 0x30]
lea ecx, [esp + 0x27f0]
push str.VERIFY_FILE_ARP
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
je 0x424a6b
lea edx, [esp + 0x27f0]
push str.VERIFY_INI_ARP
push edx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x425b96
mov ebx, dword [esp + 0x18]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x287a]
push ecx
mov word [esp + 0x287c], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x38c6]
push eax
mov word [esp + 0x38c8], dx
call fcn.0044ac90
add esp, 0x18
cmp byte [ebp + 0x1c2cc], 0
je 0x424acc
cmp dword [ebp + 0x1c2c8], 2
jg 0x424ac4
xor eax, eax
jmp 0x424adf
lea eax, [ebp + 0x42c8]
jmp 0x424adf
cmp dword [ebp + 0x1c2c8], 2
jg 0x424ad9
xor eax, eax
jmp 0x424adf
lea eax, [ebp + 0x208]
push eax
lea ecx, [esp + 0x2874]
push 0x46451c
push ecx
call esi
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x424b10
cmp dword [ebp + 0x1c2c8], 3
jg 0x424b08
xor eax, eax
jmp 0x424b23
lea eax, [ebp + 0x4ac8]
jmp 0x424b23
cmp dword [ebp + 0x1c2c8], 3
jg 0x424b1d
xor eax, eax
jmp 0x424b23
lea eax, [ebp + 0x30c]
push eax
lea edx, [esp + 0x38b4]
push 0x46451c
push edx
call esi
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x34b6]
push ecx
mov word [esp + 0x34b8], ax
call fcn.0044ac90
mov eax, 5
add esp, 0x18
cmp dword [esp + 0x40], eax
jle 0x424ba0
cmp byte [ebp + 0x1c2cc], 0
je 0x424b7b
cmp dword [ebp + 0x1c2c8], eax
jg 0x424b73
xor eax, eax
jmp 0x424b8d
lea eax, [ebp + 0x5ac8]
jmp 0x424b8d
cmp dword [ebp + 0x1c2c8], eax
jg 0x424b87
xor eax, eax
jmp 0x424b8d
lea eax, [ebp + 0x514]
push eax
lea edx, [esp + 0x34a4]
push 0x46451c
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x2870]
push eax
mov ecx, ebx
call fcn.004160e0
lea ecx, [esp + 0x38b0]
push ecx
mov ecx, ebx
call fcn.004160e0
lea edx, [esp + 0x2870]
push edx
push str.______s__n
call fcn.0043e2c0
lea eax, [esp + 0x38b8]
push eax
push str.______s__n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3ad2]
push edx
mov word [esp + 0x3ad4], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2eae]
push ecx
mov word [esp + 0x2eb0], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36da]
push eax
mov word [esp + 0x36dc], dx
call fcn.0044ac90
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0xa6]
push edx
mov word [esp + 0xa8], cx
call fcn.0044ac90
add esp, 0x40
push 0x1058
lea eax, [esp + 0x6fc]
push 0
push eax
call fcn.0044ac90
add esp, 0xc
cmp word [esp + 0x34a0], 0
lea ecx, [esp + 0x38b0]
je 0x424cb9
push ecx
lea edx, [esp + 0x2874]
push edx
push str.____Verify_with_Arp_Key___s__and_Product_name___s__n
call fcn.0043e2c0
add esp, 0xc
lea eax, [esp + 0x6f8]
push eax
lea ecx, [esp + 0x38b4]
push ecx
lea edx, [esp + 0x34a8]
push edx
mov ecx, ebx
call fcn.0041c190
jmp 0x424cc9
lea eax, [esp + 0x6f8]
push eax
push ecx
mov ecx, ebx
call fcn.0041b4e0
xor eax, eax
jmp 0x424cd0
movzx ecx, word [esp + eax + 0x1530]
mov word [esp + eax + 0x68], cx
add eax, 2
test cx, cx
jne 0x424cd0
mov edx, dword [esp + 0x1744]
mov eax, dword [esp + 0x1740]
push edx
push eax
push str._dwMajor___d__dwMinor___d__n
call fcn.0043e2c0
mov ecx, dword [esp + 0x1758]
mov edx, dword [esp + 0x1754]
push ecx
push edx
push str._dwBuild___d__dwRevision___d__n
call fcn.0043e2c0
add esp, 0x18
cmp byte [esp + 0x1738], 0
je 0x42585f
mov ecx, dword [ebx + 0xc]
push str..cab
lea eax, [esp + 0x2874]
mov edi, 1
push eax
mov dword [esp + 0x1c], edi
call fcn.00442110
test eax, eax
je 0x424eac
push str.CAB_file..._n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x309e]
push edx
mov word [esp + 0x30a0], cx
call fcn.0044ac90
mov ecx, dword [ebx + 0xc]
add esp, 0x10
lea eax, [esp + 0x3090]
push eax
push 0
push 0x46cee8
call fcn.00442cd0
test eax, eax
je 0x424eac
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2a82]
push edx
mov word [esp + 0x2a84], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x32ae]
push ecx
mov word [esp + 0x32b0], ax
call fcn.0044ac90
lea edx, [esp + 0x2888]
push 0x7c
push edx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x424e23
xor ecx, ecx
mov word [eax], cx
mov edi, edi
movzx edx, word [esp + ecx + 0x2870]
mov word [esp + ecx + 0x2a78], dx
add ecx, 2
test dx, dx
jne 0x424df0
add eax, 2
lea edx, [esp + 0x3298]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x424e14
push 0xa48
call fcn.0044ad7f
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0xbf14], edi
test eax, eax
je 0x424e4a
mov ecx, eax
call fcn.0043de80
mov esi, eax
jmp 0x424e4c
xor esi, esi
lea edx, [esp + 0x3090]
push edx
lea eax, [esp + 0x329c]
push eax
lea ecx, [esp + 0x2a80]
push ecx
mov ecx, esi
mov dword [esp + 0xbf20], 0xffffffff
call fcn.0043e050
xor eax, eax
jmp 0x424e80
movzx ecx, word [esp + eax + 0x3090]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x424e80
test esi, esi
je 0x424eac
mov ecx, esi
call fcn.0043e0e0
push esi
call fcn.0044ad0a
add esp, 4
mov ecx, dword [ebx + 0xc]
push str..zip
lea edx, [esp + 0x2874]
push edx
mov byte [esp + 0x27], 0
call fcn.00442110
test eax, eax
je 0x4250b6
push str.ZIP_file..._n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309e]
push ecx
mov word [esp + 0x30a0], ax
call fcn.0044ac90
add esp, 0x10
lea edx, [esp + 0x3090]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x4250b6
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x32a2]
push ecx
mov word [esp + 0x32a4], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a8e]
push eax
mov word [esp + 0x2a90], dx
call fcn.0044ac90
lea ecx, [esp + 0x2888]
push 0x7c
push ecx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x424fa3
xor edx, edx
mov word [eax], dx
xor ecx, ecx
lea ebx, [ebx]
movzx edx, word [esp + ecx + 0x2870]
mov word [esp + ecx + 0x3298], dx
add ecx, 2
test dx, dx
jne 0x424f70
add eax, 2
lea edx, [esp + 0x2a78]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x424f94
mov ecx, dword [ebx + 0xc]
push 0
lea eax, [esp + 0x329c]
push eax
call fcn.004421d0
test al, al
je 0x4250b6
lea ecx, [esp + 0x2a78]
push ecx
lea edx, [esp + 0x3094]
push edx
lea eax, [esp + 0x3cc8]
push 0x46a12c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [esp + 0x32a8]
push ecx
lea edx, [esp + 0x2a8c]
push edx
push str.Start_extract_File_____s__from___s__n
call fcn.0043e2c0
lea eax, [esp + 0x32b4]
push 0
push eax
call fcn.0043d2f0
lea ecx, [esp + 0x2a9c]
push ecx
push str.tszFileName___s__n
mov esi, eax
mov dword [esp + 0x84], 0
call fcn.0043e2c0
lea edx, [esp + 0x4f4]
push edx
lea eax, [esp + 0x88]
push eax
push edi
lea ecx, [esp + 0x2ab0]
push ecx
push esi
call fcn.0043ad50
add esp, 0x40
test eax, eax
jne 0x4250ad
mov edx, dword [esp + 0x58]
push edx
lea eax, [esp + 0x4d0]
push eax
push str.ze.name___s__at_index__d_n
call fcn.0043e2c0
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0x3ccc]
push ecx
push edx
push esi
call fcn.0043d380
push eax
push str._nRet1__d_n
call fcn.0043e2c0
add esp, 0x20
xor eax, eax
jmp 0x425090
movzx ecx, word [esp + eax + 0x3cc0]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x425090
mov byte [esp + 0x1f], 1
push esi
call fcn.0043d3a0
add esp, 4
mov edi, 4
xor esi, esi
cmp dword [esp + 0x40], edi
jle 0x425167
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309a]
push ecx
mov word [esp + 0x309c], ax
call fcn.0044ac90
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x425104
cmp dword [ebp + 0x1c2c8], edi
jg 0x4250fc
xor eax, eax
jmp 0x425116
lea eax, [ebp + 0x52c8]
jmp 0x425116
cmp dword [ebp + 0x1c2c8], edi
jg 0x425110
xor eax, eax
jmp 0x425116
lea eax, [ebp + 0x410]
push eax
lea edx, [esp + 0x3094]
push 0x46451c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x309c]
push str.PRODUCTVERSION
push eax
call fcn.0044b362
add esp, 0x14
test eax, eax
jne 0x425146
lea esi, [eax + 1]
lea ecx, [esp + 0x3090]
push str.FILEVERSION
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
je 0x425167
test esi, esi
jne 0x4254b1
lea edx, [esp + 0x27f0]
push str.VERIFY_INI_ARP
xor ebp, ebp
push edx
mov dword [esp + 0x4c], ebp
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x42536d
push 0x206
lea ecx, [esp + 0x2a7e]
push ebp
push ecx
mov word [esp + 0x2a84], ax
call fcn.0044ac90
push 0x1211c
call fcn.0044ad7f
add esp, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0xbf14], 2
cmp eax, ebp
je 0x4251de
push ebp
push ebp
lea edx, [esp + 0x2878]
push edx
mov ecx, eax
call fcn.00409e40
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x4251e4
xor esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0xbf14], 0xffffffff
cmp esi, ebp
je 0x425384
lea eax, [esp + 0x2a78]
push eax
push 2
push str.Version
push str.Version
mov ecx, esi
call fcn.004090e0
lea ecx, [esp + 0x2a78]
push ecx
push str.____wszVersion_____s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2a78], bp
je 0x42535b
lea edx, [esp + 0x2a78]
push edx
push str.____Parse_Version_String____s__n
call fcn.0043e2c0
xor edi, edi
push 0x1c2d0
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x34], edi
call fcn.0044ad7f
add esp, 0xc
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 3
test eax, eax
je 0x425280
mov ecx, eax
call fcn.0043d9e0
mov esi, eax
jmp 0x425282
xor esi, esi
push 0x461aa4
lea eax, [esp + 0x2a7c]
push eax
mov ecx, esi
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.0043dc30
mov ebx, eax
test ebx, ebx
jle 0x4252bd
push 0
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov dword [esp + 0x2c], eax
cmp ebx, 1
jle 0x4252d8
push 1
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov dword [esp + 0x34], eax
cmp ebx, 2
jle 0x4252f3
push 2
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov dword [esp + 0x28], eax
cmp ebx, 3
jle 0x42530c
push 3
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov edi, eax
test esi, esi
je 0x425320
mov ecx, esi
call fcn.0043d490
push esi
call fcn.0044ad0a
add esp, 4
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
movzx ebp, dx
movzx eax, cx
shl ebp, 0x10
or ebp, eax
mov eax, dword [esp + 0x28]
push edi
push eax
movzx esi, ax
push ecx
movzx ebx, di
shl esi, 0x10
push edx
or esi, ebx
push str.____Version____d___d___d___d_n
mov dword [esp + 0x58], esi
call fcn.0043e2c0
mov esi, dword [esp + 0x34]
add esp, 0x14
mov ecx, esi
call fcn.00409fe0
push esi
call fcn.0044ad0a
add esp, 4
jmp 0x425384
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.004452e0
mov ebp, eax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x174c]
movzx ecx, word [esp + 0x1748]
movzx edx, word [esp + 0x1740]
mov edi, eax
mov word [esp + 0x27ee], ax
movzx eax, ax
mov dword [esp + 0x20], eax
shr edi, 0x10
movzx eax, di
mov dword [esp + 0x28], eax
movzx eax, bp
mov esi, ebp
mov dword [esp + 0x34], eax
shr esi, 0x10
push ebx
push ecx
mov ecx, dword [esp + 0x28]
movzx eax, si
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0x174c]
push eax
mov eax, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
push 0x46ce98
call fcn.0043e2c0
add esp, 0x24
cmp si, word [esp + 0x1740]
jne 0x425461
mov eax, dword [esp + 0x1744]
cmp bp, ax
jne 0x425452
mov eax, dword [esp + 0x1748]
cmp di, ax
jne 0x425443
mov dx, word [esp + 0x174c]
cmp word [esp + 0x27ee], dx
je 0x42547f
mov ax, word [esp + 0x27ee]
mov ecx, dword [esp + 0x174c]
cmp ax, cx
jmp 0x42546b
jbe 0x42544d
mov dword [esp + 0x14], 2
cmp di, ax
jmp 0x425475
jbe 0x42545c
mov dword [esp + 0x14], 2
cmp bp, ax
jmp 0x425475
mov eax, dword [esp + 0x1740]
cmp si, ax
jbe 0x425475
mov dword [esp + 0x14], 2
jae 0x42547f
mov dword [esp + 0x14], 3
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x36a8]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, dword [edx + 0xc]
call fcn.004454d0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x30]
jmp 0x4257fe
cmp esi, 1
jne 0x425848
lea eax, [esp + 0x27f0]
push str.VERIFY_INI_ARP
xor ebp, ebp
push eax
mov dword [esp + 0x4c], ebp
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x4256bf
push 0x206
lea edx, [esp + 0x2a7e]
xor ecx, ecx
push ebp
push edx
mov word [esp + 0x2a84], cx
call fcn.0044ac90
push 0x1211c
call fcn.0044ad7f
add esp, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], edi
cmp eax, ebp
je 0x42552f
push ebp
push ebp
lea ecx, [esp + 0x2878]
push ecx
mov ecx, eax
call fcn.00409e40
mov esi, eax
mov dword [esp + 0x2c], eax
jmp 0x425535
xor esi, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0xbf14], 0xffffffff
test esi, esi
je 0x4256d6
lea edx, [esp + 0x2a78]
push edx
push 2
push str.Version
push str.Version
mov ecx, esi
call fcn.004090e0
lea eax, [esp + 0x2a78]
push eax
push str.____wszVersion_____s__n
call fcn.0043e2c0
add esp, 8
cmp word [esp + 0x2a78], 0
je 0x4256ad
lea ecx, [esp + 0x2a78]
push ecx
push str.____Parse_Version_String____s__n
call fcn.0043e2c0
xor edi, edi
push 0x1c2d0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], edi
call fcn.0044ad7f
add esp, 0xc
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 5
test eax, eax
je 0x4255d2
mov ecx, eax
call fcn.0043d9e0
mov esi, eax
jmp 0x4255d4
xor esi, esi
push 0x461aa4
lea edx, [esp + 0x2a7c]
push edx
mov ecx, esi
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.0043dc30
mov ebx, eax
test ebx, ebx
jle 0x42560f
push 0
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov dword [esp + 0x20], eax
cmp ebx, 1
jle 0x42562a
push 1
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov dword [esp + 0x28], eax
cmp ebx, 2
jle 0x425645
push 2
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov dword [esp + 0x34], eax
cmp ebx, 3
jle 0x42565e
push 3
mov ecx, esi
call fcn.00401860
push eax
call fcn.0044b40b
add esp, 4
mov edi, eax
test esi, esi
je 0x425672
mov ecx, esi
call fcn.0043d490
push esi
call fcn.0044ad0a
add esp, 4
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
movzx ebp, dx
movzx eax, cx
shl ebp, 0x10
or ebp, eax
mov eax, dword [esp + 0x34]
push edi
push eax
movzx esi, ax
push ecx
movzx ebx, di
shl esi, 0x10
push edx
or esi, ebx
push str.____Version____d___d___d___d_n
mov dword [esp + 0x58], esi
call fcn.0043e2c0
mov esi, dword [esp + 0x40]
add esp, 0x14
mov ecx, esi
call fcn.00409fe0
push esi
call fcn.0044ad0a
add esp, 4
jmp 0x4256d6
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.00445e30
mov ebp, eax
mov eax, dword [esp + 0x44]
movzx ebx, word [esp + 0x174c]
movzx ecx, word [esp + 0x1748]
movzx edx, word [esp + 0x1740]
mov edi, eax
mov word [esp + 0x27e6], ax
movzx eax, ax
mov dword [esp + 0x20], eax
shr edi, 0x10
movzx eax, di
mov dword [esp + 0x28], eax
movzx eax, bp
mov esi, ebp
mov dword [esp + 0x34], eax
shr esi, 0x10
push ebx
push ecx
mov ecx, dword [esp + 0x28]
movzx eax, si
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0x174c]
push eax
mov eax, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
push str.Compare_src___d__d__d__d___des___d__d__d__d__n
call fcn.0043e2c0
add esp, 0x24
cmp si, word [esp + 0x1740]
jne 0x4257b3
mov eax, dword [esp + 0x1744]
cmp bp, ax
jne 0x4257a4
mov eax, dword [esp + 0x1748]
cmp di, ax
jne 0x425795
mov dx, word [esp + 0x174c]
cmp word [esp + 0x27e6], dx
je 0x4257d1
mov ax, word [esp + 0x27e6]
mov ecx, dword [esp + 0x174c]
cmp ax, cx
jmp 0x4257bd
jbe 0x42579f
mov dword [esp + 0x14], 2
cmp di, ax
jmp 0x4257c7
jbe 0x4257ae
mov dword [esp + 0x14], 2
cmp bp, ax
jmp 0x4257c7
mov eax, dword [esp + 0x1740]
cmp si, ax
jbe 0x4257c7
mov dword [esp + 0x14], 2
jae 0x4257d1
mov dword [esp + 0x14], 3
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x36a8]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, dword [edx + 0xc]
call fcn.00445980
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x30]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push ecx
push edx
push eax
lea ecx, [esp + 0x3ac8]
push str._d._d._d._d
push ecx
call esi
movzx eax, word [esp + 0x1760]
push ebx
push eax
movzx eax, word [esp + 0x1764]
push eax
movzx eax, word [esp + 0x1764]
push eax
lea edx, [esp + 0x2eb0]
push str._d._d._d._d
push edx
call esi
mov ebx, dword [esp + 0x48]
add esp, 0x30
cmp byte [esp + 0x1f], 0
je 0x42585f
mov ecx, dword [ebx + 0xc]
lea eax, [esp + 0x2870]
push eax
call fcn.00442ba0
lea ecx, [esp + 0x3ab8]
push ecx
push str.wszSrcVersion___s__n
call fcn.0043e2c0
lea edx, [esp + 0x2e90]
push edx
push str.wszInstalledVersion___s__n
call fcn.0043e2c0
lea eax, [esp + 0x78]
push eax
push str.wszInstalledDisplayVersion___s__n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2ba]
push edx
mov word [esp + 0x2bc], cx
call fcn.0044ac90
xor eax, eax
push 0x1ffe
push eax
lea ecx, [esp + 0x4f36]
push ecx
mov word [esp + 0x4f38], ax
call fcn.0044ac90
lea eax, [ebx + 0x28c0]
lea edx, [esp + 0x4f38]
add esp, 0x30
sub edx, eax
mov edi, edi
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4258e0
lea edx, [esp + 0x4f08]
push edx
push 0x46cd74
call fcn.0043e2c0
xor eax, eax
xor esi, esi
add esp, 8
xor edi, edi
xor ebp, ebp
mov word [esp + 0x27c4], si
mov word [esp + 0x27c6], ax
cmp word [esp + 0x4f08], ax
je 0x425b3e
push 0x1c2d0
call fcn.0044ad7f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 6
test eax, eax
je 0x425955
mov ecx, eax
call fcn.0043d9e0
mov ebx, eax
jmp 0x425957
xor ebx, ebx
push 0x46cd70
lea ecx, [esp + 0x4f0c]
push ecx
mov ecx, ebx
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.0043dc30
cmp eax, 3
jl 0x425ae3
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2c8a]
push eax
mov word [esp + 0x2c8c], dx
call fcn.0044ac90
add esp, 0xc
cmp byte [ebx + 0x1c2cc], 0
je 0x4259bd
cmp dword [ebx + 0x1c2c8], 2
jg 0x4259b5
xor ecx, ecx
jmp 0x4259d0
lea ecx, [ebx + 0x42c8]
jmp 0x4259d0
cmp dword [ebx + 0x1c2c8], 2
jg 0x4259ca
xor ecx, ecx
jmp 0x4259d0
lea ecx, [ebx + 0x208]
lea edx, [esp + 0x2c80]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4259d7
cmp word [esp + 0x2c80], ax
je 0x425ae3
lea ecx, [esp + 0x2c80]
push 0x2e
push ecx
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x425a27
lea edx, [esi + 2]
push edx
call fcn.0044b40b
add esp, 4
mov word [esp + 0x27c6], ax
xor eax, eax
mov word [esi], ax
lea ecx, [esp + 0x2c80]
push 0x2e
push ecx
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x425a58
lea edx, [esi + 2]
push edx
call fcn.0044b40b
add esp, 4
mov word [esp + 0x27c4], ax
xor eax, eax
mov word [esi], ax
lea ecx, [esp + 0x2c80]
push 0x2e
push ecx
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x425a84
lea edx, [esi + 2]
push edx
call fcn.0044b40b
add esp, 4
mov bp, ax
xor eax, eax
mov word [esi], ax
lea eax, [esp + 0x2c80]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x425a90
sub eax, edx
sar eax, 1
je 0x425ab4
lea ecx, [esp + 0x2c80]
push ecx
call fcn.0044b40b
add esp, 4
mov di, ax
movzx edx, word [esp + 0x27c6]
movzx eax, word [esp + 0x27c4]
push edx
push eax
movzx ecx, bp
movzx edx, di
push ecx
push edx
push str.wSavedVer______d._d._d._d__n
call fcn.0043e2c0
mov si, word [esp + 0x27d8]
add esp, 0x14
test ebx, ebx
je 0x425af7
mov ecx, ebx
call fcn.0043d490
push ebx
call fcn.0044ad0a
add esp, 4
mov eax, dword [esp + 0x1740]
cmp ax, di
jne 0x425b2d
mov eax, dword [esp + 0x1744]
cmp ax, bp
jne 0x425b2d
mov eax, dword [esp + 0x1748]
cmp ax, si
jne 0x425b2d
mov eax, dword [esp + 0x174c]
mov cx, word [esp + 0x27c6]
cmp ax, cx
jbe 0x425b3e
mov esi, dword [esp + 0x18]
xor eax, eax
mov word [esi + 0x28c0], ax
jmp 0x425b42
mov esi, dword [esp + 0x18]
cmp word [esi + 0x28c0], 0
jne 0x425b96
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x36ac]
push edx
lea eax, [esp + 0x2e90]
push eax
lea ecx, [esp + 0x3ac4]
push ecx
lea edx, [esp + 0x2800]
push edx
lea eax, [esp + 0x2ac]
push str._s_s_s_s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
lea ecx, [esp + 0x298]
push ecx
mov ecx, esi
call fcn.00415fb0
lea edx, [esp + 0x27f0]
push str.VERIFY_FILE_ARP_LOC
push edx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x426872
push 0x206
push eax
lea ecx, [esp + 0x287a]
push ecx
mov word [esp + 0x287c], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2c96]
push eax
mov word [esp + 0x2c98], dx
call fcn.0044ac90
mov ebp, dword [esp + 0x48]
add esp, 0x18
cmp byte [ebp + 0x1c2cc], 0
je 0x425c10
cmp dword [ebp + 0x1c2c8], 2
jg 0x425c08
xor eax, eax
jmp 0x425c23
lea eax, [ebp + 0x42c8]
jmp 0x425c23
cmp dword [ebp + 0x1c2c8], 2
jg 0x425c1d
xor eax, eax
jmp 0x425c23
lea eax, [ebp + 0x208]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea ecx, [esp + 0x2874]
push 0x46451c
push ecx
call esi
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x425c5a
cmp dword [ebp + 0x1c2c8], 3
jg 0x425c52
xor eax, eax
jmp 0x425c6d
lea eax, [ebp + 0x4ac8]
jmp 0x425c6d
cmp dword [ebp + 0x1c2c8], 3
jg 0x425c67
xor eax, eax
jmp 0x425c6d
lea eax, [ebp + 0x30c]
push eax
lea edx, [esp + 0x2c84]
push 0x46451c
push edx
call esi
mov ebx, dword [esp + 0x24]
add esp, 0xc
lea eax, [esp + 0x2870]
push eax
mov ecx, ebx
call fcn.004160e0
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, ebx
call fcn.004160e0
lea edx, [esp + 0x2870]
push edx
push str.______s__n
call fcn.0043e2c0
lea eax, [esp + 0x2c88]
push eax
push str.______s__n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x30aa]
push edx
mov word [esp + 0x30ac], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x4ee]
push ecx
mov word [esp + 0x4f0], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x38e2]
push eax
mov word [esp + 0x38e4], dx
call fcn.0044ac90
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3af6]
push edx
mov word [esp + 0x3af8], cx
call fcn.0044ac90
add esp, 0x40
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x32a2]
push ecx
mov word [esp + 0x32a4], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36be]
push eax
mov word [esp + 0x36c0], dx
call fcn.0044ac90
add esp, 0x18
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x2c80]
mov word [esp + eax + 0x3298], cx
add eax, 2
test cx, cx
jne 0x425d80
lea ecx, [esp + 0x3298]
push 0x7c
push ecx
call fcn.0044b416
add esp, 8
test eax, eax
je 0x425dcf
xor edx, edx
mov word [eax], dx
add eax, 2
lea edx, [esp + 0x36a8]
sub edx, eax
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x425dc0
lea eax, [esp + 0x3298]
push eax
push str.__wszSoftwareName_____s__n
call fcn.0043e2c0
lea ecx, [esp + 0x36b0]
push ecx
push str.__wszInstalledExe_____s__n
call fcn.0043e2c0
push 0x1058
lea edx, [esp + 0x4f1c]
push 0
push edx
call fcn.0044ac90
add esp, 0x1c
lea eax, [esp + 0x4f08]
push eax
lea ecx, [esp + 0x329c]
push ecx
mov ecx, ebx
call fcn.0041b4e0
cmp word [esp + 0x5728], 0
je 0x425e50
lea edx, [esp + 0x36a8]
push edx
lea eax, [esp + 0x572c]
push eax
lea ecx, [esp + 0x2c88]
push 0x461a90
push ecx
call esi
add esp, 0x10
jmp 0x425e5a
xor edx, edx
mov word [esp + 0x2c80], dx
lea eax, [esp + 0x2c80]
push eax
push str.__wszDesFile_____s__n
call fcn.0043e2c0
xor edx, edx
add esp, 8
xor ecx, ecx
xor eax, eax
mov word [esp + 0x27aa], dx
push eax
lea edx, [esp + 0x2c84]
mov word [esp + 0x27ac], cx
mov word [esp + 0x27b2], cx
mov ecx, dword [ebx + 0xc]
push edx
mov word [esp + 0x27b4], ax
call fcn.004421d0
test al, al
je 0x426549
mov ecx, dword [ebx + 0xc]
push str..cab
lea eax, [esp + 0x2874]
push eax
mov dword [esp + 0x1c], 1
call fcn.00442110
test eax, eax
je 0x42603c
push str.CAB_file..._n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x34ae]
push edx
mov word [esp + 0x34b0], cx
call fcn.0044ac90
mov ecx, dword [ebx + 0xc]
add esp, 0x10
lea eax, [esp + 0x34a0]
push eax
push 0
push 0x46cee8
call fcn.00442cd0
test eax, eax
je 0x42603c
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2a82]
push edx
mov word [esp + 0x2a84], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2ae]
push ecx
mov word [esp + 0x2b0], ax
call fcn.0044ac90
lea edx, [esp + 0x2888]
push 0x7c
push edx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x425fb3
xor ecx, ecx
mov word [eax], cx
jmp 0x425f80
movzx edx, word [esp + ecx + 0x2870]
mov word [esp + ecx + 0x2a78], dx
add ecx, 2
test dx, dx
jne 0x425f80
add eax, 2
lea edx, [esp + 0x298]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x425fa4
push 0xa48
call fcn.0044ad7f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 7
test eax, eax
je 0x425fde
mov ecx, eax
call fcn.0043de80
mov esi, eax
jmp 0x425fe0
xor esi, esi
lea edx, [esp + 0x34a0]
push edx
lea eax, [esp + 0x29c]
push eax
lea ecx, [esp + 0x2a80]
push ecx
mov ecx, esi
mov dword [esp + 0xbf20], 0xffffffff
call fcn.0043e050
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x34a0]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x426010
test esi, esi
je 0x42603c
mov ecx, esi
call fcn.0043e0e0
push esi
call fcn.0044ad0a
add esp, 4
mov ecx, dword [ebx + 0xc]
push str..zip
lea edx, [esp + 0x2874]
push edx
mov byte [esp + 0x27], 0
call fcn.00442110
test eax, eax
je 0x426246
push str.ZIP_file..._n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a6]
push ecx
mov word [esp + 0x2a8], ax
call fcn.0044ac90
add esp, 0x10
lea edx, [esp + 0x298]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x426246
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2e92]
push ecx
mov word [esp + 0x2e94], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a8e]
push eax
mov word [esp + 0x2a90], dx
call fcn.0044ac90
lea ecx, [esp + 0x2888]
push 0x7c
push ecx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x426133
xor edx, edx
mov word [eax], dx
xor ecx, ecx
lea ebx, [ebx]
movzx edx, word [esp + ecx + 0x2870]
mov word [esp + ecx + 0x2e88], dx
add ecx, 2
test dx, dx
jne 0x426100
add eax, 2
lea edx, [esp + 0x2a78]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x426124
mov ecx, dword [ebx + 0xc]
push 0
lea eax, [esp + 0x2e8c]
push eax
call fcn.004421d0
test al, al
je 0x426246
lea ecx, [esp + 0x2a78]
push ecx
lea edx, [esp + 0x29c]
push edx
lea eax, [esp + 0x34a8]
push 0x46a12c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [esp + 0x2e98]
push ecx
lea edx, [esp + 0x2a8c]
push edx
push str.Start_extract_File_____s__from___s__n
call fcn.0043e2c0
lea eax, [esp + 0x2ea4]
push 0
push eax
call fcn.0043d2f0
lea ecx, [esp + 0x2a9c]
push ecx
push str.tszFileName___s__n
mov esi, eax
mov dword [esp + 0x88], 0
call fcn.0043e2c0
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0x8c]
push eax
push 1
lea ecx, [esp + 0x2ab0]
push ecx
push esi
call fcn.0043ad50
add esp, 0x40
test eax, eax
jne 0x42623d
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esp + 0x70]
push eax
push str.ze.name___s__at_index__d_n
call fcn.0043e2c0
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x34ac]
push ecx
push edx
push esi
call fcn.0043d380
push eax
push str._nRet__d_n
call fcn.0043e2c0
add esp, 0x20
xor eax, eax
jmp 0x426220
movzx ecx, word [esp + eax + 0x34a0]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x426220
mov byte [esp + 0x1f], 1
push esi
call fcn.0043d3a0
add esp, 4
mov edi, 4
xor esi, esi
cmp dword [esp + 0x40], edi
jle 0x4262f1
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x34aa]
push ecx
mov word [esp + 0x34ac], ax
call fcn.0044ac90
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x426294
cmp dword [ebp + 0x1c2c8], edi
jg 0x42628c
xor eax, eax
jmp 0x4262a6
lea eax, [ebp + 0x52c8]
jmp 0x4262a6
cmp dword [ebp + 0x1c2c8], edi
jg 0x4262a0
xor eax, eax
jmp 0x4262a6
lea eax, [ebp + 0x410]
push eax
lea edx, [esp + 0x34a4]
push 0x46451c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x34ac]
push str.PRODUCTVERSION
push eax
call fcn.0044b362
add esp, 0x14
test eax, eax
jne 0x4262d6
lea esi, [eax + 1]
lea ecx, [esp + 0x34a0]
push str.FILEVERSION
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x4262f1
xor esi, esi
mov dword [esp + 0x3c], 0
test esi, esi
jne 0x4263e8
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2c80]
push edx
lea eax, [esp + 0x2874]
push eax
call fcn.004475b0
test eax, eax
jle 0x426325
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.004475b0
cmp eax, 0xffffffff
jne 0x42634a
mov dword [esp + 0x14], 3
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004452e0
mov ecx, dword [ebp + 0xc]
mov esi, eax
mov bx, ax
mov eax, dword [esp + 0x3c]
mov edi, eax
lea edx, [esp + 0x3c]
mov word [esp + 0x27d6], ax
push edx
lea eax, [esp + 0x2c84]
push eax
shr esi, 0x10
shr edi, 0x10
mov dword [esp + 0x44], 0
call fcn.004452e0
mov ecx, dword [esp + 0x3c]
mov ebp, eax
shr eax, 0x10
mov word [esp + 0x27a8], ax
mov eax, ecx
shr eax, 0x10
mov word [esp + 0x27ae], cx
lea ecx, [esp + 0x3ab8]
mov word [esp + 0x27ac], ax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x2c84]
push edx
mov word [esp + 0x27b2], bp
call fcn.004454d0
jmp 0x4264d3
cmp esi, 1
jne 0x426532
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2c80]
push edx
lea eax, [esp + 0x2874]
push eax
call fcn.004476a0
test eax, eax
jle 0x426415
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.004476a0
cmp eax, 0xffffffff
jne 0x42643a
mov dword [esp + 0x14], 3
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00445e30
mov ecx, dword [ebp + 0xc]
mov esi, eax
mov bx, ax
mov eax, dword [esp + 0x3c]
mov edi, eax
lea edx, [esp + 0x3c]
mov word [esp + 0x27d6], ax
push edx
lea eax, [esp + 0x2c84]
push eax
shr esi, 0x10
shr edi, 0x10
mov dword [esp + 0x44], 0
call fcn.00445e30
mov ecx, dword [esp + 0x3c]
mov ebp, eax
shr eax, 0x10
mov word [esp + 0x27a8], ax
mov eax, ecx
shr eax, 0x10
mov word [esp + 0x27ae], cx
lea ecx, [esp + 0x3ab8]
mov word [esp + 0x27ac], ax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x2c84]
push edx
mov word [esp + 0x27b2], bp
call fcn.00445980
movzx ecx, word [esp + 0x27d6]
push ecx
movzx edx, di
push edx
movzx eax, bx
movzx ecx, si
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
push ecx
lea edx, [esp + 0x30a0]
push str._d._d._d._d
push edx
call esi
movzx eax, word [esp + 0x27c6]
movzx ecx, word [esp + 0x27c4]
push eax
movzx eax, word [esp + 0x27c4]
push ecx
movzx edx, bp
push edx
push eax
lea ecx, [esp + 0x38d8]
push str._d._d._d._d
push ecx
call esi
mov ebx, dword [esp + 0x48]
add esp, 0x30
cmp byte [esp + 0x1f], 0
je 0x426549
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2870]
push edx
call fcn.00442ba0
lea eax, [esp + 0x3090]
push eax
push str.wszSrcVersion___s__n
call fcn.0043e2c0
lea ecx, [esp + 0x38b8]
push ecx
push str.wszInstalledVersion___s__n
call fcn.0043e2c0
lea edx, [esp + 0x3ac8]
push edx
push str.wszInstalledDisplayVersion___s__n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3ce2]
push ecx
mov word [esp + 0x3ce4], ax
call fcn.0044ac90
xor edx, edx
push 0x1ffe
push edx
lea eax, [esp + 0x7f36]
push eax
mov word [esp + 0x7f38], dx
call fcn.0044ac90
lea eax, [ebx + 0x28c0]
lea edx, [esp + 0x7f38]
add esp, 0x30
sub edx, eax
jmp 0x4265d0
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4265d0
lea ecx, [esp + 0x7f08]
push ecx
push 0x46cd74
call fcn.0043e2c0
xor edx, edx
xor esi, esi
add esp, 8
xor edi, edi
xor ebp, ebp
mov word [esp + 0x27cc], si
mov word [esp + 0x27ce], dx
cmp word [esp + 0x7f08], dx
je 0x42681f
push 0x1c2d0
call fcn.0044ad7f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 8
test eax, eax
je 0x426645
mov ecx, eax
call fcn.0043d9e0
mov ebx, eax
jmp 0x426647
xor ebx, ebx
push 0x46cd70
lea eax, [esp + 0x7f0c]
push eax
mov ecx, ebx
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.0043dc30
cmp eax, 3
jl 0x4267c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044ac90
add esp, 0xc
cmp byte [ebx + 0x1c2cc], 0
je 0x4266a7
cmp dword [ebx + 0x1c2c8], 2
jg 0x42669f
xor ecx, ecx
jmp 0x4266ba
lea ecx, [ebx + 0x42c8]
jmp 0x4266ba
cmp dword [ebx + 0x1c2c8], 2
jg 0x4266b4
xor ecx, ecx
jmp 0x4266ba
lea ecx, [ebx + 0x208]
lea edx, [esp + 0x68]
mov edi, edi
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4266c0
cmp word [esp + 0x68], ax
je 0x4267c0
lea eax, [esp + 0x68]
push 0x2e
push eax
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x42670a
lea ecx, [esi + 2]
push ecx
call fcn.0044b40b
add esp, 4
xor edx, edx
mov word [esp + 0x27ce], ax
mov word [esi], dx
lea eax, [esp + 0x68]
push 0x2e
push eax
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x426738
lea ecx, [esi + 2]
push ecx
call fcn.0044b40b
add esp, 4
xor edx, edx
mov word [esp + 0x27cc], ax
mov word [esi], dx
lea eax, [esp + 0x68]
push 0x2e
push eax
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x426761
lea ecx, [esi + 2]
push ecx
call fcn.0044b40b
add esp, 4
xor edx, edx
mov bp, ax
mov word [esi], dx
lea eax, [esp + 0x68]
lea edx, [eax + 2]
jmp 0x426770
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x426770
sub eax, edx
sar eax, 1
je 0x426791
lea eax, [esp + 0x68]
push eax
call fcn.0044b40b
add esp, 4
mov di, ax
movzx ecx, word [esp + 0x27ce]
movzx edx, word [esp + 0x27cc]
push ecx
push edx
movzx eax, bp
movzx ecx, di
push eax
push ecx
push str.wSavedVer______d._d._d._d__n
call fcn.0043e2c0
mov si, word [esp + 0x27e0]
add esp, 0x14
test ebx, ebx
je 0x4267d4
mov ecx, ebx
call fcn.0043d490
push ebx
call fcn.0044ad0a
add esp, 4
mov ax, word [esp + 0x27a8]
cmp ax, di
jne 0x42680e
mov ax, word [esp + 0x27aa]
cmp ax, bp
jne 0x42680e
mov ax, word [esp + 0x27ac]
cmp ax, si
jne 0x42680e
mov ax, word [esp + 0x27ae]
mov cx, word [esp + 0x27ce]
cmp ax, cx
jbe 0x42681f
mov esi, dword [esp + 0x18]
xor edx, edx
mov word [esi + 0x28c0], dx
jmp 0x426823
mov esi, dword [esp + 0x18]
cmp word [esi + 0x28c0], 0
jne 0x426872
lea eax, [esp + 0x3ab8]
push eax
lea ecx, [esp + 0x4cc]
push ecx
lea edx, [esp + 0x38b8]
push edx
lea eax, [esp + 0x309c]
push eax
lea ecx, [esp + 0x3cd0]
push str.VERIFY_FILE_ARP_LOC_s_s_s_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea edx, [esp + 0x3cc0]
push edx
mov ecx, esi
call fcn.00415fb0
lea eax, [esp + 0x27f0]
push str.VERIFY_FILE_SERVICE
push eax
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x427022
mov ebx, dword [esp + 0x18]
push str.VERIFY_FILE_SERVICE
mov ecx, ebx
call fcn.00415fb0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2c8a]
push edx
mov word [esp + 0x2c8c], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2886]
push ecx
mov word [esp + 0x2888], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a9a]
push eax
mov word [esp + 0x2a9c], dx
call fcn.0044ac90
mov esi, dword [esp + 0x54]
add esp, 0x24
cmp byte [esi + 0x1c2cc], 0
je 0x42691b
cmp dword [esi + 0x1c2c8], 2
jg 0x426913
xor eax, eax
jmp 0x42692e
lea eax, [esi + 0x42c8]
jmp 0x42692e
cmp dword [esi + 0x1c2c8], 2
jg 0x426928
xor eax, eax
jmp 0x42692e
lea eax, [esi + 0x208]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea ecx, [esp + 0x2c84]
push 0x46451c
push ecx
call edi
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x426965
cmp dword [esi + 0x1c2c8], 3
jg 0x42695d
xor eax, eax
jmp 0x426978
lea eax, [esi + 0x4ac8]
jmp 0x426978
cmp dword [esi + 0x1c2c8], 3
jg 0x426972
xor eax, eax
jmp 0x426978
lea eax, [esi + 0x30c]
push eax
lea edx, [esp + 0x2874]
push 0x46451c
push edx
call edi
add esp, 0xc
lea eax, [esp + 0x2c80]
push eax
mov ecx, ebx
call fcn.004160e0
lea ecx, [esp + 0x2870]
push ecx
mov ecx, ebx
call fcn.004160e0
lea edx, [esp + 0x2c80]
push edx
push str.______s__n
call fcn.0043e2c0
lea eax, [esp + 0x2878]
push eax
push str.______s__n
call fcn.0043e2c0
push 0x34
call fcn.0044ad7f
add esp, 0x14
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 9
test eax, eax
je 0x4269f5
mov ecx, eax
call fcn.00447f10
mov ebx, eax
jmp 0x4269f7
xor ebx, ebx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
lea edx, [esp + 0x287c]
push edx
push 0
mov ecx, ebx
mov dword [esp + 0xbf28], 0xffffffff
mov dword [esp + 0x60], 0
call fcn.00447d10
mov eax, dword [esp + 0x4c]
test eax, eax
jbe 0x426af0
push eax
call fcn.0044b473
mov ecx, dword [esp + 0x50]
add esp, 4
mov esi, eax
lea eax, [esp + 0x4c]
push eax
push ecx
push esi
lea edx, [esp + 0x287c]
push edx
push 0
mov ecx, ebx
call fcn.00447d10
test al, al
je 0x426add
mov eax, dword [esi + 0xc]
test eax, eax
je 0x426add
push eax
push str.lpBinaryPathName___s__n
call fcn.0043e2c0
mov ecx, dword [esi + 0xc]
add esp, 8
lea edx, [esp + 0x2a78]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x426a82
lea eax, [esp + 0x2a78]
push eax
push str.wszServiceFile___s__n
call fcn.0043e2c0
mov ebp, dword [esp + 0x20]
add esp, 8
push 0x4626e4
push 0x464b78
lea ecx, [esp + 0x2a80]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004426f0
lea edx, [esp + 0x2a78]
push edx
push str.wszServiceFile___s__n
call fcn.0043e2c0
add esp, 8
jmp 0x426ae1
mov ebp, dword [esp + 0x18]
test esi, esi
je 0x426af4
push esi
call fcn.0044b468
add esp, 4
jmp 0x426af4
mov ebp, dword [esp + 0x18]
test ebx, ebx
je 0x426b08
mov ecx, ebx
call fcn.00448160
push ebx
call fcn.0044ad0a
add esp, 4
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [esp + eax + 0x2a78]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x426b10
mov ecx, dword [ebp + 0xc]
push 0
lea eax, [esp + 0x2874]
push eax
call fcn.004421d0
test al, al
je 0x427022
push str..cab
lea ecx, [esp + 0x2c84]
push ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x1c], 1
call fcn.00442110
test eax, eax
je 0x426ccc
push str.CAB_file..._n
call fcn.0043e2c0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36b6]
push eax
mov word [esp + 0x36b8], dx
call fcn.0044ac90
add esp, 0x10
lea ecx, [esp + 0x36a8]
push ecx
mov ecx, dword [ebp + 0xc]
push 0
push 0x46cee8
call fcn.00442cd0
test eax, eax
je 0x426ccc
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a2]
push eax
mov word [esp + 0x2a4], dx
call fcn.0044ac90
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3cd6]
push edx
mov word [esp + 0x3cd8], cx
call fcn.0044ac90
lea eax, [esp + 0x2c98]
push 0x7c
push eax
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x426c43
xor ecx, ecx
mov word [eax], cx
jmp 0x426c10
movzx edx, word [esp + ecx + 0x2c80]
mov word [esp + ecx + 0x298], dx
add ecx, 2
test dx, dx
jne 0x426c10
add eax, 2
lea edx, [esp + 0x3cc0]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x426c34
push 0xa48
call fcn.0044ad7f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 0xa
test eax, eax
je 0x426c6e
mov ecx, eax
call fcn.0043de80
mov esi, eax
jmp 0x426c70
xor esi, esi
lea edx, [esp + 0x36a8]
push edx
lea eax, [esp + 0x3cc4]
push eax
lea ecx, [esp + 0x2a0]
push ecx
mov ecx, esi
mov dword [esp + 0xbf20], 0xffffffff
call fcn.0043e050
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x36a8]
mov word [esp + eax + 0x2c80], cx
add eax, 2
test cx, cx
jne 0x426ca0
test esi, esi
je 0x426ccc
mov ecx, esi
call fcn.0043e0e0
push esi
call fcn.0044ad0a
add esp, 4
mov ecx, dword [ebp + 0xc]
push str..zip
lea edx, [esp + 0x2c84]
push edx
xor bl, bl
call fcn.00442110
test eax, eax
je 0x426ed3
push str.ZIP_file..._n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3cce]
push ecx
mov word [esp + 0x3cd0], ax
call fcn.0044ac90
add esp, 0x10
lea edx, [esp + 0x3cc0]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x426ed3
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309a]
push ecx
mov word [esp + 0x309c], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2e9e]
push eax
mov word [esp + 0x2ea0], dx
call fcn.0044ac90
lea ecx, [esp + 0x2c98]
push 0x7c
push ecx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x426dc3
xor edx, edx
mov word [eax], dx
xor ecx, ecx
jmp 0x426d90
movzx edx, word [esp + ecx + 0x2c80]
mov word [esp + ecx + 0x3090], dx
add ecx, 2
test dx, dx
jne 0x426d90
add eax, 2
lea edx, [esp + 0x2e88]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x426db4
mov ecx, dword [ebp + 0xc]
push 0
lea eax, [esp + 0x3094]
push eax
call fcn.004421d0
test al, al
je 0x426ed3
lea ecx, [esp + 0x2e88]
push ecx
lea edx, [esp + 0x3cc4]
push edx
lea eax, [esp + 0x4d0]
push 0x46a12c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [esp + 0x30a0]
push ecx
lea edx, [esp + 0x2e9c]
push edx
push str.Start_extract_File_____s__from___s__n
call fcn.0043e2c0
lea eax, [esp + 0x30ac]
push 0
push eax
call fcn.0043d2f0
lea ecx, [esp + 0x2eac]
push ecx
push str.tszFileName___s__n
mov esi, eax
mov dword [esp + 0x7c], 0
call fcn.0043e2c0
lea edx, [esp + 0x2c4]
push edx
lea eax, [esp + 0x80]
push eax
push 1
lea ecx, [esp + 0x2ec0]
push ecx
push esi
call fcn.0043ad50
add esp, 0x40
test eax, eax
jne 0x426eca
mov edx, dword [esp + 0x50]
push edx
lea eax, [esp + 0x2a0]
push eax
push str.ze.name___s__at_index__d_n
call fcn.0043e2c0
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x4d4]
push ecx
push edx
push esi
call fcn.0043d380
push eax
push str._nRet__d_n
call fcn.0043e2c0
add esp, 0x20
xor eax, eax
jmp 0x426eb0
movzx ecx, word [esp + eax + 0x4c8]
mov word [esp + eax + 0x2c80], cx
add eax, 2
test cx, cx
jne 0x426eb0
mov bl, 1
push esi
call fcn.0043d3a0
add esp, 4
mov edi, 4
xor esi, esi
cmp dword [esp + 0x40], edi
jle 0x426f82
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x36b2]
push ecx
mov word [esp + 0x36b4], ax
call fcn.0044ac90
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp byte [eax + 0x1c2cc], 0
je 0x426f24
cmp dword [eax + 0x1c2c8], edi
jg 0x426f1d
xor eax, eax
jmp 0x426f35
add eax, 0x52c8
jmp 0x426f35
cmp dword [eax + 0x1c2c8], edi
jg 0x426f30
xor eax, eax
jmp 0x426f35
add eax, 0x410
push eax
lea edx, [esp + 0x36ac]
push 0x46451c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x36b4]
push str.PRODUCTVERSION
push eax
call fcn.0044b362
add esp, 0x14
test eax, eax
jne 0x426f65
lea esi, [eax + 1]
lea ecx, [esp + 0x36a8]
push str.FILEVERSION
push ecx
call fcn.0044b362
add esp, 8
test eax, eax
je 0x426f82
test esi, esi
jne 0x426fc0
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x2870]
push edx
lea eax, [esp + 0x2c84]
push eax
call fcn.004475b0
test eax, eax
jle 0x426fa6
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x2870]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x2c84]
push edx
call fcn.004475b0
jmp 0x427001
cmp esi, 1
jne 0x42700e
lea eax, [esp + 0x2870]
push eax
lea ecx, [esp + 0x2c84]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004476a0
test eax, eax
jle 0x426fe9
mov dword [esp + 0x14], 2
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x2870]
push edx
lea eax, [esp + 0x2c84]
push eax
call fcn.004476a0
cmp eax, 0xffffffff
jne 0x42700e
mov dword [esp + 0x14], 3
test bl, bl
je 0x427022
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00442ba0
lea edx, [esp + 0x27f0]
push str.VERIFY_FILE
push edx
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x427bd5
push 0x206
push eax
lea ecx, [esp + 0x3ed2]
push ecx
mov word [esp + 0x3ed4], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x40e6]
push eax
mov word [esp + 0x40e8], dx
call fcn.0044ac90
mov edi, dword [esp + 0x48]
add esp, 0x18
cmp byte [edi + 0x1c2cc], 0
je 0x42709c
cmp dword [edi + 0x1c2c8], 2
jg 0x427094
xor eax, eax
jmp 0x4270af
lea eax, [edi + 0x42c8]
jmp 0x4270af
cmp dword [edi + 0x1c2c8], 2
jg 0x4270a9
xor eax, eax
jmp 0x4270af
lea eax, [edi + 0x208]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea ecx, [esp + 0x3ecc]
push 0x46451c
push ecx
call esi
add esp, 0xc
cmp byte [edi + 0x1c2cc], 0
je 0x4270e6
cmp dword [edi + 0x1c2c8], 3
jg 0x4270de
xor eax, eax
jmp 0x4270f9
lea eax, [edi + 0x4ac8]
jmp 0x4270f9
cmp dword [edi + 0x1c2c8], 3
jg 0x4270f3
xor eax, eax
jmp 0x4270f9
lea eax, [edi + 0x30c]
push eax
lea edx, [esp + 0x40d4]
push 0x46451c
push edx
call esi
mov ebp, dword [esp + 0x24]
add esp, 0xc
lea eax, [esp + 0x3ec8]
push eax
mov ecx, ebp
call fcn.004160e0
lea ecx, [esp + 0x40d0]
push ecx
mov ecx, ebp
call fcn.004160e0
lea edx, [esp + 0x3ec8]
push edx
push str.______s__n
call fcn.0043e2c0
lea eax, [esp + 0x40d8]
push eax
push str.______s__n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x4702]
push edx
mov word [esp + 0x4704], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x4d26]
push ecx
mov word [esp + 0x4d28], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x4512]
push eax
mov word [esp + 0x4514], dx
call fcn.0044ac90
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x492e]
push edx
mov word [esp + 0x4930], cx
call fcn.0044ac90
xor ecx, ecx
add esp, 0x40
xor edx, edx
mov word [esp + 0x27b2], cx
push edx
lea ecx, [esp + 0x40d4]
xor eax, eax
push ecx
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x27b8], ax
mov word [esp + 0x27bc], dx
mov word [esp + 0x27be], ax
call fcn.004421d0
test al, al
je 0x427899
mov ecx, dword [ebp + 0xc]
push str..cab
lea edx, [esp + 0x3ecc]
push edx
mov dword [esp + 0x1c], 1
call fcn.00442110
test eax, eax
je 0x42738c
push str.CAB_file..._n
call fcn.0043e2c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x36b6]
push ecx
mov word [esp + 0x36b8], ax
call fcn.0044ac90
mov ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esp + 0x36a8]
push edx
push 0
push 0x46cee8
call fcn.00442cd0
test eax, eax
je 0x42738c
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a2]
push ecx
mov word [esp + 0x2a4], ax
call fcn.0044ac90
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x3cd6]
push eax
mov word [esp + 0x3cd8], dx
call fcn.0044ac90
lea ecx, [esp + 0x3ee0]
push 0x7c
push ecx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x427303
xor edx, edx
mov word [eax], dx
xor ecx, ecx
lea ecx, [ecx]
movzx edx, word [esp + ecx + 0x3ec8]
mov word [esp + ecx + 0x298], dx
add ecx, 2
test dx, dx
jne 0x4272d0
add eax, 2
lea edx, [esp + 0x3cc0]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4272f4
push 0xa48
call fcn.0044ad7f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 0xb
test eax, eax
je 0x42732e
mov ecx, eax
call fcn.0043de80
mov esi, eax
jmp 0x427330
xor esi, esi
lea eax, [esp + 0x36a8]
push eax
lea ecx, [esp + 0x3cc4]
push ecx
lea edx, [esp + 0x2a0]
push edx
mov ecx, esi
mov dword [esp + 0xbf20], 0xffffffff
call fcn.0043e050
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x36a8]
mov word [esp + eax + 0x3ec8], cx
add eax, 2
test cx, cx
jne 0x427360
test esi, esi
je 0x42738c
mov ecx, esi
call fcn.0043e0e0
push esi
call fcn.0044ad0a
add esp, 4
mov ecx, dword [ebp + 0xc]
push str..zip
lea eax, [esp + 0x3ecc]
push eax
mov byte [esp + 0x27], 0
call fcn.00442110
test eax, eax
je 0x427596
push str.ZIP_file..._n
call fcn.0043e2c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3cce]
push edx
mov word [esp + 0x3cd0], cx
call fcn.0044ac90
add esp, 0x10
lea eax, [esp + 0x3cc0]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x427596
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x309a]
push edx
mov word [esp + 0x309c], cx
call fcn.0044ac90
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a8e]
push ecx
mov word [esp + 0x2a90], ax
call fcn.0044ac90
lea edx, [esp + 0x3ee0]
push 0x7c
push edx
call fcn.0044b416
add esp, 0x20
test eax, eax
je 0x427483
xor ecx, ecx
mov word [eax], cx
jmp 0x427450
movzx edx, word [esp + ecx + 0x3ec8]
mov word [esp + ecx + 0x3090], dx
add ecx, 2
test dx, dx
jne 0x427450
add eax, 2
lea edx, [esp + 0x2a78]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x427474
mov ecx, dword [ebp + 0xc]
push 0
lea edx, [esp + 0x3094]
push edx
call fcn.004421d0
test al, al
je 0x427596
lea eax, [esp + 0x2a78]
push eax
lea ecx, [esp + 0x3cc4]
push ecx
lea edx, [esp + 0x4d0]
push 0x46a12c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x30a0]
push eax
lea ecx, [esp + 0x2a8c]
push ecx
push str.Start_extract_File_____s__from___s__n
call fcn.0043e2c0
lea edx, [esp + 0x30ac]
push 0
push edx
call fcn.0043d2f0
mov esi, eax
lea eax, [esp + 0x2a9c]
push eax
push str.tszFileName___s__n
mov dword [esp + 0x80], 0
call fcn.0043e2c0
lea ecx, [esp + 0x2c4]
push ecx
lea edx, [esp + 0x84]
push edx
push 1
lea eax, [esp + 0x2ab0]
push eax
push esi
call fcn.0043ad50
add esp, 0x40
test eax, eax
jne 0x42758d
mov ecx, dword [esp + 0x54]
push ecx
lea edx, [esp + 0x2a0]
push edx
push str.ze.name___s__at_index__d_n
call fcn.0043e2c0
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x4d4]
push eax
push ecx
push esi
call fcn.0043d380
push eax
push str._nRet__d_n
call fcn.0043e2c0
add esp, 0x20
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x4c8]
mov word [esp + eax + 0x3ec8], cx
add eax, 2
test cx, cx
jne 0x427570
mov byte [esp + 0x1f], 1
push esi
call fcn.0043d3a0
add esp, 4
mov ebx, 4
xor esi, esi
cmp dword [esp + 0x40], ebx
jle 0x427641
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36b2]
push eax
mov word [esp + 0x36b4], dx
call fcn.0044ac90
add esp, 0xc
cmp byte [edi + 0x1c2cc], 0
je 0x4275e4
cmp dword [edi + 0x1c2c8], ebx
jg 0x4275dc
xor eax, eax
jmp 0x4275f6
lea eax, [edi + 0x52c8]
jmp 0x4275f6
cmp dword [edi + 0x1c2c8], ebx
jg 0x4275f0
xor eax, eax
jmp 0x4275f6
lea eax, [edi + 0x410]
push eax
lea ecx, [esp + 0x36ac]
push 0x46451c
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [esp + 0x36b4]
push str.PRODUCTVERSION
push edx
call fcn.0044b362
add esp, 0x14
test eax, eax
jne 0x427626
lea esi, [eax + 1]
lea eax, [esp + 0x36a8]
push str.FILEVERSION
push eax
call fcn.0044b362
add esp, 8
test eax, eax
jne 0x427641
xor esi, esi
mov dword [esp + 0x38], 0
test esi, esi
jne 0x427738
lea ecx, [esp + 0x40d0]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x3ecc]
push edx
call fcn.004475b0
test eax, eax
jle 0x427675
mov dword [esp + 0x14], 2
lea eax, [esp + 0x40d0]
push eax
lea ecx, [esp + 0x3ecc]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004475b0
cmp eax, 0xffffffff
jne 0x42769a
mov dword [esp + 0x14], 3
mov ebp, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x3ecc]
push eax
call fcn.004452e0
mov esi, eax
mov bx, ax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x40d4]
mov edi, eax
push edx
shr esi, 0x10
shr edi, 0x10
mov word [esp + 0x27e6], ax
mov dword [esp + 0x40], 0
call fcn.004452e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov ebp, eax
shr eax, 0x10
mov word [esp + 0x27b0], ax
mov eax, ecx
shr eax, 0x10
mov word [esp + 0x27b4], ax
mov word [esp + 0x27b6], cx
lea eax, [esp + 0x48f0]
push eax
lea ecx, [esp + 0x40d4]
push ecx
mov ecx, dword [edx + 0xc]
mov word [esp + 0x27ba], bp
call fcn.004454d0
jmp 0x427823
cmp esi, 1
jne 0x427882
lea ecx, [esp + 0x40d0]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x3ecc]
push edx
call fcn.004476a0
test eax, eax
jle 0x427765
mov dword [esp + 0x14], 2
lea eax, [esp + 0x40d0]
push eax
lea ecx, [esp + 0x3ecc]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004476a0
cmp eax, 0xffffffff
jne 0x42778a
mov dword [esp + 0x14], 3
mov ebp, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x3ecc]
push eax
call fcn.00445e30
mov esi, eax
mov bx, ax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x40d4]
mov edi, eax
push edx
shr esi, 0x10
shr edi, 0x10
mov word [esp + 0x27e6], ax
mov dword [esp + 0x40], 0
call fcn.00445e30
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov ebp, eax
shr eax, 0x10
mov word [esp + 0x27b0], ax
mov eax, ecx
shr eax, 0x10
mov word [esp + 0x27b4], ax
mov word [esp + 0x27b6], cx
lea eax, [esp + 0x48f0]
push eax
lea ecx, [esp + 0x40d4]
push ecx
mov ecx, dword [edx + 0xc]
mov word [esp + 0x27ba], bp
call fcn.00445980
movzx eax, word [esp + 0x27de]
push eax
movzx ecx, di
push ecx
movzx edx, bx
movzx eax, si
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push edx
push eax
lea ecx, [esp + 0x46f8]
push str._d._d._d._d
push ecx
call esi
movzx edx, word [esp + 0x27ce]
movzx eax, word [esp + 0x27cc]
push edx
movzx edx, word [esp + 0x27cc]
push eax
movzx ecx, bp
push ecx
push edx
lea eax, [esp + 0x4508]
push str._d._d._d._d
push eax
call esi
mov ebp, dword [esp + 0x48]
add esp, 0x30
cmp byte [esp + 0x1f], 0
je 0x427899
lea ecx, [esp + 0x3ec8]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00442ba0
lea edx, [esp + 0x46e8]
push edx
push str.wszSrcVersion___s__n
call fcn.0043e2c0
lea eax, [esp + 0x44e8]
push eax
push str.wszInstalledVersion___s__n
call fcn.0043e2c0
lea ecx, [esp + 0x4900]
push ecx
push str.wszInstalledDisplayVersion___s__n
call fcn.0043e2c0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x4b1a]
push eax
mov word [esp + 0x4b1c], dx
call fcn.0044ac90
xor ecx, ecx
push 0x1ffe
push ecx
lea edx, [esp + 0x9f36]
push edx
mov word [esp + 0x9f38], cx
call fcn.0044ac90
lea eax, [ebp + 0x28c0]
lea edx, [esp + 0x9f38]
add esp, 0x30
sub edx, eax
jmp 0x427920
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x427920
lea eax, [esp + 0x9f08]
push eax
push 0x46cd74
call fcn.0043e2c0
xor ecx, ecx
xor esi, esi
add esp, 8
xor edi, edi
xor ebp, ebp
mov word [esp + 0x27bc], si
mov word [esp + 0x27be], cx
cmp word [esp + 0x9f08], cx
je 0x427b82
push 0x1c2d0
call fcn.0044ad7f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 0xc
test eax, eax
je 0x427995
mov ecx, eax
call fcn.0043d9e0
mov ebx, eax
jmp 0x427997
xor ebx, ebx
push 0x46cd70
lea edx, [esp + 0x9f0c]
push edx
mov ecx, ebx
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.0043dc30
cmp eax, 3
jl 0x427b23
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x42e2]
push ecx
mov word [esp + 0x42e4], ax
call fcn.0044ac90
add esp, 0xc
cmp byte [ebx + 0x1c2cc], 0
je 0x4279fd
cmp dword [ebx + 0x1c2c8], 2
jg 0x4279f5
xor ecx, ecx
jmp 0x427a10
lea ecx, [ebx + 0x42c8]
jmp 0x427a10
cmp dword [ebx + 0x1c2c8], 2
jg 0x427a0a
xor ecx, ecx
jmp 0x427a10
lea ecx, [ebx + 0x208]
lea edx, [esp + 0x42d8]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x427a17
cmp word [esp + 0x42d8], ax
je 0x427b23
lea edx, [esp + 0x42d8]
push 0x2e
push edx
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x427a67
lea eax, [esi + 2]
push eax
call fcn.0044b40b
add esp, 4
xor ecx, ecx
mov word [esp + 0x27be], ax
mov word [esi], cx
lea edx, [esp + 0x42d8]
push 0x2e
push edx
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x427a98
lea eax, [esi + 2]
push eax
call fcn.0044b40b
add esp, 4
xor ecx, ecx
mov word [esp + 0x27bc], ax
mov word [esi], cx
lea edx, [esp + 0x42d8]
push 0x2e
push edx
call fcn.0044b43c
mov esi, eax
add esp, 8
test esi, esi
je 0x427ac4
lea eax, [esi + 2]
push eax
call fcn.0044b40b
add esp, 4
xor ecx, ecx
mov bp, ax
mov word [esi], cx
lea eax, [esp + 0x42d8]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x427ad0
sub eax, edx
sar eax, 1
je 0x427af4
lea edx, [esp + 0x42d8]
push edx
call fcn.0044b40b
add esp, 4
mov di, ax
movzx eax, word [esp + 0x27be]
movzx ecx, word [esp + 0x27bc]
push eax
push ecx
movzx edx, bp
movzx eax, di
push edx
push eax
push str.wSavedVer______d._d._d._d__n
call fcn.0043e2c0
mov si, word [esp + 0x27d0]
add esp, 0x14
test ebx, ebx
je 0x427b37
mov ecx, ebx
call fcn.0043d490
push ebx
call fcn.0044ad0a
add esp, 4
mov ax, word [esp + 0x27b0]
cmp ax, di
jne 0x427b71
mov ax, word [esp + 0x27b2]
cmp ax, bp
jne 0x427b71
mov ax, word [esp + 0x27b4]
cmp ax, si
jne 0x427b71
mov ax, word [esp + 0x27b6]
mov cx, word [esp + 0x27be]
cmp ax, cx
jbe 0x427b82
mov esi, dword [esp + 0x18]
xor ecx, ecx
mov word [esi + 0x28c0], cx
jmp 0x427b86
mov esi, dword [esp + 0x18]
cmp word [esi + 0x28c0], 0
jne 0x427bd5
lea edx, [esp + 0x48f0]
push edx
lea eax, [esp + 0x4d04]
push eax
lea ecx, [esp + 0x44e8]
push ecx
lea edx, [esp + 0x46f4]
push edx
lea eax, [esp + 0x4b08]
push str.VERIFY_FILE_s_s_s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea ecx, [esp + 0x4af8]
push ecx
mov ecx, esi
call fcn.00415fb0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
push edi
push esi
push str.nFinalRet___d____nRet___d__n
call fcn.0043e2c0
add esp, 0xc
cmp edi, 3
jne 0x427bf5
mov esi, edi
jmp 0x427c0e
cmp edi, 1
jne 0x427c03
cmp esi, 3
je 0x427c12
mov esi, edi
jmp 0x427c0e
cmp edi, 2
jne 0x427c12
test esi, esi
jne 0x427c12
mov esi, edi
mov dword [esp + 0x48], esi
push esi
push str.nFinalRet___d__n
call fcn.0043e2c0
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x38]
add esp, 8
mov ecx, ebp
call fcn.0043d490
push ebp
call fcn.0044ad0a
mov ecx, dword [edi + 4]
add esp, 4
push 0
lea edx, [esp + 0x6f0c]
push edx
inc esi
push esi
push ebx
mov dword [esp + 0x70], esi
call fcn.004090a0
test al, al
jne 0x423519
mov eax, dword [esp + 0x48]
jmp 0x427c69
mov eax, ebp
mov ecx, dword [esp + 0xbf0c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xbef4]
xor ecx, esp
call fcn.0044ac80
add esp, 0xbf04
ret 4