Function at 0x426295
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d6cf1
mov eax, dword fs:[0]
push eax
sub esp, 0x1c4
mov eax, dword [0x659fd4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1a4], edx
mov dword [ebp - 0x1b4], ecx
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x88]
push str.GetPhysicalDeviceInfo
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x1c4], 0
call fcn.004128a0
mov dword [ebp - 4], 0
call fcn.00419ac0
cmp dword [eax + 4], 4
jl 0x4257ea
push ecx
lea ecx, [ebp - 0x88]
call fcn.00411500
lea eax, [edi + 4]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], eax
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
lea ecx, [eax - 0x10]
mov esi, dword [ecx]
je 0x425892
cmp dword [ecx + 0xc], 0
lea edx, [ecx + 0xc]
jge 0x425832
cmp dword [eax - 8], 0
jl 0x42703f
mov dword [eax - 0xc], 0
xor ecx, ecx
mov eax, dword [edi + 4]
mov word [eax], cx
jmp 0x425892
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x425875
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x427049
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x427049
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [ebp - 0x190]
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x427052
lock inc dword [esi + 0x14]
lea eax, [esi + 8]
add eax, 0x10
mov dword [edi + 4], eax
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
lea ecx, [eax - 0x10]
mov esi, dword [ecx]
je 0x425925
cmp dword [ecx + 0xc], 0
lea edx, [ecx + 0xc]
jge 0x4258c6
cmp dword [eax - 8], 0
jl 0x42705b
mov dword [eax - 0xc], 0
xor ecx, ecx
mov eax, dword [edi]
mov word [eax], cx
jmp 0x425925
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x425909
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x427065
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x427065
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [ebp - 0x190]
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x42706e
lock inc dword [esi + 0x14]
lea eax, [esi + 8]
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp - 0x1a4]
push 0
push 0
push 3
push 0
push 3
push 0
push dword [ebp - 0x1b4]
mov word [edi + 0x14], 0
mov byte [edi + 0x16], 0
mov dword [edi + 0x10], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x1b0], eax
cmp eax, 0xffffffff
jne 0x4259e1
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x4259d5
push 3
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x42598a
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
add esp, 4
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x1a4]
mov edx, str.Failed_to_open_drive:
mov ecx, esi
call fcn.004115a0
mov ecx, eax
call fcn.0041de00
mov edx, str._with_error:
mov ecx, eax
call fcn.004115a0
mov ecx, eax
call fcn.00413de0
push eax
call fcn.004127a0
add esp, 4
mov byte [ebp - 0x198], 0
jmp 0x42700c
mov esi, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push 4
push 0x1000
push 0x21
push 0
call esi
push 4
push 0x1000
push 0x211
mov edi, eax
push 0
mov dword [ebp - 0x1b4], edi
call esi
mov esi, eax
mov dword [ebp - 0x1ac], esi
test edi, edi
je 0x426fec
test esi, esi
je 0x426fda
mov eax, dword [ebp - 0x1a4]
xorps xmm0, xmm0
movups xmmword [edi], xmm0
push 0x20d
movups xmmword [edi + 0x10], xmm0
mov byte [edi + 0x20], 0
mov byte [edi + 0xc], al
and al, 1
or al, 0xfa
mov dword [edi], 0x200
shl al, 4
mov byte [edi + 9], al
lea eax, [esi + 4]
push 0
push eax
mov word [edi + 5], 0x101
mov byte [edi + 0xa], 0xec
call fcn.005ac560
add esp, 0xc
mov dword [esi], 0x211
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x425ad1
push 3
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x425a99
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
mov edi, dword [ebp - 0x1a4]
add esp, 4
mov edx, str.Looking_for_Drive:
mov ecx, eax
push edi
call fcn.004115a0
mov ecx, eax
call fcn.0041de00
push eax
call fcn.004127a0
mov esi, dword [ebp - 0x1ac]
add esp, 4
jmp 0x425ad7
mov edi, dword [ebp - 0x1a4]
push 0
lea eax, [ebp - 0x1a8]
push eax
push 0x210
push esi
push 0x20
push dword [ebp - 0x1b4]
push 0x7c088
push dword [ebp - 0x1b0]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x425f26
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x425b62
push 3
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x425b32
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
add esp, 4
mov edx, str.Got_Drive:
mov ecx, eax
push edi
call fcn.004115a0
mov ecx, eax
call fcn.0041de00
push eax
call fcn.004127a0
mov esi, dword [ebp - 0x1ac]
add esp, 4
add esi, 0x46
lea edx, [ebp - 0x60]
mov edi, 0x14
nop dword [eax]
movzx ecx, word [esi]
lea edx, [edx + 2]
mov eax, ecx
lea esi, [esi + 2]
shr eax, 8
mov byte [edx - 2], al
mov byte [edx - 1], cl
sub edi, 1
jne 0x425b70
mov byte [edx], 0
cmp byte [ebp - 0x60], 0x20
jne 0x425bb8
lea ecx, [ebp - 0x60]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425b98
sub ecx, edx
lea eax, [ebp - 0x5f]
push ecx
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.005abfe0
add esp, 0xc
cmp byte [ebp - 0x60], 0x20
je 0x425b92
lea ecx, [ebp - 0x60]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425bc0
sub ecx, edx
je 0x425be1
nop dword [eax + eax]
cmp byte [ebp + ecx - 0x61], 0x20
jne 0x425be1
sub ecx, 1
mov byte [ebp + ecx - 0x60], 0
jne 0x425bd0
mov esi, dword [ebp - 0x1ac]
lea edx, [ebp - 0x13]
movzx ecx, word [esi + 0x3e]
mov byte [ebp - 0x1b], cl
mov eax, ecx
movzx ecx, word [esi + 0x40]
shr eax, 8
mov byte [ebp - 0x1c], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x1a], al
mov byte [ebp - 0x19], cl
movzx ecx, word [esi + 0x42]
mov byte [ebp - 0x17], cl
mov eax, ecx
movzx ecx, word [esi + 0x44]
shr eax, 8
mov byte [ebp - 0x18], al
mov eax, ecx
mov byte [ebp - 0x15], cl
movzx ecx, word [esi + 0x46]
shr eax, 8
mov byte [ebp - 0x16], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x14], al
mov byte [edx], cl
movzx ecx, word [esi + 0x48]
mov eax, ecx
shr eax, 8
mov byte [edx + 1], al
mov byte [edx + 2], cl
movzx ecx, word [esi + 0x4a]
mov eax, ecx
shr eax, 8
mov byte [edx + 3], al
mov byte [edx + 4], cl
movzx ecx, word [esi + 0x4c]
mov eax, ecx
shr eax, 8
mov byte [edx + 5], al
mov byte [edx + 6], cl
mov byte [edx + 7], 0
cmp byte [ebp - 0x1c], 0x20
jne 0x425c96
nop dword [eax + eax]
lea ecx, [ebp - 0x1c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425c76
sub ecx, edx
lea eax, [ebp - 0x1b]
push ecx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.005abfe0
add esp, 0xc
cmp byte [ebp - 0x1c], 0x20
je 0x425c70
lea ecx, [ebp - 0x1c]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425ca0
sub ecx, edx
je 0x425cc1
nop dword [eax + eax]
cmp byte [ebp + ecx - 0x1d], 0x20
jne 0x425cc1
sub ecx, 1
mov byte [ebp + ecx - 0x1c], 0
jne 0x425cb0
movzx eax, word [esi + 0x24]
movzx ecx, word [esi + 0x26]
mov edx, eax
mov byte [ebp - 0x33], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x32], al
mov byte [ebp - 0x31], cl
movzx ecx, word [esi + 0x28]
mov eax, ecx
mov byte [ebp - 0x2f], cl
movzx ecx, word [esi + 0x2a]
shr eax, 8
mov byte [ebp - 0x30], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x2e], al
mov byte [ebp - 0x2d], cl
movzx ecx, word [esi + 0x2c]
mov eax, ecx
mov byte [ebp - 0x2b], cl
movzx ecx, word [esi + 0x2e]
shr eax, 8
mov byte [ebp - 0x2c], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x2a], al
mov byte [ebp - 0x29], cl
movzx ecx, word [esi + 0x30]
mov eax, ecx
mov byte [ebp - 0x27], cl
movzx ecx, word [esi + 0x32]
shr eax, 8
mov byte [ebp - 0x28], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x26], al
mov byte [ebp - 0x25], cl
movzx ecx, word [esi + 0x34]
mov eax, ecx
mov byte [ebp - 0x23], cl
movzx ecx, word [esi + 0x36]
shr eax, 8
mov byte [ebp - 0x24], al
mov eax, ecx
shr edx, 8
shr eax, 8
mov byte [ebp - 0x34], dl
mov byte [ebp - 0x22], al
mov byte [ebp - 0x21], cl
mov byte [ebp - 0x20], 0
cmp dl, 0x20
jne 0x425d86
lea ecx, [ebp - 0x34]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425d66
sub ecx, edx
lea eax, [ebp - 0x33]
push ecx
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.005abfe0
add esp, 0xc
cmp byte [ebp - 0x34], 0x20
je 0x425d60
lea ecx, [ebp - 0x34]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425d90
sub ecx, edx
je 0x425db1
nop dword [eax + eax]
cmp byte [ebp + ecx - 0x35], 0x20
jne 0x425db1
sub ecx, 1
mov byte [ebp + ecx - 0x34], 0
jne 0x425da0
mov edi, dword [ebp - 0x190]
lea ecx, [ebp - 0x18c]
mov eax, dword [ebp - 0x1a4]
mov dword [edi + 0x10], eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0040efb0
mov byte [ebp - 4], 1
mov edx, dword [eax]
test edx, edx
jne 0x425ddd
xor ecx, ecx
jmp 0x425df1
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425de2
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [edi + 4]
call fcn.004020e5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x188]
mov eax, dword [ebp - 0x18c]
cmp eax, ecx
je 0x425e18
push eax
call fcn.005b1e01
add esp, 4
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x18c]
call fcn.0040efb0
mov byte [ebp - 4], 2
mov edx, dword [eax]
test edx, edx
jne 0x425e35
xor ecx, ecx
jmp 0x425e4f
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x425e40
sub ecx, esi
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.004020e5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x188]
mov eax, dword [ebp - 0x18c]
cmp eax, ecx
je 0x425e75
push eax
call fcn.005b1e01
add esp, 4
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x425ecb
push 3
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x425ea0
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
mov edx, str.firmwareVersion:
mov ecx, eax
call fcn.004115a0
mov edx, dword [edi + 4]
mov esi, eax
mov ecx, esi
call fcn.004115a0
push esi
call fcn.004127a0
add esp, 8
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x425f89
push 3
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x425efa
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
mov edx, str.model:
mov ecx, eax
call fcn.004115a0
mov edx, dword [edi]
mov esi, eax
mov ecx, esi
call fcn.004115a0
push esi
call fcn.004127a0
add esp, 8
jmp 0x425f89
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call fcn.00419ac0
cmp dword [eax + 4], 2
jl 0x425f83
push 2
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x425f59
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
add esp, 4
mov edx, str.Error_with_DeviceIoControl:
mov ecx, eax
push edi
call fcn.004115a0
mov ecx, eax
call fcn.00413de0
push eax
call fcn.004127a0
add esp, 4
mov edi, dword [ebp - 0x190]
push 4
push 0x1000
push 0x410
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push 0
mov esi, eax
mov dword [ebp - 0x1a8], 0
lea eax, [ebp - 0x1a8]
push eax
push 0x410
push esi
push 0
push 0
push 0x2d0c04
push dword [ebp - 0x1b0]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x425fda
cmp dword [esi], 7
jne 0x425fda
mov byte [edi + 0x15], 1
push 0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x6c], 0
push eax
push 8
lea eax, [ebp - 0x1d0]
mov dword [ebp - 0x68], 0
push eax
push 0xc
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x1d0], 8
push eax
push 0x2d1400
push dword [ebp - 0x1b0]
mov dword [ebp - 0x1cc], 8
mov esi, 0x28
mov dword [ebp - 0x1a8], 0
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
cmovne esi, dword [ebp - 0x1cc]
push esi
call fcn.00461290
push esi
push 0
push eax
mov dword [ebp - 0x1a4], eax
call fcn.005ac560
mov eax, dword [ebp - 0x1a4]
add esp, 0x10
push 0
mov dword [eax + 4], esi
mov dword [eax], 0x28
lea eax, [ebp - 0x1a8]
push eax
push esi
mov esi, dword [ebp - 0x1a4]
lea eax, [ebp - 0x6c]
push esi
push 0xc
push eax
push 0x2d1400
push dword [ebp - 0x1b0]
mov dword [ebp - 0x1a8], 0
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x4266a6
mov al, byte [esi + 0x1c]
mov byte [edi + 0xc], al
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4262bf
add eax, esi
lea ecx, [ebp - 0x18c]
push eax
call fcn.0040efb0
mov byte [ebp - 4], 3
add edi, 8
mov edx, dword [eax]
mov dword [ebp - 0x19c], edi
test edx, edx
jne 0x4260d4
xor ecx, ecx
jmp 0x4260ef
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4260e0
sub ecx, esi
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.004020e5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x188]
mov eax, dword [ebp - 0x18c]
cmp eax, ecx
je 0x426115
push eax
call fcn.005b1e01
add esp, 4
mov edi, dword [edi]
xor esi, esi
movzx eax, word [edi]
test ax, ax
je 0x426192
mov ecx, eax
push ecx
call fcn.005b22ae
add esp, 4
test eax, eax
je 0x42613b
test esi, esi
mov eax, edi
cmovne eax, esi
mov esi, eax
jmp 0x42613d
xor esi, esi
movzx eax, word [edi + 2]
add edi, 2
mov ecx, eax
test ax, ax
jne 0x426123
mov edi, dword [ebp - 0x19c]
test esi, esi
je 0x426198
mov edx, dword [edi]
sub esi, edx
sar esi, 1
js 0x427077
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x42617c
push esi
mov ecx, edi
call fcn.00401fd8
mov edx, dword [edi]
cmp esi, dword [edx - 8]
jg 0x42703f
mov dword [edx - 0xc], esi
xor ecx, ecx
mov eax, dword [edi]
mov word [eax + esi*2], cx
jmp 0x426198
mov edi, dword [ebp - 0x19c]
mov esi, dword [edi]
movzx eax, word [esi]
push eax
call fcn.005b22ae
add esp, 4
test eax, eax
je 0x4261c4
nop word [eax + eax]
movzx eax, word [esi + 2]
add esi, 2
push eax
call fcn.005b22ae
add esp, 4
test eax, eax
jne 0x4261b0
mov edx, dword [edi]
cmp esi, edx
je 0x4262b3
mov eax, dword [edx - 0xc]
sub esi, edx
sar esi, 1
mov dword [ebp - 0x198], eax
test eax, eax
js 0x427081
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, dword [edx - 0xc]
or eax, ecx
jge 0x426204
push dword [ebp - 0x198]
mov ecx, edi
call fcn.00401fd8
mov edx, dword [edi]
mov ecx, dword [edx - 0xc]
lea eax, [edx + esi*2]
sub ecx, esi
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x19c], ecx
lea esi, [ecx*2 + 2]
test esi, esi
je 0x426285
test eax, eax
jne 0x426244
call fcn.005af242
mov dword [eax], 0x16
call fcn.005af169
mov ecx, dword [ebp - 0x19c]
mov eax, 0x16
jmp 0x426287
mov eax, dword [edx - 0xc]
lea eax, [eax*2 + 2]
cmp eax, esi
jae 0x42626f
call fcn.005af242
mov dword [eax], 0x22
call fcn.005af169
mov ecx, dword [ebp - 0x19c]
mov eax, 0x22
jmp 0x426287
push esi
push dword [ebp - 0x198]
push edx
call fcn.005abfe0
mov ecx, dword [ebp - 0x19c]
add esp, 0xc
xor eax, eax
movzx eax, byte [eax + 0x4271b4]
jmp dword [eax*4 + 0x4271a4]
test ecx, ecx
js 0x42703f
mov eax, dword [edi]
cmp ecx, dword [eax - 8]
jg 0x42703f
mov dword [eax - 0xc], ecx
xor edx, edx
mov eax, dword [edi]
mov word [eax + ecx*2], dx
mov esi, dword [ebp - 0x1a4]
mov edi, dword [ebp - 0x190]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4264a9
add eax, esi
lea ecx, [ebp - 0x18c]
push eax
call fcn.0040efb0
mov byte [ebp - 4], 4
mov edx, dword [eax]
test edx, edx
jne 0x4262e6
xor ecx, ecx
jmp 0x4262ff
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4262f0
sub ecx, esi
sar ecx, 1
push ecx
push edx
mov ecx, edi
call fcn.004020e5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x188]
mov eax, dword [ebp - 0x18c]
cmp eax, ecx
je 0x426325
push eax
call fcn.005b1e01
add esp, 4
mov edi, dword [edi]
xor esi, esi
movzx eax, word [edi]
test ax, ax
je 0x4263a2
mov ecx, eax
push ecx
call fcn.005b22ae
add esp, 4
test eax, eax
je 0x42634b
test esi, esi
mov eax, edi
cmovne eax, esi
mov esi, eax
jmp 0x42634d
xor esi, esi
movzx eax, word [edi + 2]
add edi, 2
mov ecx, eax
test ax, ax
jne 0x426333
mov edi, dword [ebp - 0x190]
test esi, esi
je 0x4263a8
mov edx, dword [edi]
sub esi, edx
sar esi, 1
js 0x427090
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x42638c
push esi
mov ecx, edi
call fcn.00401fd8
mov edx, dword [edi]
cmp esi, dword [edx - 8]
jg 0x42703f
mov dword [edx - 0xc], esi
xor ecx, ecx
mov eax, dword [edi]
mov word [eax + esi*2], cx
jmp 0x4263a8
mov edi, dword [ebp - 0x190]
mov esi, dword [edi]
movzx eax, word [esi]
push eax
call fcn.005b22ae
add esp, 4
test eax, eax
je 0x4263d4
nop word [eax + eax]
movzx eax, word [esi + 2]
add esi, 2
push eax
call fcn.005b22ae
add esp, 4
test eax, eax
jne 0x4263c0
mov edx, dword [edi]
cmp esi, edx
je 0x4264a3
mov edi, dword [edx - 0xc]
sub esi, edx
sar esi, 1
test edi, edi
js 0x42709a
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, edi
or eax, ecx
jge 0x42640e
push edi
mov edi, dword [ebp - 0x190]
mov ecx, edi
call fcn.00401fd8
mov edx, dword [edi]
mov edi, dword [edx - 0xc]
lea eax, [edx + esi*2]
sub edi, esi
lea ecx, [edi*2 + 2]
test ecx, ecx
je 0x42646f
test eax, eax
jne 0x42643c
call fcn.005af242
mov dword [eax], 0x16
call fcn.005af169
mov eax, 0x16
jmp 0x426471
mov eax, dword [edx - 0xc]
lea eax, [eax*2 + 2]
cmp eax, ecx
jae 0x426461
call fcn.005af242
mov dword [eax], 0x22
call fcn.005af169
mov eax, 0x22
jmp 0x426471
push ecx
lea eax, [edx + esi*2]
push eax
push edx
call fcn.005abfe0
add esp, 0xc
xor eax, eax
movzx eax, byte [eax + 0x427218]
jmp dword [eax*4 + 0x427208]
test edi, edi
js 0x42703f
mov ecx, dword [ebp - 0x190]
mov eax, dword [ecx]
cmp edi, dword [eax - 8]
jg 0x42703f
mov dword [eax - 0xc], edi
mov eax, dword [ecx]
xor ecx, ecx
mov word [eax + edi*2], cx
mov esi, dword [ebp - 0x1a4]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4266a6
add eax, esi
lea ecx, [ebp - 0x18c]
push eax
call fcn.0040efb0
mov byte [ebp - 4], 5
mov edx, dword [eax]
test edx, edx
jne 0x4264d0
xor ecx, ecx
jmp 0x4264e4
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4264d5
sub ecx, esi
sar ecx, 1
mov esi, dword [ebp - 0x194]
push ecx
push edx
mov ecx, esi
call fcn.004020e5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x188]
mov eax, dword [ebp - 0x18c]
cmp eax, ecx
je 0x426510
push eax
call fcn.005b1e01
add esp, 4
mov edi, dword [esi]
xor esi, esi
movzx eax, word [edi]
test ax, ax
je 0x4265a5
mov ecx, eax
push ecx
call fcn.005b22ae
add esp, 4
test eax, eax
je 0x42653a
test esi, esi
mov eax, edi
cmovne eax, esi
mov esi, eax
jmp 0x42653c
xor esi, esi
movzx eax, word [edi + 2]
add edi, 2
mov ecx, eax
test ax, ax
jne 0x426522
test esi, esi
je 0x4265a5
mov eax, dword [ebp - 0x194]
mov edx, dword [eax]
sub esi, edx
sar esi, 1
js 0x4270a9
mov eax, dword [edx - 8]
mov edi, 1
mov ecx, edi
sub eax, esi
sub ecx, dword [edx - 4]
or eax, ecx
jge 0x426589
mov ecx, dword [ebp - 0x194]
push esi
call fcn.00401fd8
mov eax, dword [ebp - 0x194]
mov edx, dword [eax]
jmp 0x42658f
mov eax, dword [ebp - 0x194]
cmp esi, dword [edx - 8]
jg 0x42703f
mov dword [edx - 0xc], esi
xor ecx, ecx
mov eax, dword [eax]
mov word [eax + esi*2], cx
jmp 0x4265aa
mov edi, 1
mov eax, dword [ebp - 0x194]
mov esi, dword [eax]
movzx eax, word [esi]
push eax
call fcn.005b22ae
add esp, 4
test eax, eax
je 0x4265d6
movzx eax, word [esi + 2]
add esi, 2
push eax
call fcn.005b22ae
add esp, 4
test eax, eax
jne 0x4265c2
mov eax, dword [ebp - 0x194]
mov ecx, dword [eax]
cmp esi, ecx
je 0x4266a6
mov edx, dword [ecx - 0xc]
sub esi, ecx
sar esi, 1
test edx, edx
js 0x4270b3
mov eax, dword [ecx - 8]
sub edi, dword [ecx - 4]
sub eax, edx
or eax, edi
jge 0x426611
mov edi, dword [ebp - 0x194]
mov ecx, edi
push edx
call fcn.00401fd8
mov ecx, dword [edi]
mov edi, dword [ecx - 0xc]
lea eax, [ecx + esi*2]
sub edi, esi
lea edx, [edi*2 + 2]
test edx, edx
je 0x426672
test eax, eax
jne 0x42663f
call fcn.005af242
mov dword [eax], 0x16
call fcn.005af169
mov eax, 0x16
jmp 0x426674
mov eax, dword [ecx - 0xc]
lea eax, [eax*2 + 2]
cmp eax, edx
jae 0x426664
call fcn.005af242
mov dword [eax], 0x22
call fcn.005af169
mov eax, 0x22
jmp 0x426674
push edx
lea eax, [ecx + esi*2]
push eax
push ecx
call fcn.005abfe0
add esp, 0xc
xor eax, eax
movzx eax, byte [eax + 0x42727c]
jmp dword [eax*4 + 0x42726c]
test edi, edi
js 0x42703f
mov ecx, dword [ebp - 0x194]
mov eax, dword [ecx]
cmp edi, dword [eax - 8]
jg 0x42703f
mov dword [eax - 0xc], edi
mov eax, dword [ecx]
xor ecx, ecx
mov word [eax + edi*2], cx
mov edi, dword [ebp - 0x190]
mov eax, dword [edi]
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov dword [ebp - 0x198], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4270bd
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jl 0x4266dc
cmp ecx, dword [esi]
jne 0x4266dc
lock inc dword [eax]
jmp 0x426715
mov eax, dword [ecx]
lea edi, [esi + 4]
push 2
push dword [edi]
mov eax, dword [eax]
call eax
mov esi, eax
test esi, esi
je 0x4270c6
mov eax, dword [edi]
mov dword [esi + 4], eax
mov eax, dword [edi]
inc eax
push eax
push dword [ebp - 0x198]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.004021b4
mov edi, dword [ebp - 0x190]
add esp, 0x10
lea eax, [esi + 0x10]
mov dword [ebp - 0x19c], eax
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 7
call fcn.0040edd0
mov esi, dword [ebp - 0x19c]
cmp dword [esi - 0xc], 0
jl 0x426755
push str.INTEL
push esi
call fcn.005ab46f
add esp, 8
test eax, eax
je 0x426755
sub eax, esi
sar eax, 1
js 0x426755
mov byte [edi + 0x14], 1
mov ecx, dword [edi + 8]
add esi, 0xfffffff0
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x4267f3
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4267e4
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4267e4
push edx
call fcn.0040222e
add esp, 4
mov dword [ebp - 0x198], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x4267d3
mov edx, dword [esi]
push esi
mov ecx, dword [edx]
mov edi, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x4270e1
mov ecx, dword [edx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4270cb
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x198]
add eax, 0x10
mov dword [ebp - 0x19c], eax
jmp 0x4267f3
mov eax, dword [ebp - 0x198]
add eax, 0x10
mov dword [ebp - 0x19c], eax
jmp 0x4267f3
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x19c]
call fcn.004020e5
lea ecx, [ebp - 0x19c]
call fcn.0040edd0
mov edi, dword [ebp - 0x19c]
cmp dword [edi - 0xc], 0
jl 0x42682e
push str.INTEL
push edi
call fcn.005ab46f
mov esi, dword [ebp - 0x190]
add esp, 8
test eax, eax
je 0x426834
sub eax, edi
sar eax, 1
js 0x426834
mov byte [esi + 0x14], 1
jmp 0x426834
mov esi, dword [ebp - 0x190]
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x426893
mov eax, dword [esi]
push 3
mov dword [ebp - 0x198], eax
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x426867
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
mov edx, str.Model:
mov ecx, eax
call fcn.004115a0
mov edx, dword [ebp - 0x198]
mov ecx, eax
call fcn.004115a0
push eax
call fcn.004127a0
add esp, 8
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x4268f8
mov eax, dword [ebp - 0x194]
push 3
mov eax, dword [eax]
mov dword [ebp - 0x198], eax
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x4268cc
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
mov edx, str.Firmware:
mov ecx, eax
call fcn.004115a0
mov edx, dword [ebp - 0x198]
mov ecx, eax
call fcn.004115a0
push eax
call fcn.004127a0
add esp, 8
call fcn.00419ac0
cmp dword [eax + 4], 3
jl 0x42695e
mov eax, dword [ebp - 0x190]
push 3
mov eax, dword [eax + 8]
mov dword [ebp - 0x198], eax
call fcn.00419ac0
mov ecx, eax
call fcn.00419ef0
mov esi, eax
call fcn.00419ac0
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x10]
jb 0x426932
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.00411930
mov edx, str.Vendor:
mov ecx, eax
call fcn.004115a0
mov edx, dword [ebp - 0x198]
mov ecx, eax
call fcn.004115a0
push eax
call fcn.004127a0
add esp, 8
push 0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x6c], 1
push eax
push 8
lea eax, [ebp - 0x1d0]
mov dword [ebp - 0x68], 0
push eax
push 0xc
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x1a8], 0
push eax
push 0x2d1400
push dword [ebp - 0x1b0]
mov esi, 0x20
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
cmovne esi, dword [ebp - 0x1cc]
push esi
call fcn.00461290
push esi
mov ecx, eax
push 0
push ecx
mov dword [ebp - 0x194], ecx
call fcn.005ac560
mov eax, dword [ebp - 0x194]
lea ecx, [ebp - 0x1a8]
add esp, 0x10
mov dword [eax], 0x20
push 0
push ecx
push esi
push eax
mov dword [eax + 4], esi
lea eax, [ebp - 0x6c]
push 0xc
push eax
push 0x2d1400
push dword [ebp - 0x1b0]
mov dword [ebp - 0x1a8], 0
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ecx, dword [ebp - 0x194]
mov esi, dword [ebp - 0x190]
test eax, eax
je 0x426a18
mov al, byte [ecx + 0x18]
mov byte [esi + 0xc], al
push ecx
call fcn.0046128b
mov eax, dword [esi + 8]
add esp, 4
cmp dword [eax - 0xc], 0
jle 0x426e71
push 0x20
push eax
call fcn.005ab98e
add esp, 8
test eax, eax
je 0x426e71
mov ecx, dword [esi + 8]
sub eax, ecx
sar eax, 1
mov dword [ebp - 0x194], ecx
js 0x426e71
lea esi, [ecx - 0x10]
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4270ea
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jl 0x426a7b
cmp ecx, dword [esi]
jne 0x426a7b
lock inc dword [eax]
jmp 0x426aba
lea eax, [esi + 4]
push 2
push dword [eax]
mov dword [ebp - 0x198], eax
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
mov esi, eax
test esi, esi
je 0x4270f3
mov ecx, dword [ebp - 0x198]
mov eax, dword [ecx]
mov dword [esi + 4], eax
mov eax, dword [ecx]
inc eax
push eax
push dword [ebp - 0x194]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.004021b4
add esp, 0x10
lea eax, [esi + 0x10]
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x190]
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 9
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00404643
mov esi, dword [ebp - 0x194]
cmp dword [esi - 0xc], 0
jle 0x426e2c
push 0x20
push esi
call fcn.005ab98e
add esp, 8
test eax, eax
je 0x426e2c
sub eax, esi
sar eax, 1
mov dword [ebp - 0x1a0], eax
test eax, eax
jle 0x426e2c
push eax
lea eax, [ebp - 0x1c0]
push eax
lea ecx, [ebp - 0x194]
call fcn.00427370
mov edx, dword [ebp - 0x190]
mov byte [ebp - 4], 0xa
mov eax, dword [eax]
mov dword [ebp - 0x1bc], eax
lea ecx, [eax - 0x10]
mov dword [ebp - 0x198], ecx
mov ecx, dword [edx + 8]
sub ecx, 0x10
mov dword [ebp - 0x1b8], ecx
cmp dword [ebp - 0x198], ecx
je 0x426c32
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [ebp - 0x1c8], edi
mov edi, dword [ebp - 0x19c]
jl 0x426c26
mov eax, dword [ebp - 0x198]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x426c20
push dword [ebp - 0x198]
call fcn.0040222e
mov dword [ebp - 0x198], eax
add esp, 4
mov eax, dword [ebp - 0x1c8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x426c0c
mov edx, dword [ebp - 0x1b8]
push edx
mov eax, dword [edx]
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov dword [ebp - 0x1b8], esi
mov esi, dword [ebp - 0x194]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x427115
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1b8], edi
mov edi, dword [ebp - 0x19c]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x4270f8
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x198]
add eax, 0x10
mov dword [ecx + 8], eax
jmp 0x426c32
mov ecx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x198]
add eax, 0x10
mov dword [ecx + 8], eax
jmp 0x426c32
mov eax, dword [ebp - 0x1bc]
push dword [eax - 0xc]
lea ecx, [edx + 8]
push eax
call fcn.004020e5
mov byte [ebp - 4], 9
or eax, 0xffffffff
mov ecx, dword [ebp - 0x1c0]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x426c95
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1bc], esi
mov esi, dword [ebp - 0x194]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x42712f
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1bc], edi
mov edi, dword [ebp - 0x19c]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x427122
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0x1a0]
inc ecx
mov byte [ebp - 4], 0xb
mov eax, dword [esi - 0xc]
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x1c8]
push eax
lea ecx, [ebp - 0x194]
call fcn.0040ec40
mov ecx, dword [ebp - 0x190]
mov dword [ebp - 0x1c4], 1
mov edx, dword [eax]
mov ecx, dword [ecx]
sub ecx, 0x10
mov dword [ebp - 0x1bc], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x1a0], eax
cmp eax, ecx
je 0x426db5
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [ebp - 0x1c0], edi
mov edi, dword [ebp - 0x19c]
jl 0x426da6
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x426da6
push dword [ebp - 0x1a0]
call fcn.0040222e
mov dword [ebp - 0x1b8], eax
add esp, 4
mov eax, dword [ebp - 0x1c0]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x426d93
mov edx, dword [ebp - 0x1bc]
push edx
mov eax, dword [edx]
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov dword [ebp - 0x1a0], esi
mov esi, dword [ebp - 0x194]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x427158
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1a0], edi
mov edi, dword [ebp - 0x19c]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x42713c
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x1b8]
add eax, 0x10
mov dword [ecx], eax
jmp 0x426db5
mov ecx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x1b8]
add eax, 0x10
mov dword [ecx], eax
jmp 0x426db5
push dword [edx - 0xc]
mov ecx, dword [ebp - 0x190]
push edx
call fcn.004020e5
mov eax, 1
mov dword [ebp - 0x1c4], eax
and eax, 0xfffffffe
mov dword [ebp - 0x1c4], eax
or eax, 0xffffffff
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x1c8]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x426e2c
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1a0], edi
mov edi, dword [ebp - 0x19c]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x427172
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1a0], esi
mov esi, dword [ebp - 0x194]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x427165
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 7
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x426e71
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x42717f
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x42717f
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x190]
mov eax, dword [eax]
mov dword [ebp - 0x1c0], eax
cmp dword [eax - 0xc], 3
jl 0x426f6e
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x427186
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jl 0x426eb1
cmp ecx, dword [esi]
jne 0x426eb1
lock inc dword [eax]
jmp 0x426ef0
lea eax, [esi + 4]
push 2
push dword [eax]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
mov esi, eax
test esi, esi
je 0x42718f
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ecx]
mov dword [esi + 4], eax
mov eax, dword [ecx]
inc eax
push eax
push dword [ebp - 0x1c0]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.004021b4
add esp, 0x10
add esi, 0x10
mov dword [ebp - 0x1a0], esi
mov byte [ebp - 4], 0xd
cmp dword [esi - 0xc], 0
jl 0x426f25
push 0x6293d0
push esi
call fcn.005ab46f
add esp, 8
test eax, eax
je 0x426f25
sub eax, esi
sar eax, 1
js 0x426f25
mov eax, dword [ebp - 0x190]
mov byte [eax + 0x16], 1
mov byte [ebp - 4], 7
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x426f6e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x427194
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x427194
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [ecx + 4]
call esi
jmp 0x426f74
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x1a4]
push eax
call fcn.0046128b
add esp, 4
mov dword [ebp - 0x198], 1
mov byte [ebp - 4], 0
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x426fce
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x42719b
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x42719b
push 0
push dword [ecx + 4]
call esi
mov edi, dword [ebp - 0x1b4]
mov esi, dword [ebp - 0x1ac]
push 0x8000
push 0
push edi
mov edi, dword [sym.imp.KERNEL32.dll_VirtualFree]
call edi
jmp 0x426ff2
mov edi, dword [sym.imp.KERNEL32.dll_VirtualFree]
test esi, esi
je 0x427000
push 0x8000
push 0
push esi
call edi
push dword [ebp - 0x1b0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 0xffffffff
call fcn.004127e0
mov al, byte [ebp - 0x198]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005a7b5f
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.004022df
mov ecx, edx
call edi
jmp 0x42586f
mov ecx, esi
call edx
jmp 0x42588c
push 0x80070057
call fcn.004022df
mov ecx, edx
call edi
jmp 0x425903
mov ecx, esi
call edx
jmp 0x425920
push 0x80070057
call fcn.004022df
push 0x80070057
call fcn.004022df
call fcn.0046203c
push 0x80070057
call fcn.004022df
push 0x80070057
call fcn.004022df
call fcn.00462022
push 0x80070057
call fcn.004022df
push 0x80070057
call fcn.004022df
call edx
mov ecx, eax
jmp 0x4266ca
call fcn.004021a9
call edx
mov eax, dword [ebp - 0x198]
add eax, 0x10
mov dword [ebp - 0x19c], eax
jmp 0x4267f3
mov ecx, edx
call edi
jmp 0x4267d3
call edx
mov ecx, eax
jmp 0x426a69
call fcn.004021a9
call dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x198]
add eax, 0x10
mov dword [ecx + 8], eax
jmp 0x426c32
mov ecx, eax
call dword [ebp - 0x1b8]
jmp 0x426c0c
mov ecx, edx
call dword [ebp - 0x1bc]
jmp 0x426c95
mov ecx, edx
call dword [ebp - 0x1bc]
jmp 0x426c95
call dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x190]
mov eax, dword [ebp - 0x1b8]
add eax, 0x10
mov dword [ecx], eax
jmp 0x426db5
mov ecx, eax
call dword [ebp - 0x1a0]
jmp 0x426d93
mov ecx, edx
call dword [ebp - 0x1a0]
jmp 0x426e2c
mov ecx, edx
call dword [ebp - 0x1a0]
jmp 0x426e2c
call edx
jmp 0x426e71
call edx
mov ecx, eax
jmp 0x426e9f
call fcn.004021a9
call edx
jmp 0x426f6e
call edx
jmp 0x426fce