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

Disassembly:
push 0xffffffffffffffff
push 0x462ec6
mov eax, dword fs:[0]
push eax
mov eax, 0xbef8
call fcn.0044f450
mov eax, dword [0x47f038]
xor eax, esp
mov dword [esp + 0xbef4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47f038]
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.004412c0
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 0x409a30
test al, al
je 0x429807
lea ecx, [esp + 0x6f08]
push ecx
push esi
push ebx
push str.__s___d____s__n
call fcn.004412c0
push 0x1c2d0
call fcn.0044e29f
add esp, 0x14
mov dword [esp + 0x20], eax
mov dword [esp + 0xbf14], 0
test eax, eax
je 0x4250fc
mov ecx, eax
call fcn.004409e0
mov ebp, eax
mov dword [esp + 0x30], eax
jmp 0x425102
xor ebp, ebp
mov dword [esp + 0x30], ebp
push 0x46ce98
lea edx, [esp + 0x6f0c]
push edx
mov ecx, ebp
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.00440c30
cmp byte [ebp + 0x1c2cc], 0
mov dword [esp + 0x40], eax
je 0x425143
cmp dword [ebp + 0x1c2c8], 0
jg 0x42513b
xor eax, eax
jmp 0x425151
lea eax, [ebp + 0x32c8]
jmp 0x425151
xor eax, eax
cmp dword [ebp + 0x1c2c8], eax
setle al
dec eax
and eax, ebp
push str.CompareVersion
push eax
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x4297d0
push 0x7e
push eax
lea ecx, [esp + 0x27fa]
push ecx
mov word [esp + 0x27fc], ax
call fcn.0044e1b0
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x4251a0
cmp dword [ebp + 0x1c2c8], 1
jg 0x425198
xor ecx, ecx
jmp 0x4251b3
lea ecx, [ebp + 0x3ac8]
jmp 0x4251b3
cmp dword [ebp + 0x1c2c8], 1
jg 0x4251ad
xor ecx, ecx
jmp 0x4251b3
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 0x4251c0
lea edx, [esp + 0x27f0]
push str.CHECK_DOTNET
push edx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x425596
push str.CHECK_DOTNET
mov ecx, edi
call fcn.00416fe0
lea eax, [esp + 0x27f0]
push eax
push 0xffffffffffffffff
push 0xa
mov ecx, edi
call fcn.00416eb0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044e1b0
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x425242
cmp dword [ebp + 0x1c2c8], ebx
jg 0x42523a
xor ecx, ecx
jmp 0x425254
lea ecx, [ebp + 0x42c8]
jmp 0x425254
cmp dword [ebp + 0x1c2c8], ebx
jg 0x42524e
xor ecx, ecx
jmp 0x425254
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 0x425258
lea eax, [esp + 0x68]
push eax
push str.wszAppName___s__n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2c92]
push edx
mov word [esp + 0x2c94], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x38ce]
push ecx
mov word [esp + 0x38d0], ax
call fcn.0044e1b0
mov esi, dword [esp + 0x60]
mov eax, 3
add esp, 0x20
cmp esi, eax
jle 0x425305
cmp byte [ebp + 0x1c2cc], 0
je 0x4252dd
cmp dword [ebp + 0x1c2c8], eax
jg 0x4252d5
xor ecx, ecx
jmp 0x4252ef
lea ecx, [ebp + 0x4ac8]
jmp 0x4252ef
cmp dword [ebp + 0x1c2c8], eax
jg 0x4252e9
xor ecx, ecx
jmp 0x4252ef
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 0x4252f6
mov eax, 4
cmp esi, eax
jle 0x425368
cmp byte [ebp + 0x1c2cc], 0
je 0x42532b
cmp dword [ebp + 0x1c2c8], eax
jg 0x425323
xor ecx, ecx
jmp 0x42533d
lea ecx, [ebp + 0x52c8]
jmp 0x42533d
cmp dword [ebp + 0x1c2c8], eax
jg 0x425337
xor ecx, ecx
jmp 0x42533d
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 0x425344
lea edx, [esp + 0x38b0]
push edx
push str.We_also_want_to_check_type___s__n
call fcn.004412c0
add esp, 8
lea eax, [esp + 0x2c80]
push 0x4702c4
push eax
xor bl, bl
xor esi, esi
xor ebp, ebp
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x42539a
mov ecx, edi
call fcn.0041f850
mov bl, al
test bl, bl
je 0x42539a
lea esi, [ebp + 4]
lea ebp, [esi + 1]
lea ecx, [esp + 0x2c80]
push 0x4702bc
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x4253e9
lea edx, [esp + 0x38b0]
push str.full
push edx
call fcn.0044e882
add esp, 8
test eax, eax
je 0x4253d7
cmp word [esp + 0x38b0], 0
jne 0x4253e9
mov ecx, edi
call fcn.0041f820
mov bl, al
test bl, bl
je 0x4253e9
mov esi, 4
lea eax, [esp + 0x2c80]
push 0x4702bc
push eax
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x42542d
lea ecx, [esp + 0x38b0]
push str.client
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x42542d
mov ecx, edi
call fcn.0041f7f0
mov bl, al
test bl, bl
je 0x42542d
mov esi, 4
lea edx, [esp + 0x2c80]
push 0x470298
push edx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x42545b
mov ecx, edi
call fcn.0041f7c0
mov bl, al
test bl, bl
je 0x42545b
mov esi, 3
lea ebp, [esi + 2]
lea eax, [esp + 0x2c80]
push 0x470290
push eax
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x425486
mov ecx, edi
call fcn.0041f790
mov bl, al
test bl, bl
je 0x425486
mov esi, 3
lea ecx, [esp + 0x2c80]
push 0x470288
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x4254b1
mov ecx, edi
call fcn.0041f760
mov bl, al
test bl, bl
je 0x4254b1
mov esi, 2
xor eax, eax
mov dword [edi + 0x28bc], eax
mov dword [edi + 0x28b8], eax
test bl, bl
je 0x425525
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.004412c0
movzx eax, word [edi + 0x28b8]
movzx ecx, word [edi + 0x28ba]
push eax
push ecx
push str.DOTNET_VERSION_return___d____d__n
call fcn.004412c0
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 0x425516
push 0x208
call fcn.0044e993
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.00407d30
mov ecx, edi
test bl, bl
je 0x42557d
lea edx, [esp + 0x27f0]
push edx
mov dword [esp + 0x18], 1
push 0
jmp 0x42558f
lea eax, [esp + 0x27f0]
push eax
mov dword [esp + 0x18], 0
push 2
push 0xa
call fcn.00416eb0
lea ecx, [esp + 0x27f0]
push str.CHECK_SQLSERVER
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x426355
mov ebp, dword [esp + 0x18]
push str.CHECK_SQLSERVER
mov ecx, ebp
call fcn.00416fe0
lea edx, [esp + 0x27f0]
push edx
push 0xffffffffffffffff
push 0xa
mov ecx, ebp
call fcn.00416eb0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a82]
push ecx
mov word [esp + 0x2a84], ax
call fcn.0044e1b0
mov esi, dword [esp + 0x3c]
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x425618
cmp dword [esi + 0x1c2c8], 2
jg 0x425610
xor ecx, ecx
jmp 0x42562b
lea ecx, [esi + 0x42c8]
jmp 0x42562b
cmp dword [esi + 0x1c2c8], 2
jg 0x425625
xor ecx, ecx
jmp 0x42562b
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 0x425632
lea edx, [esp + 0x2a78]
push edx
push str.wszAppName___s__n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2c92]
push ecx
mov word [esp + 0x2c94], ax
call fcn.0044e1b0
mov edi, dword [esp + 0x54]
mov eax, 4
add esp, 0x14
cmp edi, eax
jle 0x4256d1
cmp byte [esi + 0x1c2cc], 0
je 0x42569f
cmp dword [esi + 0x1c2c8], eax
jg 0x425697
xor ecx, ecx
jmp 0x4256b1
lea ecx, [esi + 0x52c8]
jmp 0x4256b1
cmp dword [esi + 0x1c2c8], eax
jg 0x4256ab
xor ecx, ecx
jmp 0x4256b1
lea ecx, [esi + 0x410]
lea edx, [esp + 0x2c80]
jmp 0x4256c0
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4256c0
lea edx, [esp + 0x2c80]
push edx
push str.wszInstancesNameToCheck___s__n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x38c2]
push ecx
mov word [esp + 0x38c4], ax
call fcn.0044e1b0
mov eax, 5
add esp, 0x14
cmp edi, eax
jle 0x425753
cmp byte [esi + 0x1c2cc], 0
je 0x425729
cmp dword [esi + 0x1c2c8], eax
jg 0x425721
xor ecx, ecx
jmp 0x42573b
lea ecx, [esi + 0x5ac8]
jmp 0x42573b
cmp dword [esi + 0x1c2c8], eax
jg 0x425735
xor ecx, ecx
jmp 0x42573b
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 0x425742
lea edx, [esp + 0x38b0]
push edx
push str.wszEditionToCheck___s__n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2882]
push ecx
mov word [esp + 0x2884], ax
call fcn.0044e1b0
push 0x20019
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d9c0
mov esi, eax
add esp, 0x20
test esi, esi
jbe 0x425c1e
imul eax, eax, 0x104
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044e993
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x425c1e
push 0x20019
push esi
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d9e0
add esp, 0x14
test eax, eax
jle 0x425c1e
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
mov esi, eax
push ebx
push str._______Instances___s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2c80], 0
je 0x425835
lea eax, [esp + 0x2c80]
push ebx
push eax
call fcn.0044e882
add esp, 8
test eax, eax
je 0x425835
push str._______Instances_not_matched__Continue..._n
call fcn.004412c0
add esp, 4
jmp 0x425c0d
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3ace]
push ecx
mov word [esp + 0x3ad0], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x30b2]
push eax
mov word [esp + 0x30b4], dx
call fcn.0044e1b0
add esp, 0x24
cmp word [esp + 0x38b0], 0
je 0x42598c
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2e92]
push edx
mov word [esp + 0x2e94], cx
call fcn.0044e1b0
push 0x20019
lea eax, [esp + 0x2e98]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x20
test eax, eax
je 0x4258ef
lea ecx, [esp + 0x2e88]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.004412c0
add esp, 0xc
cmp word [esp + 0x2e88], 0
je 0x42598c
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.004412c0
push 0x20019
lea edx, [esp + 0x30a8]
push edx
push str.Edition
lea eax, [esp + 0x88]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x28
test eax, eax
je 0x42598c
lea ecx, [esp + 0x3090]
push ecx
push str._______Edition___s__n
call fcn.004412c0
lea edx, [esp + 0x3098]
push edx
lea eax, [esp + 0x38bc]
push eax
call fcn.0044e882
add esp, 0x10
test eax, eax
je 0x42598c
push str._______Edition_did_not_match..._n
call fcn.004412c0
add esp, 4
jmp 0x425c0d
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.004412c0
push 0x20019
lea eax, [esp + 0x3ad0]
push eax
push str.CurrentVersion
lea ecx, [esp + 0x88]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x28
test eax, eax
je 0x425a75
lea edx, [esp + 0x3ab8]
push edx
push str._______current_version___s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x425a25
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 0x425a00
lea edx, [esp + 0x2870]
push edx
jmp 0x425c00
lea eax, [esp + 0x3ab8]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, ebp
call fcn.0041f4c0
cmp eax, 2
jne 0x425a68
xor eax, eax
jmp 0x425a50
movzx ecx, word [esp + eax + 0x3ab8]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x425a50
lea edx, [esp + 0x2870]
push edx
jmp 0x425c00
push str._____Somehow_current_version_is_missing__use_differnt_reg_key_to_check
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x34ae]
push ecx
mov word [esp + 0x34b0], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2ea2]
push eax
mov word [esp + 0x2ea4], dx
call fcn.0044e1b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32be]
push edx
mov word [esp + 0x32c0], cx
call fcn.0044e1b0
push 0x20019
lea eax, [esp + 0x32c4]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x3c
test eax, eax
je 0x425b10
lea ecx, [esp + 0x3298]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.004412c0
add esp, 0xc
cmp word [esp + 0x3298], 0
je 0x425c0d
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.004412c0
push 0x20019
lea edx, [esp + 0x2ea0]
push edx
push str.CurrentVersion
lea eax, [esp + 0x34c0]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x28
test eax, eax
je 0x425c0d
lea ecx, [esp + 0x2e88]
push ecx
push str._______wszOtherVersion___s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x425bba
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 0x425ba0
jmp 0x425bf8
lea edx, [esp + 0x2e88]
push edx
lea eax, [esp + 0x2874]
push eax
mov ecx, ebp
call fcn.0041f4c0
cmp eax, 2
jne 0x425bf8
xor eax, eax
jmp 0x425be0
movzx ecx, word [esp + eax + 0x2e88]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x425be0
lea ecx, [esp + 0x2870]
push ecx
push str._______wszExistVersion_version___s__n
call fcn.004412c0
add esp, 8
add ebx, 0x208
sub esi, 1
jne 0x4257f5
jmp 0x425c24
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp + 0xc]
call fcn.00447510
test eax, eax
je 0x4260cc
push 0x20219
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d9c0
mov esi, eax
add esp, 0xc
test esi, esi
jbe 0x4260cc
imul eax, eax, 0x104
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0044e993
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4260cc
push 0x20219
push esi
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d9e0
add esp, 0x14
test eax, eax
jle 0x4260cc
mov esi, eax
push ebx
push str._______Instances___s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2c80], 0
je 0x425ce1
lea eax, [esp + 0x2c80]
push ebx
push eax
call fcn.0044e882
add esp, 8
test eax, eax
je 0x425ce1
push str._______Instances_not_matched__Continue..._n
call fcn.004412c0
add esp, 4
jmp 0x4260bd
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2e9e]
push ecx
mov word [esp + 0x2ea0], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x34c2]
push eax
mov word [esp + 0x34c4], dx
call fcn.0044e1b0
add esp, 0x24
cmp word [esp + 0x38b0], 0
je 0x425e38
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32a2]
push edx
mov word [esp + 0x32a4], cx
call fcn.0044e1b0
push 0x20219
lea eax, [esp + 0x32a8]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x20
test eax, eax
je 0x425d9b
lea ecx, [esp + 0x3298]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.004412c0
add esp, 0xc
cmp word [esp + 0x3298], 0
je 0x425e38
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.004412c0
push 0x20219
lea edx, [esp + 0x34b8]
push edx
push str.Edition
lea eax, [esp + 0x88]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x28
test eax, eax
je 0x425e38
lea ecx, [esp + 0x34a0]
push ecx
push str._______Edition___s__n
call fcn.004412c0
lea edx, [esp + 0x34a8]
push edx
lea eax, [esp + 0x38bc]
push eax
call fcn.0044e882
add esp, 0x10
test eax, eax
je 0x425e38
push str._______Edition_did_not_match..._n
call fcn.004412c0
add esp, 4
jmp 0x4260bd
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.004412c0
push 0x20219
lea eax, [esp + 0x2ea0]
push eax
push str.CurrentVersion
lea ecx, [esp + 0x88]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x28
test eax, eax
je 0x425f25
lea edx, [esp + 0x2e88]
push edx
push str._______current_version___s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x425ed5
xor eax, eax
jmp 0x425eb0
movzx ecx, word [esp + eax + 0x2e88]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x425eb0
lea edx, [esp + 0x2870]
push edx
jmp 0x4260b0
lea eax, [esp + 0x2e88]
push eax
lea ecx, [esp + 0x2874]
push ecx
mov ecx, ebp
call fcn.0041f4c0
cmp eax, 2
jne 0x425f18
xor eax, eax
jmp 0x425f00
movzx ecx, word [esp + eax + 0x2e88]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x425f00
lea edx, [esp + 0x2870]
push edx
jmp 0x4260b0
push str._____Somehow_current_version_is_missing__use_differnt_reg_key_to_check
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309e]
push ecx
mov word [esp + 0x30a0], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x3ad2]
push eax
mov word [esp + 0x3ad4], dx
call fcn.0044e1b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32be]
push edx
mov word [esp + 0x32c0], cx
call fcn.0044e1b0
push 0x20219
lea eax, [esp + 0x32c4]
push eax
push ebx
push str.SOFTWAREMicrosoftMicrosoft_SQL_ServerInstance_NamesSQL
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x3c
test eax, eax
je 0x425fc0
lea ecx, [esp + 0x3298]
push ecx
push ebx
push str._______Instance___s__value___s__n
call fcn.004412c0
add esp, 0xc
cmp word [esp + 0x3298], 0
je 0x4260bd
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.004412c0
push 0x20219
lea edx, [esp + 0x3ad0]
push edx
push str.CurrentVersion
lea eax, [esp + 0x30b0]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0044d990
add esp, 0x28
test eax, eax
je 0x4260bd
lea ecx, [esp + 0x3ab8]
push ecx
push str._______wszOtherVersion___s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2870], 0
jne 0x42606a
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 0x426050
jmp 0x4260a8
lea edx, [esp + 0x3ab8]
push edx
lea eax, [esp + 0x2874]
push eax
mov ecx, ebp
call fcn.0041f4c0
cmp eax, 2
jne 0x4260a8
xor eax, eax
jmp 0x426090
movzx ecx, word [esp + eax + 0x3ab8]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x426090
lea ecx, [esp + 0x2870]
push ecx
push str._______wszExistVersion_version___s__n
call fcn.004412c0
add esp, 8
add ebx, 0x208
sub esi, 1
jne 0x425ca1
xor ebp, ebp
xor edi, edi
cmp word [esp + 0x2870], bp
je 0x4260dd
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 0x4260f4
cmp edi, 1
jne 0x4262d8
lea edx, [esp + 0x2870]
push edx
push str.wszExistVersion____s_n
call fcn.004412c0
add esp, 8
xor eax, eax
jmp 0x426130
movzx ecx, word [esp + eax + 0x2870]
mov word [esp + eax + 0x2e88], cx
add eax, 2
cmp cx, bp
jne 0x426130
lea eax, [esp + 0x2e88]
push 0x2e
push eax
call fcn.0044e936
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4261be
lea edx, [esp + 0x2e88]
xor ecx, ecx
push edx
mov word [esi], cx
call fcn.0044e92b
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 0x426183
lea eax, [esp + 0x2e88]
push 0x2e
push eax
call fcn.0044e936
add esp, 8
test eax, eax
je 0x4261d0
lea edx, [esp + 0x2e88]
xor ecx, ecx
push edx
mov word [eax], cx
call fcn.0044e92b
mov ebp, eax
jmp 0x4261cd
lea eax, [esp + 0x2e88]
push eax
call fcn.0044e92b
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.0044e1b0
mov eax, 3
add esp, 0xc
cmp dword [esp + 0x40], eax
jle 0x426265
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x1c2cc], 0
je 0x42623b
cmp dword [ecx + 0x1c2c8], eax
jg 0x426233
xor ecx, ecx
jmp 0x42624d
add ecx, 0x4ac8
jmp 0x42624d
cmp dword [ecx + 0x1c2c8], eax
jg 0x426247
xor ecx, ecx
jmp 0x42624d
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 0x426254
cmp word [esp + 0x34a0], 0
je 0x4262a4
lea edx, [esp + 0x2870]
push edx
lea eax, [esp + 0x34a4]
push eax
mov ecx, esi
call fcn.0041f4c0
test eax, eax
jg 0x4262a4
push 0
push str.Version_desired_not_matched__return___d___n
mov dword [esi + 0x28bc], 0
call fcn.004412c0
add esp, 8
mov ecx, dword [esi + 0x28b8]
push ecx
push str.SQL_VERSION_combined__d___n
call fcn.004412c0
movzx edx, word [esi + 0x28b8]
movzx eax, word [esi + 0x28ba]
push edx
push eax
push str.SQL_return___d____d__n
call fcn.004412c0
add esp, 0x14
mov ebx, esi
xor ebp, ebp
jmp 0x4262e4
mov dword [ebx + 0x28bc], ebp
mov dword [ebx + 0x28b8], ebp
push 0x208
call fcn.0044e993
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.00407d30
cmp edi, ebp
je 0x42633c
lea ecx, [esp + 0x27f0]
push ecx
mov dword [esp + 0x18], 1
push ebp
jmp 0x42634c
lea edx, [esp + 0x27f0]
push edx
mov dword [ebx + 0x28b8], ebp
push 2
push 0xa
mov ecx, ebx
call fcn.00416eb0
lea eax, [esp + 0x27f0]
push str.VERIFY_INI_DATE
push eax
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x4264ed
mov ecx, dword [esp + 0x18]
push str.VERIFY_INI_DATE
call fcn.00416fe0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x32a2]
push edx
mov word [esp + 0x32a4], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a8e]
push ecx
mov word [esp + 0x2a90], ax
call fcn.0044e1b0
mov esi, dword [esp + 0x48]
add esp, 0x18
cmp byte [esi + 0x1c2cc], 0
je 0x4263df
cmp dword [esi + 0x1c2c8], 2
jg 0x4263d7
xor eax, eax
jmp 0x4263f2
lea eax, [esi + 0x42c8]
jmp 0x4263f2
cmp dword [esi + 0x1c2c8], 2
jg 0x4263ec
xor eax, eax
jmp 0x4263f2
lea eax, [esi + 0x208]
push eax
lea edx, [esp + 0x329c]
push 0x467a2c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x426427
cmp dword [esi + 0x1c2c8], 3
jg 0x42641f
xor eax, eax
jmp 0x42643a
lea eax, [esi + 0x4ac8]
jmp 0x42643a
cmp dword [esi + 0x1c2c8], 3
jg 0x426434
xor eax, eax
jmp 0x42643a
lea eax, [esi + 0x30c]
push eax
lea eax, [esp + 0x2a7c]
push 0x467a2c
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.00417110
lea edx, [esp + 0x2a78]
push edx
mov ecx, esi
call fcn.00417110
lea eax, [esp + 0x3298]
push eax
push str.______s__n
call fcn.004412c0
lea ecx, [esp + 0x2a80]
push ecx
push str.______s__n
call fcn.004412c0
add esp, 0x10
lea edx, [esp + 0x3298]
push edx
mov ecx, esi
call fcn.0041be70
mov ebx, eax
lea eax, [esp + 0x2a78]
push eax
mov ecx, esi
call fcn.0041be70
push ebx
push str.__dwInfDateInCD_______d__n
mov esi, eax
call fcn.004412c0
push esi
push str.__dwInfDateInDest_____d__n
call fcn.004412c0
add esp, 0x10
test esi, esi
jbe 0x4264ed
mov dword [esp + 0x14], 1
cmp ebx, esi
jbe 0x4264ed
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x27f0]
push str.CHECK_PRODUCT_ARP
push ecx
call fcn.0044e882
mov ebx, dword [esp + 0x20]
add esp, 8
test eax, eax
jne 0x4265cd
push str.CHECK_PRODUCT_ARP
mov ecx, ebx
call fcn.00416fe0
lea edx, [esp + 0x27f0]
push edx
push 0xffffffffffffffff
push 0xa
mov ecx, ebx
call fcn.00416eb0
push 0x1058
lea eax, [esp + 0x1754]
push 0
push eax
call fcn.0044e1b0
mov ebp, dword [esp + 0x3c]
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x426566
cmp dword [ebp + 0x1c2c8], 2
jg 0x42655e
xor eax, eax
jmp 0x426579
lea eax, [ebp + 0x42c8]
jmp 0x426579
cmp dword [ebp + 0x1c2c8], 2
jg 0x426573
xor eax, eax
jmp 0x426579
lea eax, [ebp + 0x208]
lea ecx, [esp + 0x1750]
push ecx
push eax
mov ecx, ebx
call fcn.0041c630
cmp byte [esp + 0x2790], 0
mov ecx, ebx
je 0x4265b0
lea edx, [esp + 0x27f0]
push edx
push 0
push 0xa
mov dword [esp + 0x20], 1
call fcn.00416eb0
jmp 0x4265d1
lea eax, [esp + 0x27f0]
push eax
push 2
push 0xa
mov dword [ebx + 0x28b8], 0
call fcn.00416eb0
jmp 0x4265d1
mov ebp, dword [esp + 0x30]
lea ecx, [esp + 0x27f0]
push str.VERIFY_FILE_ARP
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
je 0x42660b
lea edx, [esp + 0x27f0]
push str.VERIFY_INI_ARP
push edx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x427736
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.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x38c6]
push eax
mov word [esp + 0x38c8], dx
call fcn.0044e1b0
add esp, 0x18
cmp byte [ebp + 0x1c2cc], 0
je 0x42666c
cmp dword [ebp + 0x1c2c8], 2
jg 0x426664
xor eax, eax
jmp 0x42667f
lea eax, [ebp + 0x42c8]
jmp 0x42667f
cmp dword [ebp + 0x1c2c8], 2
jg 0x426679
xor eax, eax
jmp 0x42667f
lea eax, [ebp + 0x208]
push eax
lea ecx, [esp + 0x2874]
push 0x467a2c
push ecx
call esi
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x4266b0
cmp dword [ebp + 0x1c2c8], 3
jg 0x4266a8
xor eax, eax
jmp 0x4266c3
lea eax, [ebp + 0x4ac8]
jmp 0x4266c3
cmp dword [ebp + 0x1c2c8], 3
jg 0x4266bd
xor eax, eax
jmp 0x4266c3
lea eax, [ebp + 0x30c]
push eax
lea edx, [esp + 0x38b4]
push 0x467a2c
push edx
call esi
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x34b6]
push ecx
mov word [esp + 0x34b8], ax
call fcn.0044e1b0
mov eax, 5
add esp, 0x18
cmp dword [esp + 0x40], eax
jle 0x426740
cmp byte [ebp + 0x1c2cc], 0
je 0x42671b
cmp dword [ebp + 0x1c2c8], eax
jg 0x426713
xor eax, eax
jmp 0x42672d
lea eax, [ebp + 0x5ac8]
jmp 0x42672d
cmp dword [ebp + 0x1c2c8], eax
jg 0x426727
xor eax, eax
jmp 0x42672d
lea eax, [ebp + 0x514]
push eax
lea edx, [esp + 0x34a4]
push 0x467a2c
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x2870]
push eax
mov ecx, ebx
call fcn.00417110
lea ecx, [esp + 0x38b0]
push ecx
mov ecx, ebx
call fcn.00417110
lea edx, [esp + 0x2870]
push edx
push str.______s__n
call fcn.004412c0
lea eax, [esp + 0x38b8]
push eax
push str.______s__n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3ad2]
push edx
mov word [esp + 0x3ad4], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2eae]
push ecx
mov word [esp + 0x2eb0], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36da]
push eax
mov word [esp + 0x36dc], dx
call fcn.0044e1b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0xa6]
push edx
mov word [esp + 0xa8], cx
call fcn.0044e1b0
add esp, 0x40
push 0x1058
lea eax, [esp + 0x6fc]
push 0
push eax
call fcn.0044e1b0
add esp, 0xc
cmp word [esp + 0x34a0], 0
lea ecx, [esp + 0x38b0]
je 0x426859
push ecx
lea edx, [esp + 0x2874]
push edx
push str.____Verify_with_Arp_Key___s__and_Product_name___s__n
call fcn.004412c0
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.0041d2e0
jmp 0x426869
lea eax, [esp + 0x6f8]
push eax
push ecx
mov ecx, ebx
call fcn.0041c630
xor eax, eax
jmp 0x426870
movzx ecx, word [esp + eax + 0x1530]
mov word [esp + eax + 0x68], cx
add eax, 2
test cx, cx
jne 0x426870
mov edx, dword [esp + 0x1744]
mov eax, dword [esp + 0x1740]
push edx
push eax
push str._dwMajor___d__dwMinor___d__n
call fcn.004412c0
mov ecx, dword [esp + 0x1758]
mov edx, dword [esp + 0x1754]
push ecx
push edx
push str._dwBuild___d__dwRevision___d__n
call fcn.004412c0
add esp, 0x18
cmp byte [esp + 0x1738], 0
je 0x4273ff
mov ecx, dword [ebx + 0xc]
push str..cab
lea eax, [esp + 0x2874]
mov edi, 1
push eax
mov dword [esp + 0x1c], edi
call fcn.004453e0
test eax, eax
je 0x426a4c
push str.CAB_file..._n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x309e]
push edx
mov word [esp + 0x30a0], cx
call fcn.0044e1b0
mov ecx, dword [ebx + 0xc]
add esp, 0x10
lea eax, [esp + 0x3090]
push eax
push 0
push 0x470790
call fcn.00445fa0
test eax, eax
je 0x426a4c
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2a82]
push edx
mov word [esp + 0x2a84], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x32ae]
push ecx
mov word [esp + 0x32b0], ax
call fcn.0044e1b0
lea edx, [esp + 0x2888]
push 0x7c
push edx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x4269c3
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 0x426990
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 0x4269b4
push 0xa48
call fcn.0044e29f
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0xbf14], edi
test eax, eax
je 0x4269ea
mov ecx, eax
call fcn.00440e80
mov esi, eax
jmp 0x4269ec
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.00441050
xor eax, eax
jmp 0x426a20
movzx ecx, word [esp + eax + 0x3090]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x426a20
test esi, esi
je 0x426a4c
mov ecx, esi
call fcn.004410e0
push esi
call fcn.0044e22a
add esp, 4
mov ecx, dword [ebx + 0xc]
push str..zip
lea edx, [esp + 0x2874]
push edx
mov byte [esp + 0x27], 0
call fcn.004453e0
test eax, eax
je 0x426c56
push str.ZIP_file..._n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309e]
push ecx
mov word [esp + 0x30a0], ax
call fcn.0044e1b0
add esp, 0x10
lea edx, [esp + 0x3090]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x426c56
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x32a2]
push ecx
mov word [esp + 0x32a4], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a8e]
push eax
mov word [esp + 0x2a90], dx
call fcn.0044e1b0
lea ecx, [esp + 0x2888]
push 0x7c
push ecx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x426b43
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 0x426b10
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 0x426b34
mov ecx, dword [ebx + 0xc]
push 0
lea eax, [esp + 0x329c]
push eax
call fcn.004454a0
test al, al
je 0x426c56
lea ecx, [esp + 0x2a78]
push ecx
lea edx, [esp + 0x3094]
push edx
lea eax, [esp + 0x3cc8]
push 0x46d744
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.004412c0
lea eax, [esp + 0x32b4]
push 0
push eax
call fcn.004402f0
lea ecx, [esp + 0x2a9c]
push ecx
push str.tszFileName___s__n
mov esi, eax
mov dword [esp + 0x84], 0
call fcn.004412c0
lea edx, [esp + 0x4f4]
push edx
lea eax, [esp + 0x88]
push eax
push edi
lea ecx, [esp + 0x2ab0]
push ecx
push esi
call fcn.0043dd50
add esp, 0x40
test eax, eax
jne 0x426c4d
mov edx, dword [esp + 0x58]
push edx
lea eax, [esp + 0x4d0]
push eax
push str.ze.name___s__at_index__d_n
call fcn.004412c0
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0x3ccc]
push ecx
push edx
push esi
call fcn.00440380
push eax
push str._nRet1__d_n
call fcn.004412c0
add esp, 0x20
xor eax, eax
jmp 0x426c30
movzx ecx, word [esp + eax + 0x3cc0]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x426c30
mov byte [esp + 0x1f], 1
push esi
call fcn.004403a0
add esp, 4
mov edi, 4
xor esi, esi
cmp dword [esp + 0x40], edi
jle 0x426d07
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309a]
push ecx
mov word [esp + 0x309c], ax
call fcn.0044e1b0
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x426ca4
cmp dword [ebp + 0x1c2c8], edi
jg 0x426c9c
xor eax, eax
jmp 0x426cb6
lea eax, [ebp + 0x52c8]
jmp 0x426cb6
cmp dword [ebp + 0x1c2c8], edi
jg 0x426cb0
xor eax, eax
jmp 0x426cb6
lea eax, [ebp + 0x410]
push eax
lea edx, [esp + 0x3094]
push 0x467a2c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x309c]
push str.PRODUCTVERSION
push eax
call fcn.0044e882
add esp, 0x14
test eax, eax
jne 0x426ce6
lea esi, [eax + 1]
lea ecx, [esp + 0x3090]
push str.FILEVERSION
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
je 0x426d07
test esi, esi
jne 0x427051
lea edx, [esp + 0x27f0]
push str.VERIFY_INI_ARP
xor ebp, ebp
push edx
mov dword [esp + 0x4c], ebp
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x426f0d
push 0x206
lea ecx, [esp + 0x2a7e]
push ebp
push ecx
mov word [esp + 0x2a84], ax
call fcn.0044e1b0
push 0x4435c
call fcn.0044e29f
add esp, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0xbf14], 2
cmp eax, ebp
je 0x426d7e
push ebp
push ebp
lea edx, [esp + 0x2878]
push edx
mov ecx, eax
call 0x40a7d0
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x426d84
xor esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0xbf14], 0xffffffff
cmp esi, ebp
je 0x426f24
lea eax, [esp + 0x2a78]
push eax
push 2
push str.Version
push str.Version
mov ecx, esi
call fcn.00409a70
lea ecx, [esp + 0x2a78]
push ecx
push str.____wszVersion_____s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2a78], bp
je 0x426efb
lea edx, [esp + 0x2a78]
push edx
push str.____Parse_Version_String____s__n
call fcn.004412c0
xor edi, edi
push 0x1c2d0
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x34], edi
call fcn.0044e29f
add esp, 0xc
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 3
test eax, eax
je 0x426e20
mov ecx, eax
call fcn.004409e0
mov esi, eax
jmp 0x426e22
xor esi, esi
push 0x464ae4
lea eax, [esp + 0x2a7c]
push eax
mov ecx, esi
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.00440c30
mov ebx, eax
test ebx, ebx
jle 0x426e5d
push 0
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov dword [esp + 0x2c], eax
cmp ebx, 1
jle 0x426e78
push 1
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov dword [esp + 0x34], eax
cmp ebx, 2
jle 0x426e93
push 2
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov dword [esp + 0x28], eax
cmp ebx, 3
jle 0x426eac
push 3
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov edi, eax
test esi, esi
je 0x426ec0
mov ecx, esi
call fcn.00440490
push esi
call fcn.0044e22a
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.004412c0
mov esi, dword [esp + 0x34]
add esp, 0x14
mov ecx, esi
call 0x40a970
push esi
call fcn.0044e22a
add esp, 4
jmp 0x426f24
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.004486b0
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 0x46f438
call fcn.004412c0
add esp, 0x24
cmp si, word [esp + 0x1740]
jne 0x427001
mov eax, dword [esp + 0x1744]
cmp bp, ax
jne 0x426ff2
mov eax, dword [esp + 0x1748]
cmp di, ax
jne 0x426fe3
mov dx, word [esp + 0x174c]
cmp word [esp + 0x27ee], dx
je 0x42701f
mov ax, word [esp + 0x27ee]
mov ecx, dword [esp + 0x174c]
cmp ax, cx
jmp 0x42700b
jbe 0x426fed
mov dword [esp + 0x14], 2
cmp di, ax
jmp 0x427015
jbe 0x426ffc
mov dword [esp + 0x14], 2
cmp bp, ax
jmp 0x427015
mov eax, dword [esp + 0x1740]
cmp si, ax
jbe 0x427015
mov dword [esp + 0x14], 2
jae 0x42701f
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.004488a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x30]
jmp 0x42739e
cmp esi, 1
jne 0x4273e8
lea eax, [esp + 0x27f0]
push str.VERIFY_INI_ARP
xor ebp, ebp
push eax
mov dword [esp + 0x4c], ebp
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x42725f
push 0x206
lea edx, [esp + 0x2a7e]
xor ecx, ecx
push ebp
push edx
mov word [esp + 0x2a84], cx
call fcn.0044e1b0
push 0x4435c
call fcn.0044e29f
add esp, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], edi
cmp eax, ebp
je 0x4270cf
push ebp
push ebp
lea ecx, [esp + 0x2878]
push ecx
mov ecx, eax
call 0x40a7d0
mov esi, eax
mov dword [esp + 0x2c], eax
jmp 0x4270d5
xor esi, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0xbf14], 0xffffffff
test esi, esi
je 0x427276
lea edx, [esp + 0x2a78]
push edx
push 2
push str.Version
push str.Version
mov ecx, esi
call fcn.00409a70
lea eax, [esp + 0x2a78]
push eax
push str.____wszVersion_____s__n
call fcn.004412c0
add esp, 8
cmp word [esp + 0x2a78], 0
je 0x42724d
lea ecx, [esp + 0x2a78]
push ecx
push str.____Parse_Version_String____s__n
call fcn.004412c0
xor edi, edi
push 0x1c2d0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], edi
call fcn.0044e29f
add esp, 0xc
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 5
test eax, eax
je 0x427172
mov ecx, eax
call fcn.004409e0
mov esi, eax
jmp 0x427174
xor esi, esi
push 0x464ae4
lea edx, [esp + 0x2a7c]
push edx
mov ecx, esi
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.00440c30
mov ebx, eax
test ebx, ebx
jle 0x4271af
push 0
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov dword [esp + 0x20], eax
cmp ebx, 1
jle 0x4271ca
push 1
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov dword [esp + 0x28], eax
cmp ebx, 2
jle 0x4271e5
push 2
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov dword [esp + 0x34], eax
cmp ebx, 3
jle 0x4271fe
push 3
mov ecx, esi
call fcn.00401ae0
push eax
call fcn.0044e92b
add esp, 4
mov edi, eax
test esi, esi
je 0x427212
mov ecx, esi
call fcn.00440490
push esi
call fcn.0044e22a
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.004412c0
mov esi, dword [esp + 0x40]
add esp, 0x14
mov ecx, esi
call 0x40a970
push esi
call fcn.0044e22a
add esp, 4
jmp 0x427276
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.00449200
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.004412c0
add esp, 0x24
cmp si, word [esp + 0x1740]
jne 0x427353
mov eax, dword [esp + 0x1744]
cmp bp, ax
jne 0x427344
mov eax, dword [esp + 0x1748]
cmp di, ax
jne 0x427335
mov dx, word [esp + 0x174c]
cmp word [esp + 0x27e6], dx
je 0x427371
mov ax, word [esp + 0x27e6]
mov ecx, dword [esp + 0x174c]
cmp ax, cx
jmp 0x42735d
jbe 0x42733f
mov dword [esp + 0x14], 2
cmp di, ax
jmp 0x427367
jbe 0x42734e
mov dword [esp + 0x14], 2
cmp bp, ax
jmp 0x427367
mov eax, dword [esp + 0x1740]
cmp si, ax
jbe 0x427367
mov dword [esp + 0x14], 2
jae 0x427371
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.00448d50
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 0x4273ff
mov ecx, dword [ebx + 0xc]
lea eax, [esp + 0x2870]
push eax
call fcn.00445e70
lea ecx, [esp + 0x3ab8]
push ecx
push str.wszSrcVersion___s__n
call fcn.004412c0
lea edx, [esp + 0x2e90]
push edx
push str.wszInstalledVersion___s__n
call fcn.004412c0
lea eax, [esp + 0x78]
push eax
push str.wszInstalledDisplayVersion___s__n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2ba]
push edx
mov word [esp + 0x2bc], cx
call fcn.0044e1b0
xor eax, eax
push 0x1ffe
push eax
lea ecx, [esp + 0x4f36]
push ecx
mov word [esp + 0x4f38], ax
call fcn.0044e1b0
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 0x427480
lea edx, [esp + 0x4f08]
push edx
push 0x4706cc
call fcn.004412c0
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 0x4276de
push 0x1c2d0
call fcn.0044e29f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 6
test eax, eax
je 0x4274f5
mov ecx, eax
call fcn.004409e0
mov ebx, eax
jmp 0x4274f7
xor ebx, ebx
push 0x4706c8
lea ecx, [esp + 0x4f0c]
push ecx
mov ecx, ebx
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.00440c30
cmp eax, 3
jl 0x427683
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2c8a]
push eax
mov word [esp + 0x2c8c], dx
call fcn.0044e1b0
add esp, 0xc
cmp byte [ebx + 0x1c2cc], 0
je 0x42755d
cmp dword [ebx + 0x1c2c8], 2
jg 0x427555
xor ecx, ecx
jmp 0x427570
lea ecx, [ebx + 0x42c8]
jmp 0x427570
cmp dword [ebx + 0x1c2c8], 2
jg 0x42756a
xor ecx, ecx
jmp 0x427570
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 0x427577
cmp word [esp + 0x2c80], ax
je 0x427683
lea ecx, [esp + 0x2c80]
push 0x2e
push ecx
call fcn.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x4275c7
lea edx, [esi + 2]
push edx
call fcn.0044e92b
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.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x4275f8
lea edx, [esi + 2]
push edx
call fcn.0044e92b
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.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x427624
lea edx, [esi + 2]
push edx
call fcn.0044e92b
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 0x427630
sub eax, edx
sar eax, 1
je 0x427654
lea ecx, [esp + 0x2c80]
push ecx
call fcn.0044e92b
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.004412c0
mov si, word [esp + 0x27d8]
add esp, 0x14
test ebx, ebx
je 0x427697
mov ecx, ebx
call fcn.00440490
push ebx
call fcn.0044e22a
add esp, 4
mov eax, dword [esp + 0x1740]
cmp ax, di
jne 0x4276cd
mov eax, dword [esp + 0x1744]
cmp ax, bp
jne 0x4276cd
mov eax, dword [esp + 0x1748]
cmp ax, si
jne 0x4276cd
mov eax, dword [esp + 0x174c]
mov cx, word [esp + 0x27c6]
cmp ax, cx
jbe 0x4276de
mov esi, dword [esp + 0x18]
xor eax, eax
mov word [esi + 0x28c0], ax
jmp 0x4276e2
mov esi, dword [esp + 0x18]
cmp word [esi + 0x28c0], 0
jne 0x427736
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.00416fe0
lea edx, [esp + 0x27f0]
push str.VERIFY_FILE_ARP_LOC
push edx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x428412
push 0x206
push eax
lea ecx, [esp + 0x287a]
push ecx
mov word [esp + 0x287c], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2c96]
push eax
mov word [esp + 0x2c98], dx
call fcn.0044e1b0
mov ebp, dword [esp + 0x48]
add esp, 0x18
cmp byte [ebp + 0x1c2cc], 0
je 0x4277b0
cmp dword [ebp + 0x1c2c8], 2
jg 0x4277a8
xor eax, eax
jmp 0x4277c3
lea eax, [ebp + 0x42c8]
jmp 0x4277c3
cmp dword [ebp + 0x1c2c8], 2
jg 0x4277bd
xor eax, eax
jmp 0x4277c3
lea eax, [ebp + 0x208]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea ecx, [esp + 0x2874]
push 0x467a2c
push ecx
call esi
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x4277fa
cmp dword [ebp + 0x1c2c8], 3
jg 0x4277f2
xor eax, eax
jmp 0x42780d
lea eax, [ebp + 0x4ac8]
jmp 0x42780d
cmp dword [ebp + 0x1c2c8], 3
jg 0x427807
xor eax, eax
jmp 0x42780d
lea eax, [ebp + 0x30c]
push eax
lea edx, [esp + 0x2c84]
push 0x467a2c
push edx
call esi
mov ebx, dword [esp + 0x24]
add esp, 0xc
lea eax, [esp + 0x2870]
push eax
mov ecx, ebx
call fcn.00417110
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, ebx
call fcn.00417110
lea edx, [esp + 0x2870]
push edx
push str.______s__n
call fcn.004412c0
lea eax, [esp + 0x2c88]
push eax
push str.______s__n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x30aa]
push edx
mov word [esp + 0x30ac], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x4ee]
push ecx
mov word [esp + 0x4f0], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x38e2]
push eax
mov word [esp + 0x38e4], dx
call fcn.0044e1b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3af6]
push edx
mov word [esp + 0x3af8], cx
call fcn.0044e1b0
add esp, 0x40
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x32a2]
push ecx
mov word [esp + 0x32a4], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36be]
push eax
mov word [esp + 0x36c0], dx
call fcn.0044e1b0
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 0x427920
lea ecx, [esp + 0x3298]
push 0x7c
push ecx
call fcn.0044e936
add esp, 8
test eax, eax
je 0x42796f
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 0x427960
lea eax, [esp + 0x3298]
push eax
push str.__wszSoftwareName_____s__n
call fcn.004412c0
lea ecx, [esp + 0x36b0]
push ecx
push str.__wszInstalledExe_____s__n
call fcn.004412c0
push 0x1058
lea edx, [esp + 0x4f1c]
push 0
push edx
call fcn.0044e1b0
add esp, 0x1c
lea eax, [esp + 0x4f08]
push eax
lea ecx, [esp + 0x329c]
push ecx
mov ecx, ebx
call fcn.0041c630
cmp word [esp + 0x5728], 0
je 0x4279f0
lea edx, [esp + 0x36a8]
push edx
lea eax, [esp + 0x572c]
push eax
lea ecx, [esp + 0x2c88]
push 0x464ad0
push ecx
call esi
add esp, 0x10
jmp 0x4279fa
xor edx, edx
mov word [esp + 0x2c80], dx
lea eax, [esp + 0x2c80]
push eax
push str.__wszDesFile_____s__n
call fcn.004412c0
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.004454a0
test al, al
je 0x4280e9
mov ecx, dword [ebx + 0xc]
push str..cab
lea eax, [esp + 0x2874]
push eax
mov dword [esp + 0x1c], 1
call fcn.004453e0
test eax, eax
je 0x427bdc
push str.CAB_file..._n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x34ae]
push edx
mov word [esp + 0x34b0], cx
call fcn.0044e1b0
mov ecx, dword [ebx + 0xc]
add esp, 0x10
lea eax, [esp + 0x34a0]
push eax
push 0
push 0x470790
call fcn.00445fa0
test eax, eax
je 0x427bdc
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2a82]
push edx
mov word [esp + 0x2a84], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2ae]
push ecx
mov word [esp + 0x2b0], ax
call fcn.0044e1b0
lea edx, [esp + 0x2888]
push 0x7c
push edx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x427b53
xor ecx, ecx
mov word [eax], cx
jmp 0x427b20
movzx edx, word [esp + ecx + 0x2870]
mov word [esp + ecx + 0x2a78], dx
add ecx, 2
test dx, dx
jne 0x427b20
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 0x427b44
push 0xa48
call fcn.0044e29f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 7
test eax, eax
je 0x427b7e
mov ecx, eax
call fcn.00440e80
mov esi, eax
jmp 0x427b80
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.00441050
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 0x427bb0
test esi, esi
je 0x427bdc
mov ecx, esi
call fcn.004410e0
push esi
call fcn.0044e22a
add esp, 4
mov ecx, dword [ebx + 0xc]
push str..zip
lea edx, [esp + 0x2874]
push edx
mov byte [esp + 0x27], 0
call fcn.004453e0
test eax, eax
je 0x427de6
push str.ZIP_file..._n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a6]
push ecx
mov word [esp + 0x2a8], ax
call fcn.0044e1b0
add esp, 0x10
lea edx, [esp + 0x298]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x427de6
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2e92]
push ecx
mov word [esp + 0x2e94], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a8e]
push eax
mov word [esp + 0x2a90], dx
call fcn.0044e1b0
lea ecx, [esp + 0x2888]
push 0x7c
push ecx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x427cd3
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 0x427ca0
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 0x427cc4
mov ecx, dword [ebx + 0xc]
push 0
lea eax, [esp + 0x2e8c]
push eax
call fcn.004454a0
test al, al
je 0x427de6
lea ecx, [esp + 0x2a78]
push ecx
lea edx, [esp + 0x29c]
push edx
lea eax, [esp + 0x34a8]
push 0x46d744
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.004412c0
lea eax, [esp + 0x2ea4]
push 0
push eax
call fcn.004402f0
lea ecx, [esp + 0x2a9c]
push ecx
push str.tszFileName___s__n
mov esi, eax
mov dword [esp + 0x88], 0
call fcn.004412c0
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0x8c]
push eax
push 1
lea ecx, [esp + 0x2ab0]
push ecx
push esi
call fcn.0043dd50
add esp, 0x40
test eax, eax
jne 0x427ddd
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esp + 0x70]
push eax
push str.ze.name___s__at_index__d_n
call fcn.004412c0
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x34ac]
push ecx
push edx
push esi
call fcn.00440380
push eax
push str._nRet__d_n
call fcn.004412c0
add esp, 0x20
xor eax, eax
jmp 0x427dc0
movzx ecx, word [esp + eax + 0x34a0]
mov word [esp + eax + 0x2870], cx
add eax, 2
test cx, cx
jne 0x427dc0
mov byte [esp + 0x1f], 1
push esi
call fcn.004403a0
add esp, 4
mov edi, 4
xor esi, esi
cmp dword [esp + 0x40], edi
jle 0x427e91
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x34aa]
push ecx
mov word [esp + 0x34ac], ax
call fcn.0044e1b0
add esp, 0xc
cmp byte [ebp + 0x1c2cc], 0
je 0x427e34
cmp dword [ebp + 0x1c2c8], edi
jg 0x427e2c
xor eax, eax
jmp 0x427e46
lea eax, [ebp + 0x52c8]
jmp 0x427e46
cmp dword [ebp + 0x1c2c8], edi
jg 0x427e40
xor eax, eax
jmp 0x427e46
lea eax, [ebp + 0x410]
push eax
lea edx, [esp + 0x34a4]
push 0x467a2c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x34ac]
push str.PRODUCTVERSION
push eax
call fcn.0044e882
add esp, 0x14
test eax, eax
jne 0x427e76
lea esi, [eax + 1]
lea ecx, [esp + 0x34a0]
push str.FILEVERSION
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x427e91
xor esi, esi
mov dword [esp + 0x3c], 0
test esi, esi
jne 0x427f88
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2c80]
push edx
lea eax, [esp + 0x2874]
push eax
call fcn.0044aad0
test eax, eax
jle 0x427ec5
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.0044aad0
cmp eax, 0xffffffff
jne 0x427eea
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.004486b0
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.004486b0
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.004488a0
jmp 0x428073
cmp esi, 1
jne 0x4280d2
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2c80]
push edx
lea eax, [esp + 0x2874]
push eax
call fcn.0044abc0
test eax, eax
jle 0x427fb5
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2874]
push edx
call fcn.0044abc0
cmp eax, 0xffffffff
jne 0x427fda
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.00449200
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.00449200
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.00448d50
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 0x4280e9
mov ecx, dword [ebx + 0xc]
lea edx, [esp + 0x2870]
push edx
call fcn.00445e70
lea eax, [esp + 0x3090]
push eax
push str.wszSrcVersion___s__n
call fcn.004412c0
lea ecx, [esp + 0x38b8]
push ecx
push str.wszInstalledVersion___s__n
call fcn.004412c0
lea edx, [esp + 0x3ac8]
push edx
push str.wszInstalledDisplayVersion___s__n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3ce2]
push ecx
mov word [esp + 0x3ce4], ax
call fcn.0044e1b0
xor edx, edx
push 0x1ffe
push edx
lea eax, [esp + 0x7f36]
push eax
mov word [esp + 0x7f38], dx
call fcn.0044e1b0
lea eax, [ebx + 0x28c0]
lea edx, [esp + 0x7f38]
add esp, 0x30
sub edx, eax
jmp 0x428170
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x428170
lea ecx, [esp + 0x7f08]
push ecx
push 0x4706cc
call fcn.004412c0
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 0x4283bf
push 0x1c2d0
call fcn.0044e29f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 8
test eax, eax
je 0x4281e5
mov ecx, eax
call fcn.004409e0
mov ebx, eax
jmp 0x4281e7
xor ebx, ebx
push 0x4706c8
lea eax, [esp + 0x7f0c]
push eax
mov ecx, ebx
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.00440c30
cmp eax, 3
jl 0x428360
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x72]
push edx
mov word [esp + 0x74], cx
call fcn.0044e1b0
add esp, 0xc
cmp byte [ebx + 0x1c2cc], 0
je 0x428247
cmp dword [ebx + 0x1c2c8], 2
jg 0x42823f
xor ecx, ecx
jmp 0x42825a
lea ecx, [ebx + 0x42c8]
jmp 0x42825a
cmp dword [ebx + 0x1c2c8], 2
jg 0x428254
xor ecx, ecx
jmp 0x42825a
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 0x428260
cmp word [esp + 0x68], ax
je 0x428360
lea eax, [esp + 0x68]
push 0x2e
push eax
call fcn.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x4282aa
lea ecx, [esi + 2]
push ecx
call fcn.0044e92b
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.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x4282d8
lea ecx, [esi + 2]
push ecx
call fcn.0044e92b
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.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x428301
lea ecx, [esi + 2]
push ecx
call fcn.0044e92b
add esp, 4
xor edx, edx
mov bp, ax
mov word [esi], dx
lea eax, [esp + 0x68]
lea edx, [eax + 2]
jmp 0x428310
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x428310
sub eax, edx
sar eax, 1
je 0x428331
lea eax, [esp + 0x68]
push eax
call fcn.0044e92b
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.004412c0
mov si, word [esp + 0x27e0]
add esp, 0x14
test ebx, ebx
je 0x428374
mov ecx, ebx
call fcn.00440490
push ebx
call fcn.0044e22a
add esp, 4
mov ax, word [esp + 0x27a8]
cmp ax, di
jne 0x4283ae
mov ax, word [esp + 0x27aa]
cmp ax, bp
jne 0x4283ae
mov ax, word [esp + 0x27ac]
cmp ax, si
jne 0x4283ae
mov ax, word [esp + 0x27ae]
mov cx, word [esp + 0x27ce]
cmp ax, cx
jbe 0x4283bf
mov esi, dword [esp + 0x18]
xor edx, edx
mov word [esi + 0x28c0], dx
jmp 0x4283c3
mov esi, dword [esp + 0x18]
cmp word [esi + 0x28c0], 0
jne 0x428412
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.00416fe0
lea eax, [esp + 0x27f0]
push str.VERIFY_FILE_SERVICE
push eax
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x428bc2
mov ebx, dword [esp + 0x18]
push str.VERIFY_FILE_SERVICE
mov ecx, ebx
call fcn.00416fe0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x2c8a]
push edx
mov word [esp + 0x2c8c], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2886]
push ecx
mov word [esp + 0x2888], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a9a]
push eax
mov word [esp + 0x2a9c], dx
call fcn.0044e1b0
mov esi, dword [esp + 0x54]
add esp, 0x24
cmp byte [esi + 0x1c2cc], 0
je 0x4284bb
cmp dword [esi + 0x1c2c8], 2
jg 0x4284b3
xor eax, eax
jmp 0x4284ce
lea eax, [esi + 0x42c8]
jmp 0x4284ce
cmp dword [esi + 0x1c2c8], 2
jg 0x4284c8
xor eax, eax
jmp 0x4284ce
lea eax, [esi + 0x208]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea ecx, [esp + 0x2c84]
push 0x467a2c
push ecx
call edi
add esp, 0xc
cmp byte [esi + 0x1c2cc], 0
je 0x428505
cmp dword [esi + 0x1c2c8], 3
jg 0x4284fd
xor eax, eax
jmp 0x428518
lea eax, [esi + 0x4ac8]
jmp 0x428518
cmp dword [esi + 0x1c2c8], 3
jg 0x428512
xor eax, eax
jmp 0x428518
lea eax, [esi + 0x30c]
push eax
lea edx, [esp + 0x2874]
push 0x467a2c
push edx
call edi
add esp, 0xc
lea eax, [esp + 0x2c80]
push eax
mov ecx, ebx
call fcn.00417110
lea ecx, [esp + 0x2870]
push ecx
mov ecx, ebx
call fcn.00417110
lea edx, [esp + 0x2c80]
push edx
push str.______s__n
call fcn.004412c0
lea eax, [esp + 0x2878]
push eax
push str.______s__n
call fcn.004412c0
push 0x34
call fcn.0044e29f
add esp, 0x14
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 9
test eax, eax
je 0x428595
mov ecx, eax
call fcn.0044b430
mov ebx, eax
jmp 0x428597
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.0044b230
mov eax, dword [esp + 0x4c]
test eax, eax
jbe 0x428690
push eax
call fcn.0044e993
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.0044b230
test al, al
je 0x42867d
mov eax, dword [esi + 0xc]
test eax, eax
je 0x42867d
push eax
push str.lpBinaryPathName___s__n
call fcn.004412c0
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 0x428622
lea eax, [esp + 0x2a78]
push eax
push str.wszServiceFile___s__n
call fcn.004412c0
mov ebp, dword [esp + 0x20]
add esp, 8
push 0x46574c
push 0x468088
lea ecx, [esp + 0x2a80]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004459c0
lea edx, [esp + 0x2a78]
push edx
push str.wszServiceFile___s__n
call fcn.004412c0
add esp, 8
jmp 0x428681
mov ebp, dword [esp + 0x18]
test esi, esi
je 0x428694
push esi
call fcn.0044e988
add esp, 4
jmp 0x428694
mov ebp, dword [esp + 0x18]
test ebx, ebx
je 0x4286a8
mov ecx, ebx
call fcn.0044b680
push ebx
call fcn.0044e22a
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 0x4286b0
mov ecx, dword [ebp + 0xc]
push 0
lea eax, [esp + 0x2874]
push eax
call fcn.004454a0
test al, al
je 0x428bc2
push str..cab
lea ecx, [esp + 0x2c84]
push ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x1c], 1
call fcn.004453e0
test eax, eax
je 0x42886c
push str.CAB_file..._n
call fcn.004412c0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36b6]
push eax
mov word [esp + 0x36b8], dx
call fcn.0044e1b0
add esp, 0x10
lea ecx, [esp + 0x36a8]
push ecx
mov ecx, dword [ebp + 0xc]
push 0
push 0x470790
call fcn.00445fa0
test eax, eax
je 0x42886c
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a2]
push eax
mov word [esp + 0x2a4], dx
call fcn.0044e1b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3cd6]
push edx
mov word [esp + 0x3cd8], cx
call fcn.0044e1b0
lea eax, [esp + 0x2c98]
push 0x7c
push eax
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x4287e3
xor ecx, ecx
mov word [eax], cx
jmp 0x4287b0
movzx edx, word [esp + ecx + 0x2c80]
mov word [esp + ecx + 0x298], dx
add ecx, 2
test dx, dx
jne 0x4287b0
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 0x4287d4
push 0xa48
call fcn.0044e29f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 0xa
test eax, eax
je 0x42880e
mov ecx, eax
call fcn.00440e80
mov esi, eax
jmp 0x428810
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.00441050
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 0x428840
test esi, esi
je 0x42886c
mov ecx, esi
call fcn.004410e0
push esi
call fcn.0044e22a
add esp, 4
mov ecx, dword [ebp + 0xc]
push str..zip
lea edx, [esp + 0x2c84]
push edx
xor bl, bl
call fcn.004453e0
test eax, eax
je 0x428a73
push str.ZIP_file..._n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x3cce]
push ecx
mov word [esp + 0x3cd0], ax
call fcn.0044e1b0
add esp, 0x10
lea edx, [esp + 0x3cc0]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x428a73
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x309a]
push ecx
mov word [esp + 0x309c], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2e9e]
push eax
mov word [esp + 0x2ea0], dx
call fcn.0044e1b0
lea ecx, [esp + 0x2c98]
push 0x7c
push ecx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x428963
xor edx, edx
mov word [eax], dx
xor ecx, ecx
jmp 0x428930
movzx edx, word [esp + ecx + 0x2c80]
mov word [esp + ecx + 0x3090], dx
add ecx, 2
test dx, dx
jne 0x428930
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 0x428954
mov ecx, dword [ebp + 0xc]
push 0
lea eax, [esp + 0x3094]
push eax
call fcn.004454a0
test al, al
je 0x428a73
lea ecx, [esp + 0x2e88]
push ecx
lea edx, [esp + 0x3cc4]
push edx
lea eax, [esp + 0x4d0]
push 0x46d744
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.004412c0
lea eax, [esp + 0x30ac]
push 0
push eax
call fcn.004402f0
lea ecx, [esp + 0x2eac]
push ecx
push str.tszFileName___s__n
mov esi, eax
mov dword [esp + 0x7c], 0
call fcn.004412c0
lea edx, [esp + 0x2c4]
push edx
lea eax, [esp + 0x80]
push eax
push 1
lea ecx, [esp + 0x2ec0]
push ecx
push esi
call fcn.0043dd50
add esp, 0x40
test eax, eax
jne 0x428a6a
mov edx, dword [esp + 0x50]
push edx
lea eax, [esp + 0x2a0]
push eax
push str.ze.name___s__at_index__d_n
call fcn.004412c0
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x4d4]
push ecx
push edx
push esi
call fcn.00440380
push eax
push str._nRet__d_n
call fcn.004412c0
add esp, 0x20
xor eax, eax
jmp 0x428a50
movzx ecx, word [esp + eax + 0x4c8]
mov word [esp + eax + 0x2c80], cx
add eax, 2
test cx, cx
jne 0x428a50
mov bl, 1
push esi
call fcn.004403a0
add esp, 4
mov edi, 4
xor esi, esi
cmp dword [esp + 0x40], edi
jle 0x428b22
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x36b2]
push ecx
mov word [esp + 0x36b4], ax
call fcn.0044e1b0
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp byte [eax + 0x1c2cc], 0
je 0x428ac4
cmp dword [eax + 0x1c2c8], edi
jg 0x428abd
xor eax, eax
jmp 0x428ad5
add eax, 0x52c8
jmp 0x428ad5
cmp dword [eax + 0x1c2c8], edi
jg 0x428ad0
xor eax, eax
jmp 0x428ad5
add eax, 0x410
push eax
lea edx, [esp + 0x36ac]
push 0x467a2c
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x36b4]
push str.PRODUCTVERSION
push eax
call fcn.0044e882
add esp, 0x14
test eax, eax
jne 0x428b05
lea esi, [eax + 1]
lea ecx, [esp + 0x36a8]
push str.FILEVERSION
push ecx
call fcn.0044e882
add esp, 8
test eax, eax
je 0x428b22
test esi, esi
jne 0x428b60
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x2870]
push edx
lea eax, [esp + 0x2c84]
push eax
call fcn.0044aad0
test eax, eax
jle 0x428b46
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x2870]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x2c84]
push edx
call fcn.0044aad0
jmp 0x428ba1
cmp esi, 1
jne 0x428bae
lea eax, [esp + 0x2870]
push eax
lea ecx, [esp + 0x2c84]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0044abc0
test eax, eax
jle 0x428b89
mov dword [esp + 0x14], 2
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x2870]
push edx
lea eax, [esp + 0x2c84]
push eax
call fcn.0044abc0
cmp eax, 0xffffffff
jne 0x428bae
mov dword [esp + 0x14], 3
test bl, bl
je 0x428bc2
lea ecx, [esp + 0x2c80]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00445e70
lea edx, [esp + 0x27f0]
push str.VERIFY_FILE
push edx
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x429775
push 0x206
push eax
lea ecx, [esp + 0x3ed2]
push ecx
mov word [esp + 0x3ed4], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x40e6]
push eax
mov word [esp + 0x40e8], dx
call fcn.0044e1b0
mov edi, dword [esp + 0x48]
add esp, 0x18
cmp byte [edi + 0x1c2cc], 0
je 0x428c3c
cmp dword [edi + 0x1c2c8], 2
jg 0x428c34
xor eax, eax
jmp 0x428c4f
lea eax, [edi + 0x42c8]
jmp 0x428c4f
cmp dword [edi + 0x1c2c8], 2
jg 0x428c49
xor eax, eax
jmp 0x428c4f
lea eax, [edi + 0x208]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push eax
lea ecx, [esp + 0x3ecc]
push 0x467a2c
push ecx
call esi
add esp, 0xc
cmp byte [edi + 0x1c2cc], 0
je 0x428c86
cmp dword [edi + 0x1c2c8], 3
jg 0x428c7e
xor eax, eax
jmp 0x428c99
lea eax, [edi + 0x4ac8]
jmp 0x428c99
cmp dword [edi + 0x1c2c8], 3
jg 0x428c93
xor eax, eax
jmp 0x428c99
lea eax, [edi + 0x30c]
push eax
lea edx, [esp + 0x40d4]
push 0x467a2c
push edx
call esi
mov ebp, dword [esp + 0x24]
add esp, 0xc
lea eax, [esp + 0x3ec8]
push eax
mov ecx, ebp
call fcn.00417110
lea ecx, [esp + 0x40d0]
push ecx
mov ecx, ebp
call fcn.00417110
lea edx, [esp + 0x3ec8]
push edx
push str.______s__n
call fcn.004412c0
lea eax, [esp + 0x40d8]
push eax
push str.______s__n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x4702]
push edx
mov word [esp + 0x4704], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x4d26]
push ecx
mov word [esp + 0x4d28], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x4512]
push eax
mov word [esp + 0x4514], dx
call fcn.0044e1b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x492e]
push edx
mov word [esp + 0x4930], cx
call fcn.0044e1b0
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.004454a0
test al, al
je 0x429439
mov ecx, dword [ebp + 0xc]
push str..cab
lea edx, [esp + 0x3ecc]
push edx
mov dword [esp + 0x1c], 1
call fcn.004453e0
test eax, eax
je 0x428f2c
push str.CAB_file..._n
call fcn.004412c0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x36b6]
push ecx
mov word [esp + 0x36b8], ax
call fcn.0044e1b0
mov ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esp + 0x36a8]
push edx
push 0
push 0x470790
call fcn.00445fa0
test eax, eax
je 0x428f2c
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a2]
push ecx
mov word [esp + 0x2a4], ax
call fcn.0044e1b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x3cd6]
push eax
mov word [esp + 0x3cd8], dx
call fcn.0044e1b0
lea ecx, [esp + 0x3ee0]
push 0x7c
push ecx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x428ea3
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 0x428e70
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 0x428e94
push 0xa48
call fcn.0044e29f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 0xb
test eax, eax
je 0x428ece
mov ecx, eax
call fcn.00440e80
mov esi, eax
jmp 0x428ed0
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.00441050
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 0x428f00
test esi, esi
je 0x428f2c
mov ecx, esi
call fcn.004410e0
push esi
call fcn.0044e22a
add esp, 4
mov ecx, dword [ebp + 0xc]
push str..zip
lea eax, [esp + 0x3ecc]
push eax
mov byte [esp + 0x27], 0
call fcn.004453e0
test eax, eax
je 0x429136
push str.ZIP_file..._n
call fcn.004412c0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3cce]
push edx
mov word [esp + 0x3cd0], cx
call fcn.0044e1b0
add esp, 0x10
lea eax, [esp + 0x3cc0]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x429136
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x309a]
push edx
mov word [esp + 0x309c], cx
call fcn.0044e1b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x2a8e]
push ecx
mov word [esp + 0x2a90], ax
call fcn.0044e1b0
lea edx, [esp + 0x3ee0]
push 0x7c
push edx
call fcn.0044e936
add esp, 0x20
test eax, eax
je 0x429023
xor ecx, ecx
mov word [eax], cx
jmp 0x428ff0
movzx edx, word [esp + ecx + 0x3ec8]
mov word [esp + ecx + 0x3090], dx
add ecx, 2
test dx, dx
jne 0x428ff0
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 0x429014
mov ecx, dword [ebp + 0xc]
push 0
lea edx, [esp + 0x3094]
push edx
call fcn.004454a0
test al, al
je 0x429136
lea eax, [esp + 0x2a78]
push eax
lea ecx, [esp + 0x3cc4]
push ecx
lea edx, [esp + 0x4d0]
push 0x46d744
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.004412c0
lea edx, [esp + 0x30ac]
push 0
push edx
call fcn.004402f0
mov esi, eax
lea eax, [esp + 0x2a9c]
push eax
push str.tszFileName___s__n
mov dword [esp + 0x80], 0
call fcn.004412c0
lea ecx, [esp + 0x2c4]
push ecx
lea edx, [esp + 0x84]
push edx
push 1
lea eax, [esp + 0x2ab0]
push eax
push esi
call fcn.0043dd50
add esp, 0x40
test eax, eax
jne 0x42912d
mov ecx, dword [esp + 0x54]
push ecx
lea edx, [esp + 0x2a0]
push edx
push str.ze.name___s__at_index__d_n
call fcn.004412c0
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x4d4]
push eax
push ecx
push esi
call fcn.00440380
push eax
push str._nRet__d_n
call fcn.004412c0
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 0x429110
mov byte [esp + 0x1f], 1
push esi
call fcn.004403a0
add esp, 4
mov ebx, 4
xor esi, esi
cmp dword [esp + 0x40], ebx
jle 0x4291e1
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x36b2]
push eax
mov word [esp + 0x36b4], dx
call fcn.0044e1b0
add esp, 0xc
cmp byte [edi + 0x1c2cc], 0
je 0x429184
cmp dword [edi + 0x1c2c8], ebx
jg 0x42917c
xor eax, eax
jmp 0x429196
lea eax, [edi + 0x52c8]
jmp 0x429196
cmp dword [edi + 0x1c2c8], ebx
jg 0x429190
xor eax, eax
jmp 0x429196
lea eax, [edi + 0x410]
push eax
lea ecx, [esp + 0x36ac]
push 0x467a2c
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [esp + 0x36b4]
push str.PRODUCTVERSION
push edx
call fcn.0044e882
add esp, 0x14
test eax, eax
jne 0x4291c6
lea esi, [eax + 1]
lea eax, [esp + 0x36a8]
push str.FILEVERSION
push eax
call fcn.0044e882
add esp, 8
test eax, eax
jne 0x4291e1
xor esi, esi
mov dword [esp + 0x38], 0
test esi, esi
jne 0x4292d8
lea ecx, [esp + 0x40d0]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x3ecc]
push edx
call fcn.0044aad0
test eax, eax
jle 0x429215
mov dword [esp + 0x14], 2
lea eax, [esp + 0x40d0]
push eax
lea ecx, [esp + 0x3ecc]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0044aad0
cmp eax, 0xffffffff
jne 0x42923a
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.004486b0
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.004486b0
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.004488a0
jmp 0x4293c3
cmp esi, 1
jne 0x429422
lea ecx, [esp + 0x40d0]
push ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x3ecc]
push edx
call fcn.0044abc0
test eax, eax
jle 0x429305
mov dword [esp + 0x14], 2
lea eax, [esp + 0x40d0]
push eax
lea ecx, [esp + 0x3ecc]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0044abc0
cmp eax, 0xffffffff
jne 0x42932a
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.00449200
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.00449200
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.00448d50
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 0x429439
lea ecx, [esp + 0x3ec8]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00445e70
lea edx, [esp + 0x46e8]
push edx
push str.wszSrcVersion___s__n
call fcn.004412c0
lea eax, [esp + 0x44e8]
push eax
push str.wszInstalledVersion___s__n
call fcn.004412c0
lea ecx, [esp + 0x4900]
push ecx
push str.wszInstalledDisplayVersion___s__n
call fcn.004412c0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x4b1a]
push eax
mov word [esp + 0x4b1c], dx
call fcn.0044e1b0
xor ecx, ecx
push 0x1ffe
push ecx
lea edx, [esp + 0x9f36]
push edx
mov word [esp + 0x9f38], cx
call fcn.0044e1b0
lea eax, [ebp + 0x28c0]
lea edx, [esp + 0x9f38]
add esp, 0x30
sub edx, eax
jmp 0x4294c0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4294c0
lea eax, [esp + 0x9f08]
push eax
push 0x4706cc
call fcn.004412c0
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 0x429722
push 0x1c2d0
call fcn.0044e29f
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xbf14], 0xc
test eax, eax
je 0x429535
mov ecx, eax
call fcn.004409e0
mov ebx, eax
jmp 0x429537
xor ebx, ebx
push 0x4706c8
lea edx, [esp + 0x9f0c]
push edx
mov ecx, ebx
mov dword [esp + 0xbf1c], 0xffffffff
call fcn.00440c30
cmp eax, 3
jl 0x4296c3
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x42e2]
push ecx
mov word [esp + 0x42e4], ax
call fcn.0044e1b0
add esp, 0xc
cmp byte [ebx + 0x1c2cc], 0
je 0x42959d
cmp dword [ebx + 0x1c2c8], 2
jg 0x429595
xor ecx, ecx
jmp 0x4295b0
lea ecx, [ebx + 0x42c8]
jmp 0x4295b0
cmp dword [ebx + 0x1c2c8], 2
jg 0x4295aa
xor ecx, ecx
jmp 0x4295b0
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 0x4295b7
cmp word [esp + 0x42d8], ax
je 0x4296c3
lea edx, [esp + 0x42d8]
push 0x2e
push edx
call fcn.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x429607
lea eax, [esi + 2]
push eax
call fcn.0044e92b
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.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x429638
lea eax, [esi + 2]
push eax
call fcn.0044e92b
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.0044e95c
mov esi, eax
add esp, 8
test esi, esi
je 0x429664
lea eax, [esi + 2]
push eax
call fcn.0044e92b
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 0x429670
sub eax, edx
sar eax, 1
je 0x429694
lea edx, [esp + 0x42d8]
push edx
call fcn.0044e92b
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.004412c0
mov si, word [esp + 0x27d0]
add esp, 0x14
test ebx, ebx
je 0x4296d7
mov ecx, ebx
call fcn.00440490
push ebx
call fcn.0044e22a
add esp, 4
mov ax, word [esp + 0x27b0]
cmp ax, di
jne 0x429711
mov ax, word [esp + 0x27b2]
cmp ax, bp
jne 0x429711
mov ax, word [esp + 0x27b4]
cmp ax, si
jne 0x429711
mov ax, word [esp + 0x27b6]
mov cx, word [esp + 0x27be]
cmp ax, cx
jbe 0x429722
mov esi, dword [esp + 0x18]
xor ecx, ecx
mov word [esi + 0x28c0], cx
jmp 0x429726
mov esi, dword [esp + 0x18]
cmp word [esi + 0x28c0], 0
jne 0x429775
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.00416fe0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
push edi
push esi
push str.nFinalRet___d____nRet___d__n
call fcn.004412c0
add esp, 0xc
cmp edi, 3
jne 0x429795
mov esi, edi
jmp 0x4297ae
cmp edi, 1
jne 0x4297a3
cmp esi, 3
je 0x4297b2
mov esi, edi
jmp 0x4297ae
cmp edi, 2
jne 0x4297b2
test esi, esi
jne 0x4297b2
mov esi, edi
mov dword [esp + 0x48], esi
push esi
push str.nFinalRet___d__n
call fcn.004412c0
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.00440490
push ebp
call fcn.0044e22a
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 0x409a30
test al, al
jne 0x4250b9
mov eax, dword [esp + 0x48]
jmp 0x429809
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.0044e1a0
add esp, 0xbf04
ret 4