Function at 0x426c30
Capabilities:
Check if file exists
Delete file
Extract resource via kernel32 functions
Get disk information
Get disk size
Get file attributes

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43d52b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x338
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x4574c8]
mov esi, dword [0x4574c0]
push 0x30
mov dword [ebp - 0x274], eax
lea eax, [ebp - 0x260]
push 0
push eax
mov dword [ebp - 0x270], esi
call fcn.0042a4e0
mov ax, word [0x4574e0]
add esp, 0xc
mov word [ebp - 0x1c], ax
xorps xmm0, xmm0
xor eax, eax
mov dword [ebp - 0x1a], 0x5c003a
mov word [ebp - 0x16], ax
push 0x100
push eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x208]
push eax
movq qword [ebp - 0x31c], xmm0
movups xmmword [ebp - 0x108], xmm0
movups xmmword [ebp - 0xf8], xmm0
movq qword [ebp - 0xe8], xmm0
movq qword [ebp - 0x28c], xmm0
movq qword [ebp - 0x330], xmm0
movq qword [ebp - 0x328], xmm0
call fcn.0042a4e0
add esp, 0xc
mov dword [ebp - 0xd4], 0
xorps xmm0, xmm0
lea eax, [ebp - 0x4c]
movups xmmword [ebp - 0x348], xmm0
push 0x30
push 0
push eax
movq qword [ebp - 0x338], xmm0
movq qword [ebp - 0xdc], xmm0
call fcn.0042a4e0
add esp, 0xc
mov dword [ebp - 0x20c], 0
lea eax, [ebp - 0xd0]
push 0x80
push 0
push eax
call fcn.0042a4e0
add esp, 0xc
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x314], 0
mov dword [ebp - 0x280], 0
push 0x30636
push 0
push dword [0x45764c]
mov byte [ebp - 0x215], 0
mov byte [ebp - 0x216], 0
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
mov dword [ebp - 0x214], edi
test edi, edi
je 0x426df6
push 0x300
push 0
push dword [0x45764c]
mov dword [ebp - 0x240], 0x20
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x238], eax
test eax, eax
jne 0x426e05
push edi
push eax
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [0x45771c], 8
jmp 0x42804e
lea eax, [edi + 0x10212]
mov dword [ebp - 0x294], edi
mov dword [ebp - 0x29c], eax
lea eax, [edi + 0x20424]
mov dword [ebp - 0x298], eax
lea eax, [ebp - 0x26c]
push eax
push 0x104
push 0x457720
push 0x400
push 0
push dword [0x45631c]
mov dword [ebp - 0x26c], str.MS_Update_Extract
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
sub esp, 8
lea ecx, [ebp - 0x310]
push 0x457720
push dword [0x45633c]
sub esp, 8
push 0x457720
call fcn.00402d80
lea ecx, [ebp - 0x310]
mov dword [ebp - 4], 0
call fcn.00402fd0
push 0x4037c0
push 0xfa
push 0x65
push dword [ebp - 0x308]
lea eax, [ebp - 0x310]
mov dword [0x45754c], eax
mov dword [ebp - 0x10c], eax
call dword [sym.imp.USER32.dll_SetTimer]
movzx ecx, byte [ebp - 0x2d2]
test eax, eax
lea eax, [ebp - 0x264]
mov dword [ebp - 0x264], 0
mov edx, 1
mov dword [ebp - 0x27c], 0
push eax
cmovne ecx, edx
push 0x2000e
mov byte [ebp - 0x2d2], cl
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x426f21
lea eax, [ebp - 0x27c]
push eax
push 2
push dword [ebp - 0x264]
call dword [sym.imp.ADVAPI32.dll_DuplicateToken]
push dword [ebp - 0x264]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x27c]
mov dword [ebp - 0x244], eax
mov eax, 1
mov dword [ebp - 0x250], 0xffffffff
mov dword [ebp - 0x24c], 0xffffffff
mov dword [0x45771c], 0
mov dword [ebp - 0x268], eax
cmp esi, eax
jbe 0x427592
nop dword [eax + eax]
mov ecx, dword [ebp - 0x274]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebp - 0x30c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jne 0x42767c
mov eax, dword [ebp - 0x240]
cmp dword [ebp - 0x23c], eax
jne 0x426fd6
add eax, eax
mov dword [ebp - 0x240], eax
lea eax, [eax + eax*2]
shl eax, 3
push eax
push dword [ebp - 0x248]
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov ecx, eax
mov dword [ebp - 0x238], ecx
test ecx, ecx
je 0x427592
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x248], ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x238], eax
cmp word [esi], 0x2f
jne 0x42704f
movzx eax, word [esi + 2]
cmp eax, 0x4d
je 0x426fea
cmp eax, 0x6d
jne 0x42701f
movzx ecx, word [esi + 4]
cmp ecx, 0x53
je 0x426ff8
cmp ecx, 0x73
jne 0x42701f
movzx ecx, word [esi + 6]
cmp ecx, 0x55
je 0x427006
cmp ecx, 0x75
jne 0x42701f
movzx ecx, word [esi + 8]
cmp ecx, 0x45
je 0x427014
cmp ecx, 0x65
jne 0x42701f
cmp word [esi + 0xa], 0
je 0x427573
cmp eax, 0x41
je 0x42702d
cmp eax, 0x61
jne 0x4270ba
movzx ecx, word [esi + 4]
cmp ecx, 0x52
je 0x42703b
cmp ecx, 0x72
jne 0x4270ba
cmp word [esi + 6], 0
jne 0x4270ba
cmp dword [0x4574d4], 0
je 0x42806e
push ecx
lea eax, [ebp - 0x22c]
mov ecx, esi
push eax
lea edx, [ebp - 0x214]
call fcn.00404830
add esp, 8
test al, al
je 0x427573
push 0
push 0x2000080
push 3
push 0
push 7
push 0x120089
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x224], esi
cmp esi, 0xffffffff
jne 0x427253
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x427573
cmp dword [0x4574d4], 0
je 0x42806e
jmp 0x427573
cmp eax, 0x41
je 0x4270c4
cmp eax, 0x61
jne 0x42704f
cmp word [esi + 4], 0x3d
jne 0x42704f
lea edi, [esi + 6]
mov byte [ebp - 0x20d], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x228], xmm0
test edi, edi
je 0x42723e
movzx eax, word [edi]
test ax, ax
je 0x42723e
cmp ax, 9
je 0x4271a0
cmp ax, 0x20
je 0x4271a0
cmp ax, 0xd
je 0x4271a0
cmp ax, 0xa
je 0x4271a0
mov ecx, 0xa0
cmp ax, cx
je 0x4271a0
cmp ax, 0xc
je 0x4271a0
cmp ax, 0xb
je 0x4271a0
mov ecx, 0x85
cmp ax, cx
je 0x4271a0
mov ecx, 0x2028
cmp ax, cx
je 0x4271a0
mov ecx, 0x2029
cmp ax, cx
je 0x4271a0
mov ecx, 0x202f
cmp ax, cx
je 0x4271a0
mov ecx, 0x1680
cmp ax, cx
je 0x4271a0
mov ecx, 0x180e
cmp ax, cx
je 0x4271a0
mov ecx, 0x1fff
cmp ax, cx
jbe 0x427182
mov ecx, 0x200c
cmp ax, cx
jb 0x4271a0
mov ecx, 0x3000
cmp ax, cx
je 0x4271a0
mov ecx, 0xfeff
cmp ax, cx
je 0x4271a0
mov ecx, 0x205f
cmp ax, cx
jne 0x4271ac
movzx eax, word [edi + 2]
add edi, 2
jmp 0x4270f4
cmp ax, 0x2b
je 0x4271c2
movzx ecx, ax
cmp ax, 0x2d
jne 0x4271c9
mov byte [ebp - 0x20d], 1
movzx ecx, word [edi + 2]
add edi, 2
mov esi, dword [ebp - 0x228]
cmp cx, 0x30
jb 0x427225
movzx edx, cx
mov ecx, dword [ebp - 0x224]
nop
cmp dx, 0x39
ja 0x427225
mov eax, esi
mov dword [ebp - 0x224], ecx
shld ecx, eax, 2
shl eax, 2
add esi, eax
movzx eax, dx
cdq
adc dword [ebp - 0x224], ecx
mov ecx, dword [ebp - 0x224]
shld ecx, esi, 1
add esi, esi
add esi, eax
movzx eax, word [edi + 2]
adc ecx, edx
sub esi, 0x30
mov edx, eax
sbb ecx, 0
add edi, 2
cmp eax, 0x30
jae 0x4271e0
mov eax, esi
neg eax
cmp byte [ebp - 0x20d], 0
cmove eax, esi
or dword [ebp - 0x220], eax
jmp 0x427573
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
or dword [ebp - 0x220], eax
jmp 0x427573
mov eax, dword [ebp - 0x238]
xorps xmm0, xmm0
mov dword [ebp - 0x28c], 0
push 0x23
push 8
movups xmmword [eax], xmm0
mov eax, dword [ebp - 0x238]
movq qword [eax + 0x10], xmm0
mov ecx, dword [ebp - 0x238]
mov ax, word [0x457638]
mov word [ecx + 4], ax
mov eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x22c]
sub ecx, edi
sar ecx, 1
mov word [eax + 6], cx
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x31c]
push eax
push esi
call dword [0x4576d0]
test eax, eax
jns 0x42730c
push 4
push 0x28
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x31c]
push eax
push esi
call dword [0x4576d0]
test eax, eax
js 0x42756c
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x28c], eax
mov ax, word [edi + 8]
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x42731c
cmp eax, 2
je 0x42731c
mov eax, dword [ebp - 0x238]
or dword [eax], 0x80000000
jmp 0x42731c
test dword [ebp - 0x28c], 0x400
jne 0x42756c
cmp dword [ebp - 0x21c], 0
jne 0x427384
mov eax, dword [ebp - 0x238]
cmp dword [eax], 0
movzx eax, word [0x4574e0]
jl 0x42733b
movzx eax, word [edi + 8]
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x328]
push eax
lea eax, [ebp - 0x330]
push eax
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x42737c
mov eax, dword [ebp - 0x250]
or eax, dword [ebp - 0x24c]
je 0x42737c
mov dword [ebp - 0x21c], 1
jmp 0x427384
xor eax, eax
mov dword [ebp - 0x21c], eax
test byte [ebp - 0x28c], 0x10
je 0x4273f9
mov eax, dword [ebp - 0x220]
lea edx, [ebp - 0x260]
and eax, 4
push ecx
or eax, 9
lea ecx, [ebp - 0x310]
add eax, 0x8000
push eax
push 0
push edi
call fcn.00404c20
add esp, 0x10
test al, al
jne 0x42756c
cmp dword [0x45771c], 0
je 0x42756c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x30c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jne 0x428018
cmp dword [0x45771c], 5
je 0x4275f6
jmp 0x427573
lea eax, [ebp - 0xdc]
push 0
push eax
lea edx, [ebp - 0x348]
lea ecx, [ebp - 0x224]
call fcn.00409130
add esp, 8
test al, al
je 0x42742f
cmp dword [ebp - 0xd4], 0
jne 0x42756c
mov ecx, dword [ebp - 0x238]
jmp 0x4274a8
mov eax, dword [ebp - 0x238]
cmp dword [eax], 0
jl 0x427465
cmp dword [0x4574d4], 0
jne 0x427465
movzx eax, word [eax + 6]
mov edx, edi
mov ecx, dword [ebp - 0x244]
push 0x120156
push eax
call fcn.00403fc0
add esp, 8
test al, al
je 0x4275ef
push ecx
lea eax, [ebp - 0xd0]
mov edx, edi
push eax
lea eax, [ebp - 0x348]
mov ecx, esi
push eax
call fcn.00426800
movzx ecx, al
add esp, 0xc
mov eax, dword [ebp - 0x238]
shl ecx, 0x1c
xor ecx, dword [eax]
and ecx, 0x30000000
xor dword [eax], ecx
mov ecx, dword [ebp - 0x238]
test dword [ecx], 0x30000000
je 0x42756c
mov eax, dword [ebp - 0x344]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov edi, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0x2bc]
add edi, eax
movzx eax, word [ebp - 0x346]
adc ecx, 0
cdq
add dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2c0], edi
adc dword [ebp - 0x2ac], edx
mov dword [ebp - 0x2bc], ecx
cmp ecx, dword [ebp - 0x24c]
ja 0x42761b
jb 0x427503
cmp edi, dword [ebp - 0x250]
ja 0x42761b
mov eax, dword [ebp - 0x238]
movzx eax, word [eax + 4]
lea eax, [eax*2 + 2]
push eax
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x238]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x238]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x42760f
movzx eax, word [eax + 4]
mov edx, dword [ebp - 0x214]
lea eax, [eax*2 + 2]
push eax
push edx
push ecx
call fcn.0043c9e0
inc dword [ebp - 0x25c]
add esp, 0xc
add dword [ebp - 0x238], 0x18
inc dword [ebp - 0x23c]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x268]
mov edi, dword [ebp - 0x214]
inc eax
mov dword [ebp - 0x268], eax
cmp eax, dword [ebp - 0x270]
jb 0x426f60
mov eax, dword [ebp - 0x2b0]
or eax, dword [ebp - 0x2ac]
je 0x428018
mov ecx, dword [ebp - 0x220]
mov eax, ecx
shl cl, 3
and eax, 1
not cl
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x2c0]
and cl, 0x10
mov dword [ebp - 0x220], ecx
mov ecx, dword [ebp - 0x2bc]
test ecx, ecx
jne 0x4276bd
cmp eax, 0x63
ja 0x4276bd
mov dword [ebp - 0x2a8], 1
jmp 0x4276ce
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x4574d4], 0
je 0x42806e
mov dword [0x45771c], 5
jmp 0x427632
mov dword [0x45771c], 8
jmp 0x42762c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x45771c], 1
mov edi, dword [ebp - 0x214]
cmp byte [ebp - 0x2d2], 0
je 0x427646
lea ecx, [ebp - 0x310]
call fcn.004036e0
sub esp, 8
lea ecx, [ebp - 0x310]
call fcn.00403080
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push dword [0x45771c]
lea ecx, [ebp - 0x310]
push 0x5dc
call fcn.00403330
jmp 0x428018
push 0x65
push dword [ebp - 0x308]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebp - 0x30c]
push 0
push 0
push 0x44413c
mov byte [ebp - 0x2d2], 0
mov ecx, dword [eax]
push 2
push eax
call dword [ecx + 0x28]
mov eax, dword [ebp - 0x30c]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
jmp 0x428018
push 0
push 0x64
push ecx
push eax
call fcn.0043d1d0
mov dword [ebp - 0x2a8], eax
push 0x65
push dword [ebp - 0x308]
xorps xmm0, xmm0
mov byte [ebp - 0x2d1], 1
movlpd qword [ebp - 0x2d0], xmm0
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebp - 0x30c]
push 0
push 0
push 0x44413c
mov byte [ebp - 0x2d2], 0
mov ecx, dword [eax]
push 2
push eax
call dword [ecx + 0x28]
mov eax, dword [ebp - 0x30c]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
cmp byte [ebp - 0x2d7], 0
je 0x427759
mov eax, dword [ebp - 0x304]
mov byte [ebp - 0x2d7], 0
test eax, eax
je 0x427759
push 0
push 0
push 0x40a
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x50000000
push 0xfffffffffffffff0
push dword [ebp - 0x304]
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov esi, dword [0x45754c]
mov ecx, dword [esi + 0x60]
call fcn.00428880
push 0x14
push 0x457550
mov dword [ebp - 0x278], eax
push dword [esi + 0x54]
push dword [esi + 0x50]
call dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
push 0x26
push str.MS_Update_Extract:
push 0x457720
mov dword [ebp - 0x274], eax
call fcn.0043c9e0
add esp, 0xc
lea eax, [ebp - 0x278]
push eax
push 0xf1
push 0x457746
push 0x400
push 0
push dword [0x4563bc]
push 0x2400
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov eax, dword [ebp - 0x30c]
push 0
push 0
push 0x457720
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x28]
mov dword [ebp - 0x310], eax
mov eax, dword [ebp - 0x30c]
push 0
mov byte [ebp - 0x2d1], 1
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
mov ecx, dword [ebp - 0x23c]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x310], eax
mov eax, 0x8109
mov word [ebp - 0x206], ax
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x204], edi
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x238], eax
test ecx, ecx
je 0x427fe1
mov eax, dword [ebp - 0x30c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
test eax, eax
jne 0x427fdb
mov eax, dword [ebp - 0x238]
push 0
push 1
movzx ecx, word [eax + 6]
mov eax, dword [eax + 0x10]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x30c]
push eax
push 2
push ecx
mov edx, dword [ecx]
call dword [edx + 0x28]
mov ecx, dword [ebp - 0x238]
xorps xmm0, xmm0
mov dword [ebp - 0x310], eax
mov eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x2b4]
mov dword [0x45771c], 0
movq qword [ebp - 0xdc], xmm0
mov dword [ebp - 0xd4], 0
movq qword [ebp - 0x118], xmm0
mov dword [ebp - 0x110], 0
cmp dword [ecx], 0
mov dword [ebp - 0x22c], eax
jge 0x42793b
mov eax, dword [0x4576b4]
movzx edi, ax
add edi, edi
push edi
push dword [0x4574d0]
push dword [ebp - 0x204]
call fcn.0043c9e0
mov edx, dword [ebp - 0x238]
add esp, 0xc
movzx ecx, word [edx + 6]
mov ax, word [edx + 4]
sub ax, cx
movzx esi, ax
lea eax, [esi*2 + 2]
push eax
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*2]
push eax
mov eax, dword [ebp - 0x204]
add eax, edi
push eax
call fcn.0043c9e0
mov ecx, dword [0x4576b4]
mov edi, dword [ebp - 0x214]
mov word [ebp - 0x1fa], cx
lea eax, [esi + ecx]
mov ecx, dword [ebp - 0x238]
mov word [ebp - 0x208], ax
jmp 0x427971
movzx eax, word [ecx + 4]
lea eax, [eax*2 + 2]
push eax
push dword [ecx + 0x10]
push dword [ebp - 0x204]
call fcn.0043c9e0
mov ecx, dword [ebp - 0x238]
movzx eax, word [ecx + 4]
mov word [ebp - 0x208], ax
movzx eax, word [ecx + 6]
mov word [ebp - 0x1fa], ax
mov eax, dword [ebp - 0x220]
add esp, 0xc
mov byte [ebp - 0x1f2], al
mov dword [ebp - 0xd4], 1
mov eax, dword [ecx]
mov esi, dword [ecx + 0x10]
and eax, 0x30000000
jne 0x4279d5
lea eax, [ebp - 0xdc]
push eax
push 0xffffffffffffffff
push 0x407cd0
push 0x407cb0
push 0x407c20
push 0x407bf0
push 0x407b10
push 0x4076e0
push 0x4076c0
call dword [sym.imp.Cabinet.dll_FDICreate]
mov edi, eax
mov dword [ebp - 0x21c], edi
jmp 0x427b36
cmp eax, 0x10000000
jne 0x427a6b
push 0
push 0x2000080
push 3
push 0
push 7
push 0x120089
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x427a11
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd8], eax
jmp 0x427ec1
push 0
mov dl, 1
mov ecx, edi
call fcn.00414f20
add esp, 4
mov dword [0x457488], eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [sym.imp.Cabinet.dll_FDICreate]
push 0xffffffffffffffff
push 0x4265f0
push 0x407cb0
push 0x407c20
push 0x407bf0
push 0x4264f0
push 0x4076e0
push 0x4076c0
call eax
mov edi, eax
mov dword [ebp - 0x21c], edi
jmp 0x427b36
push 0x22
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
mov dword [ebp - 0x20c], edi
test edi, edi
jne 0x427a93
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd8], eax
jmp 0x427ec7
push 0
push str.CABINET
push 0xa
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
mov edi, eax
test edi, edi
jne 0x427ab8
mov dword [ebp - 0xd8], 0x714
jmp 0x427ec1
push edi
push dword [ebp - 0x20c]
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
jne 0x427adf
mov dword [ebp - 0xd8], 0x716
jmp 0x427ec1
push edi
push dword [ebp - 0x20c]
lea esi, [ebp - 0x34]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [sym.imp.Cabinet.dll_FDICreate]
push 0xffffffffffffffff
push 0x40b4e0
push 0x40b4c0
push 0x407c20
push 0x40b450
push 0x40b3b0
push 0x4076e0
push 0x4076c0
call eax
mov edi, eax
mov dword [ebp - 0x21c], eax
add esp, 0x24
test edi, edi
je 0x427ec1
mov word [0x4575a3], 0x5c
mov dl, 1
mov ecx, 0x4575a3
test esi, esi
je 0x427ea5
nop dword [eax]
mov eax, esi
dec ecx
and eax, 0xf
shr esi, 4
inc dl
mov al, byte [eax + 0x44e588]
mov byte [ecx], al
test esi, esi
jne 0x427b60
cmp dl, 0x16
jbe 0x427b83
push 0x6f
jmp 0x427ea7
inc dl
movzx eax, dl
push eax
push ecx
lea eax, [ebp - 0x4c]
push eax
call fcn.0043c9e0
movzx edx, word [ebp - 0x208]
add esp, 0xc
mov esi, dword [ebp - 0x204]
mov ecx, edx
mov eax, edx
lea eax, [esi + eax*2]
test cx, cx
je 0x427bf0
nop
sub eax, 2
cmp word [eax], 0x2e
jne 0x427bc6
add edx, 0xffff
test dx, dx
jne 0x427bb0
jmp 0x427bf0
test dx, dx
je 0x427bf0
nop dword [eax + eax]
movzx ecx, word [eax]
cmp ecx, 0x2e
je 0x427bf0
cmp ecx, 0x5c
je 0x427c0d
cmp ecx, 0x2f
je 0x427bf0
add edx, 0xffff
sub eax, 2
test dx, dx
jne 0x427bd0
movzx eax, word [eax]
cmp eax, 0x5c
je 0x427c0d
cmp eax, 0x2f
je 0x427c0d
test dx, dx
je 0x427c0d
add edx, 0xffff
test dx, dx
jne 0x427c1b
movzx edx, word [ebp - 0x208]
or byte [ebp - 0x1f2], 0x10
movzx ecx, dx
test dx, dx
je 0x427c3c
add edx, 0xffff
movzx eax, dx
movzx eax, word [esi + eax*2]
cmp eax, 0x5c
je 0x427c3c
cmp eax, 0x2f
je 0x427c3c
mov edx, ecx
movzx eax, dx
xor ecx, ecx
mov word [ebp - 0x208], dx
mov word [esi + eax*2], cx
test byte [ebp - 0x1f2], 0x10
je 0x427c97
push dword [ebp - 0x204]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x427c97
push dword [ebp - 0x206]
mov edx, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x204]
call fcn.004045b0
mov ecx, eax
add esp, 4
mov ax, word [0x457638]
mov dword [ebp - 0x204], ecx
mov word [ebp - 0x208], ax
jmp 0x427ca4
mov ecx, dword [ebp - 0x204]
mov ax, word [ebp - 0x208]
movzx eax, ax
mov edx, 0x5c
mov word [ecx + eax*2], dx
mov ax, word [ebp - 0x208]
inc ax
mov word [ebp - 0x208], ax
movzx ecx, ax
mov eax, dword [ebp - 0x204]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x200], eax
lea eax, [ebp - 0x208]
push eax
push 0
push 0x407cf0
push 0
lea eax, [ebp - 0x4c]
push eax
push str.______
push edi
call dword [sym.imp.Cabinet.dll_FDICopy]
add esp, 0x1c
mov edi, eax
push dword [ebp - 0x21c]
call dword [sym.imp.Cabinet.dll_FDIDestroy]
mov ecx, dword [ebp - 0x238]
add esp, 4
mov esi, dword [ecx]
and esi, 0x30000000
cmp esi, 0x10000000
jbe 0x427d28
push dword [ebp - 0x20c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
cmp esi, 0x10000000
cmovbe eax, dword [ebp - 0x20c]
mov dword [ebp - 0x20c], eax
mov esi, eax
test edi, edi
je 0x427ec1
movzx eax, word [ebp - 0x208]
mov edx, dword [ebp - 0x214]
movups xmm0, xmmword [str._manifest_.cix.xml]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea ecx, [edx + eax*2]
movups xmmword [ecx], xmm0
push edx
movups xmm0, xmmword [0x444f5c]
movups xmmword [ecx + 0x10], xmm0
mov eax, dword [0x444f6c]
mov dword [ecx + 0x20], eax
mov ax, word [0x444f70]
mov word [ecx + 0x24], ax
call edi
cmp eax, 0xffffffff
je 0x427de5
lea eax, [ebp - 0x215]
push eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x314]
push eax
lea edx, [ebp - 0x290]
lea ecx, [ebp - 0x310]
call fcn.00409570
add esp, 0x18
test eax, eax
jne 0x427e78
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd8], eax
mov edi, esi
jmp 0x427ec7
movzx eax, word [ebp - 0x208]
mov edx, dword [ebp - 0x214]
movups xmm0, xmmword [str._sfx_manifest_]
push edx
lea ecx, [edx + eax*2]
movups xmmword [ecx], xmm0
movq xmm0, qword [0x444f84]
movq qword [ecx + 0x10], xmm0
mov eax, dword [0x444f8c]
mov dword [ecx + 0x18], eax
mov ax, word [0x444f90]
mov word [ecx + 0x1c], ax
call edi
cmp eax, 0xffffffff
je 0x427e78
lea eax, [ebp - 0x216]
push eax
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x280]
push eax
lea edx, [ebp - 0x284]
lea ecx, [ebp - 0x310]
call fcn.00409890
add esp, 0x18
test eax, eax
jne 0x427e78
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd8], eax
mov edi, esi
jmp 0x427ec7
cmp byte [ebp - 0x270], 0
mov dword [ebp - 0x20c], esi
je 0x427fb9
mov eax, dword [ebp - 0x238]
push dword [eax + 0x10]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x20c], esi
jmp 0x427fb9
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [ebp - 0xdc], 1
mov dword [ebp - 0xd8], 2
mov edi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x238]
mov esi, dword [eax]
and esi, 0x30000000
cmp esi, 0x10000000
jbe 0x427ee4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
cmp esi, 0x10000000
mov esi, dword [ebp - 0x114]
cmovbe eax, edi
cmp dword [ebp - 0x224], 1
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0xd8]
sete cl
test eax, eax
mov byte [ebp - 0x268], cl
cmovne esi, eax
mov dword [0x45771c], esi
test esi, esi
jne 0x427f40
mov eax, dword [ebp - 0xdc]
test eax, eax
mov esi, dword [ebp - 0x118]
cmovne esi, eax
or cl, 8
mov dword [0x45771c], esi
mov byte [ebp - 0x268], cl
mov eax, dword [ebp - 0x238]
push 0
push dword [ebp - 0x2a8]
mov ecx, dword [eax + 8]
add ecx, dword [ebp - 0x274]
mov eax, dword [eax + 0xc]
adc eax, dword [ebp - 0x22c]
push eax
push ecx
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2b4], eax
call fcn.0043d1d0
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], edx
cmp edx, dword [ebp - 0x2cc]
jb 0x427fa2
ja 0x427f91
cmp eax, dword [ebp - 0x2d0]
jbe 0x427fa2
lea ecx, [ebp - 0x310]
call fcn.004031a0
mov esi, dword [0x45771c]
push dword [ebp - 0x268]
lea ecx, [ebp - 0x310]
push esi
push 0x3e8
call fcn.00403330
mov esi, dword [ebp - 0x224]
add dword [ebp - 0x238], 0x18
dec esi
mov edi, dword [ebp - 0x214]
mov dword [ebp - 0x224], esi
test esi, esi
jne 0x427835
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [ebp - 0x310]
mov byte [ebp - 0x2c8], 0x64
call fcn.004031a0
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x290]
test eax, eax
je 0x42800b
push eax
call esi
mov eax, dword [ebp - 0x284]
test eax, eax
je 0x428018
push eax
call esi
push edi
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
sub esp, 8
lea ecx, [ebp - 0x260]
call fcn.00403870
add esp, 8
lea ecx, [ebp - 0x310]
call fcn.00403270
lea ecx, [ebp - 0x310]
call fcn.00402f30
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00428cd6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push edi
push 0
push dword [0x45764c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
sub esp, 8
lea ecx, [ebp - 0x260]
call fcn.00403870
push ecx
xor edx, edx
lea ecx, [ebp - 0x310]
call fcn.00403910
int3