Function at 0x429370
Capabilities:
Create directory
Delete file
Encode data using base64

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0xa44
push ebx
xor ebx, ebx
cmp dword [0x4bde44], ebx
push esi
push edi
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x28], ebx
jne 0x4293a6
mov esi, 0x4bdf74
push esi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
call fcn.0040e6cd
push esi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
push dword [ebp + 0x60]
lea ecx, [ebp - 0x7c]
call fcn.0040faa2
push 0x104
lea eax, [ebp - 0x9d0]
push eax
push 0x2711
push dword [0x4bde84]
mov dword [ebp - 0xd8], ebx
call fcn.00437f99
add esp, 0x10
push 0x4a9478
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xa8], ebx
call fcn.004457e4
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xe4], ebx
call fcn.0043d47d
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xac], 0x80000000
call fcn.0043d47d
lea ecx, [ebp - 0xcc]
call fcn.0043d47d
lea eax, [ebp - 0xe4]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x9c]
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0x6c], eax
call fcn.0040fc79
shrd eax, edx, 0x10
shr edx, 0x10
mov edx, 0x60000
cmp eax, edx
sbb cl, cl
inc cl
cmp eax, edx
mov dword [ebp - 0xec], eax
mov byte [ebp + 0x47], cl
jb 0x42947f
cmp eax, 0x6ffff
mov byte [ebp + 0x57], 1
jbe 0x429482
mov byte [ebp + 0x57], bl
lea ecx, [ebp + 0x4c]
mov byte [ebp + 0x3b], bl
call fcn.0043d47d
push 7
pop ecx
xor eax, eax
mov esi, str._SystemRoot__
lea edi, [ebp - 0x124]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x60]
lea edi, [ebp - 0x108]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 1
stosd dword es:[edi], eax
push ebx
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.0044b30d
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov dword [ebp - 0xb4], eax
add eax, 0x1e
push eax
lea ecx, [ebp + 0x4c]
call fcn.0043d4c2
cmp byte [ebp + 0x57], bl
jl 0x429511
push dword [ebp + 0x4c]
lea ecx, [ebp - 0x14]
call fcn.004457e4
push 0x4a9430
lea ecx, [ebp - 0x14]
call fcn.0043d4e9
push dword [ebp - 0x14]
call fcn.0048f0e8
neg eax
sbb al, al
pop ecx
lea ecx, [ebp - 0x14]
and eax, 3
mov byte [ebp + 0x57], al
call fcn.00437960
push 0x400032
lea ecx, [ebp - 0x38]
mov dword [ebp + 0x2c], 1
mov byte [ebp + 0x5d], bl
call fcn.0043d373
push 0xa
push 0x4a9424
push dword [ebp - 0x38]
call fcn.004125f9
mov eax, dword [ebp - 0x38]
mov dword [eax + 0xa], ebx
mov eax, dword [ebp - 0x38]
mov dword [eax + 0xe], ebx
mov esi, dword [ebp - 0x38]
add esp, 0xc
add esi, 0x12
mov dword [ebp - 4], esi
cmp byte [ebp + 0x5d], 0xff
jae 0x429558
inc byte [ebp + 0x5d]
push dword [ebp + 0x7c]
lea ecx, [ebp - 0xa8]
mov byte [ebp + 0x3a], bl
call fcn.004458a8
mov eax, dword [ebp - 0xa8]
lea ecx, [ebp + 0x70]
mov dword [ebp + 0x70], eax
mov byte [ebp + 0x6a], bl
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x68], ebx
mov byte [ebp + 0x1b], 2
mov byte [ebp + 0x39], bl
call fcn.0040de83
push 8
push dword [ebp + 0x70]
mov byte [ebp + 0x38], bl
push str.listdev:
mov byte [ebp + 0x56], 2
mov dword [ebp + 0x6c], ebx
mov byte [ebp + 0x69], 0xf0
mov byte [ebp - 0x4c], bl
mov byte [ebp - 0x47], bl
mov dword [ebp + 0x64], ebx
mov dword [ebp + 4], ebx
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429612
add dword [ebp + 0x70], 0x10
mov eax, dword [ebp + 0x70]
movzx eax, word [eax]
cmp ax, bx
mov dword [ebp + 0x6c], 0x100
je 0x4295df
call fcn.00482120
test al, al
jne 0x4295df
mov eax, dword [ebp + 0x70]
mov dword [ebp + 4], eax
lea eax, [ebp + 0x70]
push eax
call fcn.004050f3
mov eax, dword [ebp + 0x70]
cmp word [eax], bx
pop ecx
je 0x4295f8
mov word [eax], bx
add dword [ebp + 0x70], 2
lea ecx, [ebp + 0x70]
call fcn.0040de83
mov eax, dword [ebp + 4]
cmp word [eax], bx
jne 0x42962d
mov ebx, 0x80070057
jmp 0x42b95f
push 0xa
lea eax, [ebp + 0x70]
push eax
push str.buildcache:
call fcn.0043f236
add esp, 0xc
test al, al
jne 0x42b130
mov al, byte [ebp + 0x57]
xor edi, edi
cmp dword [ebp - 0xec], 0x60000
mov byte [ebp + 0x6b], 0xff
mov byte [ebp + 0x5e], bl
mov dword [ebp + 0x58], edi
mov word [ebp - 0x50], bx
mov byte [ebp - 0x44], bl
mov byte [ebp - 0x1c], al
jb 0x429656
mov byte [ebp - 0x1c], 3
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x2a
jne 0x429dbd
push 8
lea eax, [ebp + 0x70]
push eax
push str.extract
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42968b
mov byte [ebp - 0x4c], 1
mov byte [ebp + 0x56], 1
mov byte [ebp + 0x3a], 1
jmp 0x429dad
push 4
lea eax, [ebp + 0x70]
push eax
push str.cab
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x429682
push 8
lea eax, [ebp + 0x70]
push eax
push str.nocheck
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4296c2
mov byte [ebp - 0x47], 1
jmp 0x429dad
push 7
lea eax, [ebp + 0x70]
push eax
push str.devcon
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4296e2
mov byte [ebp - 0x46], 1
jmp 0x429dad
push 7
lea eax, [ebp + 0x70]
push eax
push str.rescan
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429701
mov byte [ebp + 0x69], bl
jmp 0x429dad
push 9
lea eax, [ebp + 0x70]
push eax
push str.norescan
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429721
mov byte [ebp + 0x69], 0xc0
jmp 0x429dad
push 8
push dword [ebp + 0x70]
push str.rescan:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429761
movsx eax, byte [ebp + 0x69]
add dword [ebp + 0x70], 0x10
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0043a0e5
mov al, byte [ebp + 0xc]
cmp al, bl
pop ecx
pop ecx
mov byte [ebp + 0x69], al
jge 0x429dad
jmp 0x4296f9
push 6
lea eax, [ebp + 0x70]
push eax
push str.dummy
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429781
mov byte [ebp - 0x45], 1
jmp 0x429dad
push 4
lea eax, [ebp + 0x70]
push eax
push str.sub
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4297a1
mov byte [ebp + 0x38], 1
jmp 0x429dad
push 5
lea eax, [ebp + 0x70]
push eax
push str.self
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4297c1
mov byte [ebp + 0x38], 2
jmp 0x429dad
push 4
lea eax, [ebp + 0x70]
push eax
push str.7pe
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4297e1
mov byte [ebp - 0x1c], 3
jmp 0x429dad
push 4
lea eax, [ebp + 0x70]
push eax
push str.7pe_
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429803
mov al, byte [ebp + 0x57]
mov byte [ebp - 0x1c], al
jmp 0x429dad
push 8
lea eax, [ebp + 0x70]
push eax
push str.drvload
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x4297f8
push 6
lea eax, [ebp + 0x70]
push eax
push str.inner
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42983a
mov byte [ebp - 0x1c], 0xc0
jmp 0x429dad
push 9
lea eax, [ebp + 0x70]
push eax
push str.nnverify
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42985a
mov byte [ebp + 0x56], 1
jmp 0x429dad
push 8
lea eax, [ebp + 0x70]
push eax
push str.rverify
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429879
mov byte [ebp + 0x56], bl
jmp 0x429dad
push 0xa
lea eax, [ebp + 0x70]
push eax
push str.listdevi
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4298a3
mov eax, dword [ebp + 0x6c]
and eax, 0xff00
or eax, 2
mov dword [ebp + 0x6c], eax
jmp 0x429dad
push 0xa
lea eax, [ebp + 0x70]
push eax
push str.listdevc
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4298c7
mov eax, dword [ebp + 0x6c]
and eax, 0xff00
or eax, 4
jmp 0x42989b
push 0xa
lea eax, [ebp + 0x70]
push eax
push str.listdev
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4298eb
mov eax, dword [ebp + 0x6c]
and eax, 0xff00
or eax, 8
jmp 0x42989b
push 6
lea eax, [ebp + 0x70]
push eax
push str.comp
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42990b
mov byte [ebp + 0x5e], 1
jmp 0x429dad
push 5
lea eax, [ebp + 0x70]
push eax
push str.hwid
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42992b
or byte [ebp + 0x6d], 0x10
jmp 0x429dad
push 5
lea eax, [ebp + 0x70]
push eax
push 0x4a9334
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42994b
or byte [ebp + 0x6d], 8
jmp 0x429dad
push 5
lea eax, [ebp + 0x70]
push eax
push str.inst
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42996b
or byte [ebp + 0x6d], 0x20
jmp 0x429dad
push 4
lea eax, [ebp + 0x70]
push eax
push str.All
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x42998b
or byte [ebp + 0x6d], 2
jmp 0x429dad
push 5
lea eax, [ebp + 0x70]
push eax
push 0x4a931c
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4299ab
or byte [ebp + 0x6d], 4
jmp 0x429dad
push 5
lea eax, [ebp + 0x70]
push eax
push str.auto
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4299cd
mov word [ebp - 0x50], 3
jmp 0x429dad
push 4
lea eax, [ebp + 0x70]
push eax
push str.sys
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4299ed
mov byte [ebp - 0x44], 1
jmp 0x429dad
mov eax, dword [str.disverify]
push 0xa
lea ecx, [ebp + 0x70]
inc eax
push ecx
push eax
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429a0f
or byte [ebp + 0x6a], 1
jmp 0x429dad
push 0xb
lea eax, [ebp + 0x70]
push eax
push dword [0x4bc2e4]
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429a30
or byte [ebp + 0x6a], 3
jmp 0x429dad
push 0xe
lea eax, [ebp + 0x70]
push eax
push dword [0x4bc2e0]
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429a51
or byte [ebp + 0x6a], 0x10
jmp 0x429dad
push 7
lea eax, [ebp + 0x70]
push eax
push str.sysdir:
call fcn.0043f236
add esp, 0xc
test al, al
je 0x429a88
mov eax, dword [ebp + 0x70]
push 0x1cd
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x3c]
push ebx
push eax
call fcn.00418d74
add esp, 0xc
mov dword [ebp + 0x70], eax
jmp 0x429dad
push 4
lea eax, [ebp + 0x70]
push eax
push str.ret:
call fcn.0043f236
add esp, 0xc
test al, al
je 0x429aea
mov ecx, dword [ebp + 0x70]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x429ac4
call fcn.00482120
test al, al
jne 0x429ac4
lea eax, [ebp - 0xe0]
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0x40], eax
lea eax, [ebp + 0x70]
push eax
call fcn.004050f3
mov eax, dword [ebp + 0x70]
cmp word [eax], bx
pop ecx
je 0x429add
mov word [eax], bx
add dword [ebp + 0x70], 2
lea ecx, [ebp + 0x70]
call fcn.0040de83
jmp 0x429dad
push 6
lea eax, [ebp + 0x70]
push eax
push str.IdCah:
call fcn.0043f236
add esp, 0xc
test al, al
je 0x429b4f
mov ecx, dword [ebp + 0x70]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x429b1a
call fcn.00482120
test al, al
jne 0x429b1a
mov dword [ebp + 0x28], ecx
lea eax, [ebp + 0x70]
push eax
call fcn.004050f3
mov eax, dword [ebp + 0x70]
cmp word [eax], bx
pop ecx
je 0x429b33
mov word [eax], bx
add dword [ebp + 0x70], 2
lea ecx, [ebp + 0x70]
call fcn.0040de83
mov eax, dword [ebp + 0x28]
cmp word [eax], bx
jne 0x429dad
mov dword [ebp + 0x28], ebx
jmp 0x429dad
push 6
lea eax, [ebp + 0x70]
push eax
push str.retid:
call fcn.0043f236
add esp, 0xc
test al, al
je 0x429b98
mov ecx, dword [ebp + 0x70]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x429ac4
call fcn.00482120
test al, al
jne 0x429ac4
lea eax, [ebp - 0x9c]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0x6c], eax
jmp 0x429ac4
push 0xa
push dword [ebp + 0x70]
push str.DevClass:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429bda
mov ecx, dword [ebp + 0x70]
add ecx, 0x14
xor eax, eax
mov dword [ebp + 0x70], ecx
mov ax, word [ecx]
cmp ax, bx
je 0x429ac4
call fcn.00482120
test al, al
jne 0x429ac4
mov dword [ebp - 0x68], ecx
jmp 0x429ac4
push 7
push dword [ebp + 0x70]
push str.DevID:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429c6d
mov ecx, dword [ebp + 0x70]
add ecx, 0xe
xor eax, eax
mov dword [ebp + 0x70], ecx
mov ax, word [ecx]
cmp ax, bx
je 0x429c0f
call fcn.00482120
test al, al
jne 0x429c0f
mov dword [ebp + 0x64], ecx
lea eax, [ebp + 0x70]
push 0x27
push eax
call fcn.00412979
mov eax, dword [ebp + 0x70]
cmp word [eax], bx
pop ecx
pop ecx
je 0x429c2b
mov word [eax], bx
add dword [ebp + 0x70], 2
lea ecx, [ebp + 0x70]
call fcn.0040de83
cmp dword [ebp + 0x64], ebx
je 0x429dad
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
cmp eax, ebx
jle 0x429c65
mov ecx, dword [ebp + 0x64]
cmp word [ecx + eax*2 - 2], 0x26
jne 0x429c5d
mov word [ecx + eax*2], bx
dec eax
cmp eax, ebx
jg 0x429c4c
cmp eax, ebx
jg 0x429dad
mov dword [ebp + 0x64], ebx
jmp 0x429dad
push 0xa
lea eax, [ebp + 0x70]
push eax
push str.infcache:
call fcn.0043f276
add esp, 0xc
test al, al
je 0x429cad
mov ecx, dword [ebp + 0x70]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x429d75
call fcn.00482120
test al, al
jne 0x429d75
mov dword [ebp - 0xd8], ecx
jmp 0x429d75
push 9
push dword [ebp + 0x70]
push str.disable:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429ccc
mov byte [ebp + 0x6b], 2
jmp 0x429d56
push 8
push dword [ebp + 0x70]
push str.enable:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429ce8
mov byte [ebp + 0x6b], 1
jmp 0x429d5a
push 8
push dword [ebp + 0x70]
push str.remove:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429d04
mov byte [ebp + 0x6b], 5
jmp 0x429d5a
push 8
push dword [ebp + 0x70]
push str.update:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429d20
mov byte [ebp + 0x6b], 0x11
jmp 0x429d5a
push 8
push dword [ebp + 0x70]
push str.status:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429d3c
mov byte [ebp + 0x6b], 0x12
jmp 0x429d5a
push 9
push dword [ebp + 0x70]
push str.restart:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x429d86
mov byte [ebp + 0x6b], 3
add dword [ebp + 0x70], 2
add dword [ebp + 0x70], 0x10
mov eax, dword [ebp + 0x70]
movzx eax, word [eax]
cmp ax, bx
je 0x429d75
call fcn.00482120
test al, al
jne 0x429d75
mov edi, dword [ebp + 0x70]
lea eax, [ebp + 0x70]
push 0x27
push eax
call fcn.00412979
pop ecx
jmp 0x429acd
push 3
lea eax, [ebp + 0x70]
push eax
push 0x4a927c
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x429da3
mov byte [ebp + 0x39], 1
jmp 0x429dad
lea eax, [ebp + 0x70]
push eax
call fcn.0040507c
pop ecx
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x2a
je 0x429663
mov dword [ebp + 0x58], edi
cmp byte [ebp + 0x69], 0xf0
mov ecx, dword [ebp + 0x6c]
setl byte [ebp - 0x1d]
shr ecx, 8
and cl, 1
mov byte [ebp + 0x5f], cl
je 0x429dd6
mov byte [ebp - 0x4c], bl
cmp dword [ebp + 0x6c], ebx
je 0x429de2
cmp cl, bl
jne 0x429de2
mov byte [ebp + 0x5e], bl
mov eax, 0x2000
test dword [ebp + 0x6c], eax
je 0x429df6
test byte [ebp + 0x6d], 4
je 0x429df6
and byte [ebp + 0x6d], 0xfb
cmp cl, bl
je 0x429e0e
test byte [ebp + 0x6c], 2
je 0x429e0e
test byte [ebp + 0x6d], 0x3c
jne 0x429e0e
cmp byte [ebp + 0x5e], bl
jne 0x429e0e
or dword [ebp + 0x6c], eax
cmp cl, bl
mov dword [ebp - 0xe8], str.__DEVI.REBOOT
je 0x429e25
cmp dword [ebp + 4], ebx
je 0x42b187
cmp byte [ebp + 0x6b], bl
jge 0x42b193
cmp byte [ebp + 0x6a], bl
jne 0x42b37e
cmp byte [ebp - 0x1c], bl
setl al
dec al
and eax, dword [ebp - 0x1c]
or byte [ebp + 0x47], al
cmp cl, bl
mov byte [ebp - 0x48], al
jne 0x429e5b
cmp byte [ebp + 0x5d], 1
jne 0x429e5b
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 0x64]
push 0x20
mov dword [ebp - 0xc0], eax
lea eax, [esi + 0x400000]
push ebx
push eax
mov dword [esi], ebx
call fcn.0048f7a0
add esp, 0xc
xor edi, edi
cmp dword [ebp + 0x28], ebx
je 0x429ee8
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov ecx, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x28]
call fcn.0040ef74
mov esi, eax
cmp esi, ebx
je 0x429eda
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x429eda
cmp dword [esi + 0x10], 0x400032
jb 0x429eda
push 0xa
push eax
push 0x4a9424
call fcn.00437a2b
add esp, 0xc
test eax, eax
jne 0x429eda
mov edi, dword [esi + 4]
push 0x400020
add edi, 0x12
push edi
push dword [ebp - 4]
call fcn.004125f9
add esp, 0xc
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 4]
cmp edi, ebx
sete byte [ebp + 0x6a]
xor eax, eax
mov dword [ebp - 0x118], 0x1c
mov dword [ebp - 0x114], ebx
lea edi, [ebp - 0x110]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x70]
xor ecx, ecx
mov dword [ebp - 0x7c], esi
cmp word [eax], 0x24
mov dword [ebp + 0x20], ebx
sete cl
cmp ecx, ebx
mov dword [ebp + 0x58], ecx
je 0x429f34
jmp 0x429f29
inc dword [ebp + 0x20]
inc eax
inc eax
mov dword [ebp + 0x70], eax
cmp word [eax], 0x24
je 0x429f26
lea ecx, [ebp + 0x70]
call fcn.0040de83
mov edi, dword [sym.imp.SHLWAPI.dll_StrChrW]
push 0x2c
push dword [ebp + 0x70]
call edi
xor esi, esi
cmp eax, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x3c], ebx
je 0x429f94
mov word [eax], bx
inc eax
inc eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], eax
call fcn.0040de83
push 0x2c
push dword [ebp - 0x18]
call edi
mov esi, eax
cmp esi, ebx
mov dword [ebp + 0x1c], esi
je 0x429f8b
mov word [esi], bx
inc esi
inc esi
lea ecx, [ebp + 0x1c]
mov dword [ebp + 0x1c], esi
call fcn.0040de83
mov esi, dword [ebp + 0x1c]
push dword [ebp - 0x18]
call fcn.0040f0fb
pop ecx
push dword [ebp + 0x70]
call fcn.0040f0fb
cmp esi, ebx
pop ecx
je 0x429fcd
push 0x2c
push esi
call edi
cmp eax, ebx
mov dword [ebp + 0x3c], eax
je 0x429fc6
mov word [eax], bx
inc eax
inc eax
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], eax
call fcn.0040de83
push dword [ebp + 0x3c]
call fcn.0040f0fb
pop ecx
push esi
call fcn.0040f0fb
pop ecx
mov eax, dword [ebp + 0x70]
cmp word [eax], bx
je 0x42a084
lea eax, [ebp + 0x70]
push 1
push eax
call fcn.00443da3
cmp eax, ebx
pop ecx
pop ecx
je 0x42a084
cmp word [eax], 0x23
jne 0x42a084
lea ecx, [ebp - 0xa0]
call fcn.0043d47d
push str..tmp.cab
push str.devi
push ebx
lea eax, [ebp - 0xa0]
push eax
push ebx
call fcn.004054b3
add esp, 0x14
push str.__dd__len16M___
lea ecx, [ebp + 0x14]
call fcn.004457e4
push dword [ebp - 0xa0]
lea ecx, [ebp + 0x14]
call fcn.0043d4e9
push 0x4a920c
lea ecx, [ebp + 0x14]
call fcn.0043d4e9
push dword [ebp + 0x70]
lea ecx, [ebp + 0x14]
call fcn.0043d4e9
mov ecx, dword [ebp + 0x60]
push ebx
push dword [ebp + 0x14]
call fcn.004660f3
push dword [ebp - 0xa0]
lea ecx, [ebp - 0xcc]
call fcn.0040fd07
lea ecx, [ebp + 0x14]
mov dword [ebp + 0x70], eax
call fcn.00437960
lea ecx, [ebp - 0xa0]
call fcn.00437960
push dword [ebp + 0x70]
call fcn.0048ef50
pop ecx
push dword [ebp + 0x70]
mov dword [ebp - 0xb8], eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
cmp byte [ebp + 0x3a], bl
mov edi, eax
jne 0x42a0cf
cmp dword [ebp - 0xb8], ebx
jne 0x42a0c7
cmp edi, 4
jle 0x42a0c7
mov eax, dword [ebp + 0x70]
lea eax, [eax + edi*2 - 8]
push str..CAB
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
je 0x42a0cf
mov dword [ebp + 0xc], ebx
jmp 0x42a16b
cmp byte [0x4bdbe5], 1
mov dword [ebp + 0xc], 1
mov eax, str.SysWow64
je 0x42a0e9
mov eax, str.System32
mov ecx, dword [ebp - 0xb4]
push 0x10
push eax
mov eax, dword [ebp + 0x4c]
lea eax, [eax + ecx*2]
push eax
call fcn.004125f9
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0xb4]
push 0x1a
lea eax, [eax + ecx*2 + 0x10]
push str.cabinet.dll
push eax
call fcn.004125f9
add esp, 0x18
cmp byte [ebp + 0x5f], bl
jne 0x42a16b
push dword [ebp + 0x4c]
call fcn.0048f0e8
test eax, eax
pop ecx
jne 0x42a16b
push 0x63
lea ecx, [ebp - 0xc8]
call fcn.0043d49b
push dword [ebp + 0x4c]
push str.__dd__bs1M__s_0__._33INDATA
push dword [ebp - 0xc8]
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
push ebx
push dword [ebp - 0xc8]
call fcn.004660f3
lea ecx, [ebp - 0xc8]
call fcn.00437960
cmp esi, ebx
je 0x42a17a
cmp word [esi], 0x2a
jne 0x42a17a
xor esi, esi
mov dword [ebp + 0x1c], esi
cmp edi, 4
jle 0x42a19d
mov eax, dword [ebp + 0x70]
lea eax, [eax + edi*2 - 8]
push 0x4a7c28
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x42a19d
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x42a1a2
xor ecx, ecx
xor eax, eax
inc ecx
cmp dword [ebp - 0xb8], ebx
jne 0x42a1b1
cmp eax, ebx
mov dword [ebp + 0x34], ecx
jne 0x42a1b4
mov dword [ebp + 0x34], ebx
cmp dword [ebp + 0x20], ecx
je 0x42a1d4
cmp eax, ebx
je 0x42a1c6
cmp dword [ebp + 0x58], ebx
je 0x42a1c6
cmp esi, ebx
jne 0x42a1d4
cmp dword [ebp + 0x34], ebx
je 0x42a1d0
cmp dword [ebp + 0x58], ebx
jne 0x42a1d4
xor al, al
jmp 0x42a1d6
mov al, 1
cmp dword [ebp + 0x34], ebx
jne 0x42a1e2
cmp al, bl
mov dword [ebp + 0x20], ebx
je 0x42a1e5
mov dword [ebp + 0x20], ecx
cmp byte [ebp + 0x5f], bl
mov dword [ebp + 0x50], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov word [ebp - 0x4e], bx
jne 0x42a29b
cmp esi, ebx
je 0x42a29b
cmp word [esi], bx
je 0x42a29b
cmp dword [ebp + 0x20], ebx
jne 0x42a29b
push esi
lea ecx, [ebp + 0x50]
call fcn.004458a8
push dword [ebp + 0x50]
call fcn.00412aac
pop ecx
push ebx
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
push 0x105
lea ecx, [ebp - 0xa4]
call fcn.0043d49b
push 0x104
push dword [ebp - 0xa4]
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.DLL_GetShortPathNameW]
mov eax, dword [ebp - 0xa4]
cmp word [eax], bx
je 0x42a26c
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x50], eax
mov dword [ebp - 0xa4], ecx
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
cmp word [esi + eax*2 - 2], 0x5c
je 0x42a28a
push 0x4a44ac
lea ecx, [ebp + 0x50]
call fcn.0043d4e9
mov eax, dword [ebp + 0x50]
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x74], eax
call fcn.00437960
cmp dword [ebp + 0x58], ebx
jne 0x42a2aa
cmp byte [ebp + 0x47], bl
je 0x42a2c5
cmp byte [ebp - 0x4c], bl
jne 0x42a2c5
cmp byte [ebp - 0x44], bl
jne 0x42a2c5
cmp byte [ebp + 0x5f], bl
jne 0x42a2c5
cmp byte [ebp + 0x56], 1
je 0x42a2c5
lea ecx, [ebp - 0xac]
call fcn.0040fd21
cmp byte [ebp + 0x56], 2
jne 0x42a2d1
mov dword [ebp - 0xac], ebx
cmp dword [ebp + 0xc], ebx
je 0x42a302
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x42a302
or dword [ebp - 8], 0xffffffff
mov dword [ebp + 0x48], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.004488f0
mov eax, dword [ebp - 8]
cmp eax, ebx
pop ecx
pop ecx
jle 0x42a302
cmp eax, 0x14
jge 0x42a302
mov byte [ebp + 0x1b], al
cmp byte [ebp + 0x5d], 1
jne 0x42a356
cmp byte [ebp + 0x5f], bl
jne 0x42a356
cmp byte [ebp - 0x4c], bl
jne 0x42a356
movsx eax, byte [ebp + 0x69]
push eax
movsx eax, byte [ebp - 0x47]
push eax
push dword [ebp + 0x58]
movsx eax, byte [ebp - 0x48]
push dword [ebp + 0x34]
push eax
push dword [ebp - 0xec]
lea eax, [ebp - 0x4b4]
push str.Ver_lX_bNt6_d_bINF_d_bInstall_d_notcheck_d_rescan_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x4b4]
push eax
push 0x4a90f4
push dword [ebp + 0x60]
call fcn.0040f2bd
add esp, 0x2c
cmp byte [ebp + 0x69], bl
jge 0x42a38e
cmp dword [ebp + 0x6c], ebx
jne 0x42a42f
cmp byte [ebp + 0x69], 0xf0
jl 0x42a423
cmp byte [ebp - 0x48], bl
je 0x42a423
cmp dword [ebp + 0x34], ebx
jne 0x42a385
cmp dword [ebp + 0x58], ebx
je 0x42a423
cmp byte [ebp - 0x47], bl
jne 0x42a423
cmp byte [ebp + 0x5d], 1
jne 0x42a3a9
push 0x4a39d4
push 0x4a90dc
push dword [ebp + 0x60]
call fcn.0040f2bd
add esp, 0xc
mov ecx, dword [ebp + 0x60]
push ebx
push 0x11
push ebx
push str.rescan__BEGIN
call fcn.0041abe7
push ebx
push ebx
lea eax, [ebp - 8]
push eax
mov dword [ebp - 8], ebx
call dword [sym.imp.SETUPAPI.dll_CM_Locate_DevNodeW]
push ebx
push ebx
mov esi, 0x4bdfa0
push 0xa
mov ecx, esi
mov edi, eax
call fcn.00413857
cmp edi, ebx
jne 0x42a3fe
xor eax, eax
mov al, byte [ebp + 0x69]
and eax, 7
push eax
push dword [ebp - 8]
call dword [sym.imp.SETUPAPI.dll_CM_Reenumerate_DevNode]
push ebx
push ebx
push 5
mov ecx, esi
mov edi, eax
call fcn.00413857
mov ecx, dword [ebp + 0x60]
push ebx
push ebx
push 0x32
mov dword [ebp + 0x2c], edi
call fcn.00413857
mov ecx, dword [ebp + 0x60]
push ebx
push 0x11
push ebx
push str.rescan__END
call fcn.0041abe7
cmp dword [ebp + 0x6c], ebx
jne 0x42a42f
mov eax, dword [ebp + 0x70]
cmp word [eax], bx
je 0x42b394
lea ecx, [ebp + 0x24]
call fcn.0043d47d
push dword [ebp + 0x70]
call fcn.0041113a
push ebx
lea ecx, [ebp + 0x24]
push ecx
push eax
mov dword [ebp + 0x70], eax
call fcn.00482842
mov dword [ebp + 0x70], eax
add esp, 0x10
xor eax, eax
cmp dword [ebp + 0x6c], ebx
je 0x42a463
test byte [ebp + 0x6d], 2
jne 0x42a463
push 2
pop eax
or eax, 4
push eax
push ebx
push ebx
push ebx
call dword [0x4bde48]
cmp eax, 0xffffffff
mov dword [ebp - 0x30], eax
jne 0x42a484
cmp dword [ebp + 0x34], ebx
mov dword [ebp - 0x30], ebx
je 0x42b39c
lea ecx, [ebp + 0x40]
mov dword [ebp - 0x88], ebx
call fcn.0043d47d
mov esi, dword [ebp + 0x6c]
and esi, 0xff
cmp dword [ebp + 0x64], ebx
mov dword [ebp - 8], esi
je 0x42a4ac
push dword [ebp + 0x64]
call fcn.004128bd
pop ecx
mov eax, dword [ebp + 0x6c]
and eax, 0xffffff00
or eax, esi
cmp dword [ebp + 0x64], ebx
mov dword [ebp + 0x6c], eax
mov dword [ebp - 0x94], ebx
mov dword [ebp + 0x48], ebx
je 0x42a5a4
cmp byte [ebp + 0x5f], bl
je 0x42a5a4
mov edi, dword [ebp + 0x64]
xor eax, eax
mov ax, word [edi]
xor esi, esi
cmp ax, 0x22
je 0x42a4ea
cmp ax, 0x27
jne 0x42a4ef
mov esi, eax
add edi, 2
push edi
call fcn.004149c8
cmp eax, ebx
pop ecx
jl 0x42a4ff
mov dword [ebp - 0xc], eax
jmp 0x42a505
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
cmp eax, ebx
jl 0x42a515
lea eax, [edi + 4]
push eax
push edi
call fcn.00412621
pop ecx
pop ecx
cmp si, bx
je 0x42a596
jmp 0x42a523
inc edi
inc edi
cmp si, ax
je 0x42a52d
mov ax, word [edi]
cmp ax, bx
jne 0x42a51c
jmp 0x42a533
mov dword [ebp - 0x94], edi
xor eax, eax
mov ax, word [edi]
cmp ax, 0x22
je 0x42a544
cmp ax, 0x27
jne 0x42a580
inc edi
inc edi
push edi
mov esi, eax
call fcn.004149c8
cmp eax, ebx
pop ecx
mov ecx, eax
jge 0x42a558
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
jne 0x42a580
cmp eax, ebx
jl 0x42a576
lea eax, [edi + 4]
push eax
push edi
call fcn.00412621
pop ecx
pop ecx
jmp 0x42a576
inc edi
inc edi
cmp si, ax
je 0x42a52d
mov ax, word [edi]
cmp ax, bx
jne 0x42a56f
jmp 0x42a533
mov ecx, dword [ebp - 0x94]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
mov dword [ebp + 0x48], eax
je 0x42a596
mov word [ecx], bx
mov eax, dword [ebp + 0x6c]
and eax, 0xffffff00
or eax, dword [ebp - 0xc]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x6c]
xor ecx, ecx
and eax, 0x806
cmp eax, 0x802
sete cl
cmp eax, 0x800
mov esi, ecx
jne 0x42a5c9
cmp byte [ebp + 0x5e], bl
jne 0x42a5c9
xor edi, edi
inc edi
jmp 0x42a5cb
xor edi, edi
mov eax, dword [ebp + 0x6c]
and eax, 0x1006
cmp eax, 0x1004
jne 0x42a5e4
cmp byte [ebp + 0x5e], bl
jne 0x42a5e4
xor eax, eax
inc eax
jmp 0x42a5e6
xor eax, eax
mov ecx, dword [ebp + 0x6c]
and ecx, 0x2002
sub ecx, 0x2000
neg ecx
sbb ecx, ecx
or eax, edi
inc ecx
neg eax
sbb eax, eax
test byte [ebp + 0x6c], 4
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x84], eax
jne 0x42a620
cmp esi, ebx
mov dword [ebp - 0xd4], 1
je 0x42a62a
mov dword [ebp - 0xd4], 2
cmp dword [ebp + 0x64], ebx
je 0x42a640
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov dword [ebp - 0x8c], eax
jmp 0x42a646
mov dword [ebp - 0x8c], ebx
push 0x3f
xor eax, eax
pop ecx
mov word [ebp - 0x324], bx
lea edi, [ebp - 0x322]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x3f
xor eax, eax
cmp byte [ebp + 0x6a], bl
mov word [ebp - 0x224], bx
pop ecx
lea edi, [ebp - 0x222]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x118], 0x1c
je 0x42ab5d
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0x60]
push ebx
push 0x11
push ebx
add edi, 2
push str.DEVI_ID__BEGIN
mov dword [edi], ebx
call fcn.0041abe7
cmp byte [ebp - 0x4c], bl
jne 0x42aa43
cmp dword [ebp - 0x30], ebx
je 0x42aa43
mov dword [ebp - 0xc], ebx
mov eax, edi
sub eax, dword [ebp - 4]
cmp eax, 0x400000
jge 0x42aa43
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x30]
call dword [0x4bde5c]
test eax, eax
je 0x42aa43
cmp dword [ebp + 0x6c], ebx
je 0x42a72a
cmp dword [ebp - 0x68], ebx
je 0x42a720
push ebx
push 0x80
lea eax, [ebp - 0x324]
push eax
lea eax, [ebp - 0x114]
push eax
mov dword [ebp - 0x324], ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiClassNameFromGuidW]
push dword [ebp - 0x68]
lea eax, [ebp - 0x324]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x42aa3b
test byte [ebp + 0x6c], 2
jne 0x42a845
mov eax, dword [0x4bde6c]
cmp eax, ebx
mov dword [ebp - 0xf0], ebx
je 0x42a75e
push ebx
push dword [ebp - 0x104]
lea ecx, [ebp - 0xf0]
push ecx
lea ecx, [ebp - 0x80]
push ecx
mov dword [ebp - 0x118], 0x1c
mov dword [ebp - 0x80], 0x400
call eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp + 0x34], eax
movsx eax, word [ebp - 0x84]
mov dword [ebp + 0x10], edi
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x80], 1
mov eax, dword [ebp - 4]
sub eax, edi
add eax, 0x3f0002
mov ecx, 0xfffe
cmp eax, ecx
mov dword [edi], ebx
jle 0x42a795
mov eax, ecx
push ebx
push eax
lea esi, [edi + 0x1fffc]
push esi
push ebx
push dword [ebp + 0x34]
mov dword [ebp - 0x118], 0x1c
mov dword [esi + eax], ebx
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x30]
mov dword [ebp - 0x24], esi
mov dword [esi], ebx
call dword [0x4bde4c]
cmp eax, ebx
mov dword [ebp - 0x118], 0x1c
je 0x42aa3b
cmp byte [ebp + 0x5f], bl
je 0x42a92c
cmp dword [ebp + 0x64], ebx
je 0x42a8d7
test dword [ebp + 0x6c], 2
jne 0x42a8d7
cmp dword [ebp - 0x80], ebx
je 0x42a8d7
push 0x100
push dword [ebp - 0x8c]
push esi
push dword [ebp + 0x64]
call fcn.0041274a
add esp, 0x10
test eax, eax
jne 0x42a839
test byte [ebp + 0x6c], 8
je 0x42aa3b
cmp dword [ebp + 0x34], 2
je 0x42aa3b
mov dword [ebp + 0x34], 2
jmp 0x42a77e
cmp dword [ebp - 0xbc], ebx
je 0x42a8d7
push ebx
push 0x80
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x30]
mov dword [ebp - 0x224], ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdW]
cmp dword [ebp + 0x64], ebx
je 0x42a88e
cmp dword [ebp - 0xbc], ebx
jne 0x42a88e
push dword [ebp + 0x64]
lea eax, [ebp - 0x224]
push eax
call fcn.00412912
test eax, eax
pop ecx
pop ecx
je 0x42aa3b
test byte [ebp + 0x6d], 4
jne 0x42a89a
test byte [ebp + 0x6d], 0x20
jne 0x42a8a6
cmp dword [ebp - 0xbc], ebx
je 0x42a72a
cmp byte [ebp + 0x5f], bl
je 0x42a72a
lea eax, [ebp - 0x224]
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.004129ed
add esp, 0xc
jmp 0x42aa3b
mov esi, dword [ebp - 0x24]
cmp word [esi], bx
je 0x42a901
cmp dword [ebp - 0x90], ebx
jl 0x42a901
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.004129ed
add esp, 0xc
test byte [ebp + 0x6d], 4
jne 0x42a8d4
movsx eax, byte [ebp + 0x5e]
cmp dword [ebp - 0x90], eax
jge 0x42aa3b
inc dword [ebp - 0x90]
xor eax, eax
cmp dword [ebp + 0x34], 2
mov dword [ebp - 0x80], ebx
setne al
inc eax
mov dword [ebp + 0x34], eax
jmp 0x42a77e
push 4
push str.ACPI
push esi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
je 0x42aa3b
cmp dword [ebp - 0x80], 1
jne 0x42a95d
push esi
push dword [ebp - 0xc]
push dword [ebp - 0xc4]
push dword [ebp + 0x60]
call fcn.0040f2bd
add esp, 0x10
xor eax, eax
mov ax, word [esi]
xor ecx, ecx
cmp ax, bx
mov dword [ebp - 0x28], ebx
je 0x42aa24
cmp ax, 0x26
jne 0x42a97f
movsx eax, byte [ebp + 0x1b]
inc ecx
cmp ecx, eax
jge 0x42a98f
inc dword [ebp - 0x28]
movzx eax, word [ebp - 0x28]
mov ax, word [esi + eax*2]
cmp ax, bx
jne 0x42a970
cmp word [ebp - 0x28], bx
jbe 0x42aa24
mov eax, dword [ebp + 0x10]
jmp 0x42a9c8
mov ax, word [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
cmp word [ecx - 2], ax
jne 0x42a9bd
movzx eax, ax
push eax
push esi
push ecx
call fcn.00402ba9
add esp, 0xc
test al, al
jne 0x42aa14
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax - 4]
lea eax, [eax + ecx*2 + 6]
cmp eax, edi
mov dword [ebp - 0x24], eax
jb 0x42a99e
cmp esi, edi
mov eax, dword [ebp - 0x28]
mov ecx, edi
mov word [edi - 2], ax
jne 0x42a9f8
movzx eax, ax
lea edi, [edi + eax*2]
jmp 0x42a9e6
inc edi
inc edi
cmp word [edi], bx
jne 0x42a9e4
mov esi, edi
jmp 0x42aa03
mov word [edi], ax
inc edi
inc edi
inc esi
inc esi
xor eax, eax
mov ax, word [esi]
cmp ax, bx
jne 0x42a9ef
mov word [edi], bx
mov eax, edi
sub eax, ecx
sar eax, 1
mov word [ecx - 4], ax
add edi, 6
jmp 0x42aa14
inc esi
inc esi
cmp word [esi], bx
jne 0x42aa12
inc esi
inc esi
cmp word [esi], bx
jne 0x42a95d
cmp byte [ebp + 0x5e], bl
je 0x42aa35
push 2
pop eax
cmp dword [ebp + 0x34], eax
jne 0x42a924
test byte [ebp + 0x6c], 2
jne 0x42aa68
inc dword [ebp - 0xc]
jmp 0x42a6b3
cmp byte [ebp + 0x5f], bl
je 0x42aa68
mov ecx, dword [ebp + 0x48]
cmp cx, bx
je 0x42b3a8
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 8]
mov word [eax], cx
mov dword [ebp + 0x64], eax
jmp 0x42a4ac
cmp dword [ebp + 0x20], ebx
je 0x42aa7f
test byte [ebp + 0x6c], 2
je 0x42aa7f
mov dword [ebp - 0xd0], 1
jmp 0x42aacc
cmp dword [ebp - 0xc0], ebx
mov dword [ebp - 0xd0], ebx
je 0x42aacc
push dword [ebp - 0xc0]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov esi, dword [ebp - 4]
mov edi, eax
mov word [esi], di
add esi, 2
lea eax, [edi + 1]
mov word [esi], di
push eax
push dword [ebp - 0xc0]
inc esi
inc esi
push esi
call fcn.00405064
lea edi, [esi + edi*2 + 2]
mov word [edi], bx
add esp, 0xc
inc edi
inc edi
mov word [edi], bx
inc edi
inc edi
mov dword [edi], ebx
mov ecx, dword [ebp + 0x60]
push ebx
push 0x11
push ebx
push str.DEVI_ID__END
call fcn.0041abe7
mov esi, dword [ebp + 0x28]
cmp esi, ebx
mov word [edi - 2], bx
je 0x42ab5d
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov ecx, dword [ebp + 0x60]
mov edi, dword [ebp - 0x38]
push ebx
push 0xffffffffffffffff
push ebx
push esi
call fcn.0040ef74
jmp 0x42ab07
inc esi
inc esi
cmp word [esi], 0x26
je 0x42ab05
cmp eax, ebx
jne 0x42ab2a
push esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov ecx, dword [ebp + 0x60]
push 0x400032
push eax
push edi
push esi
call fcn.00412db7
jmp 0x42ab52
mov cl, byte [eax + 0x17]
and cl, 0xc0
cmp cl, 0xc0
jne 0x42ab3e
cmp dword [eax + 0x10], 0x400032
jb 0x42ab52
cmp cl, bl
je 0x42ab45
mov dword [eax + 4], ebx
push 0x400032
push edi
mov ecx, eax
call fcn.00402d3b
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
push dword [ebp - 0x30]
call dword [0x4bde50]
cmp byte [ebp - 0x4c], bl
jne 0x42ab80
push 0x4a39d4
push 0x4a3f34
push dword [ebp + 0x60]
call fcn.0040f2bd
add esp, 0xc
mov edi, dword [ebp - 0xb4]
mov ecx, dword [ebp + 0x4c]
lea eax, [edi + edi]
push 8
mov esi, 0x4a9058
add ecx, eax
push esi
push ecx
mov dword [ebp + 0x10], eax
call fcn.004125f9
add esp, 0xc
cmp dword [ebp + 0x20], ebx
jne 0x42b404
cmp dword [ebp - 0x30], ebx
je 0x42b81e
cmp byte [ebp - 0x4c], bl
jne 0x42abda
mov eax, dword [ebp - 4]
cmp word [eax], bx
je 0x42b82a
cmp dword [ebp - 0xb8], ebx
jne 0x42b836
cmp dword [ebp + 0xc], ebx
je 0x42b836
mov eax, dword [ebp - 0x74]
cmp eax, ebx
je 0x42abeb
cmp word [eax], 0x2a
jne 0x42acac
cmp dword [ebp + 0x58], ebx
je 0x42abfa
cmp byte [ebp - 0x48], bl
jne 0x42ac03
cmp byte [ebp - 0x44], bl
jne 0x42ac03
cmp byte [ebp - 0x48], bl
jne 0x42acb1
lea ecx, [ebp + 0x30]
call fcn.0043d47d
push 0x4a9050
push str.devi
push ebx
lea eax, [ebp + 0x30]
push ebx
push eax
call fcn.004054b3
add esp, 0x14
push 0x105
lea ecx, [ebp - 0x98]
call fcn.0043d49b
push 0x104
push dword [ebp - 0x98]
push dword [ebp + 0x30]
call dword [sym.imp.KERNEL32.DLL_GetShortPathNameW]
mov eax, dword [ebp - 0x98]
cmp word [eax], bx
je 0x42ac5e
mov ecx, dword [ebp + 0x30]
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x98], ecx
push 0x4a44ac
lea ecx, [ebp + 0x30]
call fcn.0043d4e9
push dword [ebp + 0x30]
lea ecx, [ebp - 0xb0]
call fcn.0040fd07
cmp byte [ebp - 0x48], bl
jne 0x42ac93
cmp byte [ebp - 0x44], bl
jne 0x42ac93
push eax
mov dword [ebp - 0x70], eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov word [ebp - 0x4e], ax
jmp 0x42ac96
mov dword [ebp - 0x74], eax
lea ecx, [ebp - 0x98]
call fcn.00437960
lea ecx, [ebp + 0x30]
call fcn.00437960
mov eax, dword [ebp - 0x74]
cmp byte [ebp - 0x48], bl
je 0x42acc6
cmp byte [ebp - 0x4c], bl
jne 0x42acc6
cmp eax, ebx
je 0x42acc6
cmp byte [ebp - 0x47], bl
jne 0x42acc6
mov dword [ebp + 0x58], 1
cmp byte [ebp + 0x3b], bl
je 0x42acd0
xor eax, eax
mov dword [ebp - 0x74], eax
cmp byte [ebp - 0x47], bl
je 0x42ace1
cmp eax, ebx
je 0x42ace1
cmp dword [ebp + 0x3c], ebx
je 0x42ace1
mov dword [ebp + 0x58], ebx
movzx ecx, word [ebp - 0x50]
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
shl ecx, 0x10
or eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x4c]
push 0xa
add eax, ecx
push str.INF_
push eax
call fcn.004125f9
add esp, 0xc
push 0x1040
lea ecx, [ebp - 0x14]
call fcn.0043d49b
xor eax, eax
mov dword [ebp - 0x7c4], ebx
mov ecx, 0x93
lea edi, [ebp - 0x7c0]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x7c4]
push eax
push dword [ebp + 0x70]
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], ebx
call fcn.0048f048
add esp, 0xc
cmp dword [ebp - 0x2c], ebx
je 0x42b8a2
push dword [ebp + 0x70]
lea ecx, [ebp + 8]
call fcn.004457e4
lea eax, [ebp + 8]
push eax
push dword [ebp + 0x70]
call fcn.00449f79
pop ecx
pop ecx
push 0x4a44ac
lea ecx, [ebp + 8]
call fcn.0043d4e9
push str.DefaultInstall_132
lea ecx, [ebp]
call fcn.004457e4
push dword [ebp]
mov esi, dword [sym.imp.KERNEL32.DLL_lstrlenW]
call esi
push dword [ebp + 8]
mov dword [ebp + 0x48], eax
call esi
cmp dword [ebp + 0x58], ebx
mov ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], ecx
mov word [eax + ecx*2], bx
jne 0x42adb6
cmp byte [ebp - 0x4c], bl
mov dword [ebp + 0x6c], 1
je 0x42adb9
mov dword [ebp + 0x6c], ebx
mov eax, dword [ebp - 0x74]
neg eax
sbb eax, eax
and eax, 0x20000
add eax, 0x10000
or dword [ebp + 0x1c], eax
jmp 0x42add2
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x14]
mov word [eax], bx
test byte [ebp - 0x7c4], 0x10
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], ebx
jne 0x42b080
mov eax, dword [ebp + 8]
mov word [eax + ecx*2], bx
lea eax, [ebp - 0x798]
push eax
lea ecx, [ebp + 8]
call fcn.0043d4e9
lea eax, [ebp - 0x7c]
push eax
push 0x42935c
push ebx
push dword [ebp + 8]
call dword [0x4bde60]
cmp dword [ebp + 0x58], ebx
je 0x42af29
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x64]
jae 0x42af20
movzx esi, word [eax + 4]
add eax, 6
cmp byte [ebp + 0x5d], 1
lea edi, [eax + esi*2 + 4]
mov dword [ebp + 0x20], eax
movzx eax, word [edi - 2]
lea eax, [edi + eax*2 + 2]
mov dword [ebp - 0x84], eax
jbe 0x42ae63
push 0xffffffffffffffff
push dword [ebp + 0x20]
lea ecx, [ebp - 0x7c]
call fcn.0040fb5e
test eax, eax
jne 0x42af15
cmp byte [ebp - 0x44], bl
mov dword [ebp + 0x64], 4
je 0x42ae80
push dword [ebp + 0x1c]
lea ecx, [ebp - 0x7c]
push edi
call fcn.0041fb46
jmp 0x42af15
cmp byte [ebp - 0x48], 3
je 0x42ae8b
cmp byte [ebp - 0x46], bl
je 0x42aec4
or dword [ebp + 0x64], 1
cmp byte [ebp - 0x46], bl
je 0x42aea3
push esi
push dword [ebp + 0x20]
lea ecx, [ebp - 0x7c]
push edi
call fcn.004202f7
jmp 0x42aeb6
cmp byte [ebp - 0x48], 3
jne 0x42aeb9
push esi
push dword [ebp + 0x20]
lea ecx, [ebp - 0x7c]
push edi
call fcn.004203ec
mov dword [ebp + 0x6c], eax
cmp dword [ebp + 0x6c], ebx
je 0x42af15
test byte [ebp + 0x64], 2
jne 0x42aeea
or dword [ebp + 0x64], 2
push ebx
push esi
push dword [ebp + 0x1c]
lea eax, [ebp - 0x7c]
push edi
push dword [ebp + 0x20]
push eax
call fcn.0041f9f8
add esp, 0x18
cmp eax, ebx
mov dword [ebp + 0x6c], eax
je 0x42af15
test byte [ebp + 0x64], 1
je 0x42ae8b
test byte [ebp + 0x64], 4
jne 0x42af15
mov eax, dword [ebp]
mov ecx, dword [ebp + 0x48]
mov word [eax + ecx*2], bx
push edi
lea ecx, [ebp]
call fcn.0043d4e9
push 0x100000
push dword [ebp]
push ebx
push ebx
call fcn.0042053e
add esp, 0x10
mov eax, dword [ebp - 0x84]
jmp 0x42ae23
cmp dword [ebp + 0x58], ebx
jne 0x42b080
cmp byte [ebp - 0x47], bl
je 0x42b080
cmp dword [ebp + 0x3c], ebx
je 0x42b080
cmp dword [ebp - 0x74], ebx
je 0x42b080
push dword [ebp - 0x74]
lea ecx, [ebp - 0x10]
call fcn.004457e4
push dword [ebp + 0x3c]
lea ecx, [ebp - 0x10]
call fcn.0043d4e9
push 0x2800
lea ecx, [ebp - 0x34]
call fcn.0043d49b
push dword [ebp - 0x10]
push str.:_6R
push 0x27ff
push dword [ebp - 0x34]
call fcn.0048ff98
add esp, 0x10
push ebx
push 0x11
push ebx
push dword [ebp - 0x34]
mov ecx, 0x4bdfa0
call fcn.0041abe7
lea ecx, [ebp - 0x34]
call fcn.00437960
push ebx
push dword [ebp - 0x10]
lea eax, [ebp - 0x7c]
push eax
call fcn.0041f900
mov esi, eax
add esp, 0xc
cmp esi, ebx
mov edi, esi
jne 0x42afb5
mov edi, 0x4a39d4
cmp byte [ebp - 0x48], 3
mov dword [ebp + 0x64], 4
je 0x42afc7
cmp byte [ebp - 0x46], bl
je 0x42b00b
or dword [ebp + 0x64], 1
cmp byte [ebp - 0x46], bl
je 0x42afe0
push 0xffffffffffffffff
push edi
push dword [ebp - 0x10]
lea ecx, [ebp - 0x7c]
call fcn.004202f7
jmp 0x42aff4
cmp byte [ebp - 0x48], 3
jne 0x42aff7
push 0xffffffffffffffff
push edi
push dword [ebp - 0x10]
lea ecx, [ebp - 0x7c]
call fcn.004203ec
mov dword [ebp + 0x6c], eax
inc dword [ebp + 0x64]
cmp dword [ebp + 0x64], 2
jge 0x42b071
cmp dword [ebp + 0x6c], ebx
je 0x42b071
test byte [ebp + 0x64], 2
jne 0x42b044
or dword [ebp + 0x64], 2
cmp esi, ebx
je 0x42b02c
push ebx
push 0xffffffffffffffff
push dword [ebp + 0x1c]
lea eax, [ebp - 0x7c]
push dword [ebp - 0x10]
push esi
push eax
call fcn.0041f9f8
add esp, 0x18
mov dword [ebp + 0x6c], eax
inc dword [ebp + 0x64]
cmp dword [ebp + 0x64], 2
jge 0x42b071
cmp esi, ebx
je 0x42b03e
cmp dword [ebp + 0x6c], ebx
je 0x42b071
test byte [ebp + 0x64], 2
je 0x42afc7
test byte [ebp + 0x64], 4
jne 0x42b071
mov eax, dword [ebp]
mov ecx, dword [ebp + 0x48]
mov word [eax + ecx*2], bx
push dword [ebp - 0x10]
lea ecx, [ebp]
call fcn.0043d4e9
push 0x100000
push dword [ebp]
push ebx
push ebx
call fcn.0042053e
add esp, 0x10
cmp esi, ebx
je 0x42b078
mov word [esi], bx
lea ecx, [ebp - 0x10]
call fcn.00437960
lea eax, [ebp - 0x7c4]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405192
test eax, eax
jne 0x42adcf
lea ecx, [ebp - 0x2c]
call fcn.00402b8f
cmp dword [ebp + 0x6c], ebx
mov eax, dword [ebp - 0x9c]
mov word [eax], 0x5f
jne 0x42b0b2
mov dword [ebp + 0x2c], ebx
cmp dword [ebp + 0x58], ebx
je 0x42b8ab
cmp dword [ebp - 0x74], ebx
je 0x42b8ab
cmp byte [ebp - 0x48], 1
jne 0x42b8ab
cmp byte [ebp + 0x3b], bl
jne 0x42b8ab
cmp dword [ebp + 0x3c], ebx
jne 0x42b8ab
cmp byte [ebp - 0x1d], bl
jne 0x42b8ab
lea ecx, [ebp]
mov dword [ebp - 0x74], ebx
mov byte [ebp + 0x3b], 1
call fcn.00437960
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp - 0x2c]
call fcn.00402b8f
lea ecx, [ebp - 0x14]
call fcn.00437960
lea ecx, [ebp + 0x40]
call fcn.00437960
lea ecx, [ebp + 0x24]
call fcn.00437960
lea ecx, [ebp + 0x50]
call fcn.00437960
mov esi, dword [ebp - 4]
jmp 0x42954f
mov eax, dword [ebp + 0x70]
push 0x1e5
mov dword [ebp + 0x48], eax
lea eax, [ebp + 0x48]
push ebx
push eax
call fcn.00418d74
mov esi, dword [ebp + 0x48]
add esp, 0xc
mov dword [ebp + 0x70], eax
cmp word [esi], bx
je 0x429608
push str.35:INDATABuildInfCache
lea ecx, [ebp + 0x7c]
call fcn.004457e4
push esi
lea ecx, [ebp + 0x7c]
call fcn.0043d4e9
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x60]
call fcn.0042ee8f
lea ecx, [ebp + 0x7c]
mov ebx, eax
call fcn.00437960
jmp 0x42b95f
mov dword [ebp + 0x2c], 0x80070057
jmp 0x42b8fb
cmp edi, ebx
jne 0x42b1a1
mov esi, 0x80070057
jmp 0x42b91f
push 2
lea ecx, [ebp + 0x7c]
call fcn.0043d49b
cmp byte [ebp + 0x6b], 0x12
mov eax, dword [ebp + 0x7c]
mov word [eax], bx
mov dword [ebp + 0x10], edi
je 0x42b1c0
cmp word [edi], 0x26
jne 0x42b1eb
mov dword [ebp - 0xe8], edi
jmp 0x42b1d9
cmp ax, 0x3a
je 0x42b1e3
cmp ax, 0x3d
je 0x42b1e3
inc edi
inc edi
mov dword [ebp + 0x58], edi
mov ax, word [edi]
cmp ax, bx
jne 0x42b1c8
jmp 0x42b1eb
mov word [edi], bx
inc edi
inc edi
mov dword [ebp + 0x58], edi
mov edi, dword [ebp + 0x58]
mov ax, word [edi]
cmp ax, 0x22
je 0x42b206
cmp ax, 0x27
je 0x42b206
mov dword [ebp + 0x58], 0x4a39d4
jmp 0x42b234
mov al, byte [edi]
movsx ax, al
add edi, 2
mov dword [ebp + 0x58], edi
push eax
lea eax, [ebp + 0x58]
call fcn.00405093
mov eax, dword [ebp + 0x58]
cmp word [eax], bx
pop ecx
je 0x42b22c
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x58], eax
lea ecx, [ebp + 0x58]
call fcn.0040de83
xor eax, eax
mov ax, word [edi]
xor esi, esi
mov ecx, eax
or ecx, 0x20
cmp cx, 0x68
jne 0x42b254
cmp word [edi + 2], 0x3a
jne 0x42b254
mov esi, 0x200
jmp 0x42b289
cmp cx, 0x63
jne 0x42b268
cmp word [edi + 2], 0x3a
jne 0x42b268
mov esi, 0x400
jmp 0x42b289
cmp ax, 0x2b
jne 0x42b27c
cmp word [edi + 2], 0x3a
jne 0x42b27c
mov esi, 0x600
jmp 0x42b289
cmp ax, 0x40
jne 0x42b28c
cmp word [edi + 2], 0x3a
jne 0x42b28c
add edi, 4
mov ax, word [edi]
cmp ax, 0x22
je 0x42b29b
cmp ax, 0x27
jne 0x42b2bb
mov al, byte [edi]
movsx ax, al
inc edi
inc edi
mov dword [ebp + 0x48], edi
push eax
lea eax, [ebp + 0x48]
call fcn.00405093
mov eax, dword [ebp + 0x48]
cmp word [eax], bx
pop ecx
je 0x42b2bb
mov word [eax], bx
cmp byte [ebp + 0x6b], 0x11
jne 0x42b327
mov cx, word [edi]
xor esi, esi
cmp cx, 0x22
mov eax, edi
je 0x42b2d4
cmp cx, 0x27
jne 0x42b2ff
mov al, byte [edi]
movsx ax, al
add edi, 2
mov dword [ebp + 0x48], edi
push eax
lea eax, [ebp + 0x48]
call fcn.00405093
mov eax, dword [ebp + 0x48]
cmp word [eax], bx
pop ecx
je 0x42b30f
mov word [eax], bx
jmp 0x42b2fd
cmp cx, 0x3a
je 0x42b309
inc eax
inc eax
mov cx, word [eax]
cmp cx, bx
jne 0x42b2f7
jmp 0x42b30f
mov word [eax], bx
lea esi, [eax + 2]
lea eax, [ebp - 0x4a]
push eax
push 0xfffffffffffffff0
push 1
push esi
lea eax, [ebp - 0x7c]
push edi
push eax
call fcn.0041f9f8
add esp, 0x18
jmp 0x42b357
movsx ecx, byte [ebp + 0x6b]
lea eax, [ebp - 0x4a]
push eax
lea eax, [ebp + 0x7c]
push eax
mov al, byte [ebp + 0x39]
neg al
push 0x100
push edi
sbb eax, eax
and eax, 0x10000
or eax, ecx
or eax, esi
or eax, 0x800
push eax
call fcn.004476b7
add esp, 0x14
mov esi, eax
mov eax, dword [ebp + 0x58]
cmp word [eax], bx
jne 0x42b1eb
cmp byte [ebp + 0x6b], 0x12
jne 0x42b379
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x60]
push dword [ebp + 0x10]
call fcn.0043cd78
lea ecx, [ebp + 0x7c]
jmp 0x42b3fa
xor eax, eax
mov al, byte [ebp + 0x6a]
and eax, 0x12
push eax
push ebx
call fcn.00482162
pop ecx
pop ecx
jmp 0x42b95f
mov dword [ebp + 0x2c], ebx
jmp 0x42b8f3
mov dword [ebp + 0x2c], 1
jmp 0x42b8eb
cmp byte [ebp + 0x39], bl
je 0x42b3d7
mov eax, dword [ebp + 0x40]
cmp word [eax], bx
je 0x42b3d7
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov ecx, dword [ebp + 0x40]
mov word [ecx + eax*2], 0xd
mov ecx, dword [ebp + 0x40]
mov word [ecx + eax*2 + 2], 0xa
mov ecx, dword [ebp + 0x40]
mov word [ecx + eax*2 + 4], bx
push dword [ebp + 0x40]
mov ecx, dword [ebp + 0x60]
push dword [ebp + 4]
call fcn.0043cd78
lea ecx, [ebp + 0x40]
xor esi, esi
call fcn.00437960
lea ecx, [ebp + 0x24]
call fcn.00437960
lea ecx, [ebp + 0x50]
call fcn.00437960
jmp 0x42b91f
cmp dword [ebp + 0x58], ebx
mov dword [ebp + 0x28], ebx
jne 0x42b43b
mov eax, dword [ebp - 4]
cmp word [eax], bx
jne 0x42b43b
cmp byte [ebp - 0x47], bl
jne 0x42b43b
lea ecx, [ebp + 0x40]
call fcn.00437960
lea ecx, [ebp + 0x24]
call fcn.00437960
lea ecx, [ebp + 0x50]
call fcn.00437960
mov ebx, 0x491
jmp 0x42b95f
lea eax, [edi + 4]
mov dword [ebp - 0x88], eax
add eax, 0x3c
push eax
lea ecx, [ebp + 4]
call fcn.0043d49b
mov eax, dword [ebp + 0x4c]
push 0x22
add edi, edi
add eax, edi
push str.System32DRIVERS
push eax
call fcn.004125f9
push dword [ebp + 0x4c]
call fcn.0048ef50
add esp, 0x10
test eax, eax
jne 0x42b47d
push ebx
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
mov eax, dword [ebp + 0x4c]
push 8
add eax, edi
push esi
push eax
call fcn.004125f9
push dword [ebp + 0x4c]
call fcn.0048ef50
add esp, 0x10
test eax, eax
jne 0x42b4a4
push ebx
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
mov eax, dword [ebp + 0x4c]
push 0xa
add eax, edi
push str.INF_
push eax
call fcn.004125f9
movzx eax, word [ebp - 0x50]
shl eax, 0x10
mov dword [ebp + 0xc], eax
xor eax, eax
mov dword [ebp - 0x574], ebx
mov ecx, 0x93
lea edi, [ebp - 0x570]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x574]
push eax
push dword [ebp + 0x70]
lea eax, [ebp + 0x30]
push eax
mov dword [ebp + 0x30], ebx
call fcn.0048f048
add esp, 0x18
cmp dword [ebp + 0x30], ebx
jne 0x42b50a
lea ecx, [ebp + 0x30]
mov dword [ebp + 0x2c], 2
call fcn.00402b8f
lea ecx, [ebp + 4]
jmp 0x42b8de
push dword [ebp + 0x70]
lea ecx, [ebp + 0x60]
call fcn.004457e4
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x70]
call fcn.00449f79
pop ecx
pop ecx
push 0x4a44ac
lea ecx, [ebp + 0x60]
call fcn.0043d4e9
mov esi, dword [ebp + 0x1c]
cmp esi, ebx
je 0x42b53c
cmp word [esi], bx
jne 0x42b541
mov esi, 0x4a8fa4
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x42b54d
cmp word [eax], bx
jne 0x42b552
mov eax, str.DefaultInstall
push eax
lea ecx, [ebp + 0x3c]
call fcn.004457e4
mov edi, 0x4a42c0
push edi
lea ecx, [ebp + 0x3c]
call fcn.0043d4e9
push esi
lea ecx, [ebp + 0x3c]
call fcn.0043d4e9
push edi
lea ecx, [ebp + 0x3c]
call fcn.0043d4e9
push dword [ebp + 0x3c]
mov edi, dword [sym.imp.KERNEL32.DLL_lstrlenW]
call edi
push dword [ebp + 0x60]
mov dword [ebp - 0xc4], eax
call edi
mov dword [ebp + 0x10], eax
test byte [ebp - 0x574], 0x10
jne 0x42b7c7
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x10]
mov word [eax + ecx*2], bx
lea eax, [ebp - 0x548]
push eax
lea ecx, [ebp + 0x60]
call fcn.0043d4e9
mov esi, dword [ebp + 0x60]
lea ecx, [ebp + 0x14]
mov dword [ebp - 0x84], esi
mov byte [ebp + 0x7f], bl
call fcn.0043d47d
mov eax, dword [ebp + 4]
mov dword [ebp + 0x48], ebx
mov word [eax], bx
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x14]
push eax
push esi
call fcn.00482842
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x48]
sub eax, dword [ebp + 0x14]
add esp, 0xc
sar eax, 1
cmp dword [ebp - 0x88], eax
jne 0x42b617
push dword [ebp - 0x88]
push dword [ebp + 0x14]
push dword [ebp + 0x4c]
call fcn.00402ba9
add esp, 0xc
test al, al
je 0x42b617
mov byte [ebp + 0x7f], 1
cmp dword [ebp - 0xd0], ebx
je 0x42b626
mov esi, dword [ebp + 0x64]
cmp esi, ebx
jne 0x42b638
push ebx
push dword [ebp + 0x60]
lea eax, [ebp - 0x7c]
push eax
call fcn.0041f900
add esp, 0xc
mov esi, eax
cmp byte [ebp - 0x47], bl
jne 0x42b655
cmp dword [ebp + 0x58], ebx
jne 0x42b693
cmp byte [ebp + 0x47], bl
je 0x42b64c
cmp byte [ebp + 0x7f], bl
jne 0x42b693
cmp esi, ebx
jne 0x42b693
jmp 0x42b7bf
push 0x2800
lea ecx, [ebp - 0x34]
call fcn.0043d49b
push dword [ebp + 0x60]
push str.:_6R
push 0x27ff
push dword [ebp - 0x34]
call fcn.0048ff98
add esp, 0x10
push ebx
push 0x11
push ebx
push dword [ebp - 0x34]
mov ecx, 0x4bdfa0
call fcn.0041abe7
lea ecx, [ebp - 0x34]
call fcn.00437960
cmp esi, ebx
mov edi, esi
je 0x42b6a5
movzx eax, word [esi - 4]
mov dword [ebp - 0x8c], eax
jmp 0x42b6ab
mov dword [ebp - 0x8c], ebx
cmp esi, ebx
jne 0x42b6b4
mov edi, 0x4a39d4
cmp dword [ebp + 0x58], ebx
mov dword [ebp + 0x7c], 4
jne 0x42b757
cmp byte [ebp - 0x44], bl
je 0x42b6dc
push dword [ebp + 0xc]
lea ecx, [ebp - 0x7c]
push dword [ebp + 0x60]
call fcn.0041fb46
jmp 0x42b7a9
cmp byte [ebp - 0x48], 3
je 0x42b6e7
cmp byte [ebp - 0x46], bl
je 0x42b726
or dword [ebp + 0x7c], 1
cmp byte [ebp - 0x46], bl
je 0x42b700
push 0xffffffffffffffff
push edi
push dword [ebp + 0x60]
lea ecx, [ebp - 0x7c]
call fcn.004202f7
jmp 0x42b714
cmp byte [ebp - 0x48], 3
jne 0x42b717
push 0xffffffffffffffff
push edi
push dword [ebp + 0x60]
lea ecx, [ebp - 0x7c]
call fcn.004203ec
mov dword [ebp + 0x28], eax
cmp dword [ebp + 0x28], ebx
je 0x42b7a9
test byte [ebp + 0x7c], 2
jne 0x42b751
or dword [ebp + 0x7c], 2
cmp esi, ebx
je 0x42b74b
push ebx
push 0xffffffffffffffff
push dword [ebp + 0xc]
lea eax, [ebp - 0x7c]
push dword [ebp + 0x60]
push esi
push eax
call fcn.0041f9f8
add esp, 0x18
cmp eax, ebx
mov dword [ebp + 0x28], eax
je 0x42b7a9
test byte [ebp + 0x7c], 1
je 0x42b6e7
test byte [ebp + 0x7c], 4
jne 0x42b7a9
cmp byte [ebp - 0x44], bl
jne 0x42b6c9
cmp byte [ebp - 0x45], bl
jne 0x42b7a9
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0xc4]
push dword [ebp - 0x84]
mov word [eax + ecx*2], bx
lea ecx, [ebp + 0x3c]
call fcn.0043d4e9
push ebx
push dword [ebp + 0x3c]
push ebx
push ebx
call fcn.0042053e
add esp, 0x10
cmp eax, ebx
mov dword [ebp + 0x28], eax
jne 0x42b7a9
cmp dword [ebp - 0x6c], ebx
je 0x42b7a9
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x7c]
push edi
call fcn.0040fb84
cmp esi, ebx
je 0x42b7b0
mov word [esi], bx
mov eax, dword [ebp + 4]
cmp word [eax], bx
je 0x42b7bf
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
lea ecx, [ebp + 0x14]
call fcn.00437960
lea eax, [ebp - 0x574]
push eax
lea ecx, [ebp + 0x30]
call fcn.00405192
test eax, eax
jne 0x42b594
lea ecx, [ebp + 0x3c]
call fcn.00437960
lea ecx, [ebp + 0x60]
call fcn.00437960
lea ecx, [ebp + 0x30]
call fcn.00402b8f
lea ecx, [ebp + 4]
call fcn.00437960
lea ecx, [ebp + 0x40]
call fcn.00437960
lea ecx, [ebp + 0x24]
call fcn.00437960
lea ecx, [ebp + 0x50]
call fcn.00437960
mov ebx, dword [ebp + 0x28]
jmp 0x42b95f
mov dword [ebp + 0x2c], 1
jmp 0x42b8e3
mov dword [ebp + 0x2c], 0x491
jmp 0x42b8e3
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov ecx, eax
dec ecx
cmp ecx, 1
jl 0x42b863
mov eax, dword [ebp + 0x70]
lea edx, [eax + ecx*2]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040defb
add esp, 4
test al, al
je 0x42b863
mov word [edx], bx
dec ecx
cmp ecx, ebx
jge 0x42b870
mov dword [ebp + 0x2c], 0x80070057
jmp 0x42b8e3
mov ecx, dword [ebp - 0x18]
cmp ecx, ebx
je 0x42b87e
cmp word [ecx], bx
jne 0x42b87e
xor ecx, ecx
push dword [ebp - 0xd8]
xor eax, eax
mov al, byte [ebp + 0x38]
or eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x7c]
push eax
push dword [ebp + 0x70]
call fcn.00428cf1
add esp, 0x14
mov dword [ebp + 0x2c], eax
jmp 0x42b8e3
mov dword [ebp + 0x2c], 2
jmp 0x42b8d3
push 0x4a39d4
push 0x4a3f34
push dword [ebp + 0x60]
mov dword [ebp - 0x74], ebx
call fcn.0040f2bd
add esp, 0xc
lea ecx, [ebp]
call fcn.00437960
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp - 0x2c]
call fcn.00402b8f
lea ecx, [ebp - 0x14]
call fcn.00437960
lea ecx, [ebp + 0x40]
call fcn.00437960
lea ecx, [ebp + 0x24]
call fcn.00437960
lea ecx, [ebp + 0x50]
call fcn.00437960
lea ecx, [ebp - 0xac]
call fcn.0040fd37
lea ecx, [ebp - 0xb0]
call fcn.00420509
lea ecx, [ebp - 0xcc]
call fcn.00420509
mov esi, dword [ebp + 0x2c]
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0xfc]
call fcn.0040fd64
lea eax, [ebp - 0x4a]
mov ax, word [eax]
cmp ax, 0x40
je 0x42b954
push str.0x_X
push dword [ebp - 0xe8]
movzx eax, ax
push eax
push dword [ebp + 0x60]
call fcn.0043f79e
add esp, 0x10
mov ecx, dword [ebp + 0x60]
push ebx
call fcn.0045fd6c
mov ebx, esi
lea ecx, [ebp - 0x38]
call fcn.00437960
lea ecx, [ebp + 0x4c]
call fcn.00437960
lea ecx, [ebp - 0xcc]
call fcn.00437960
lea ecx, [ebp - 0xb0]
call fcn.00437960
lea ecx, [ebp - 0xe0]
call fcn.00437960
lea ecx, [ebp - 0x9c]
call fcn.00437960
lea ecx, [ebp - 0xa8]
call fcn.00437960
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x74
leave
ret 4