Function at 0x42d5e0
Capabilities:
Create thread
Get disk information
Get disk information via ioctl
Query or enumerate registry value

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 0x47e1d5
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x820
mov eax, dword [0x4b4200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x7a0], edi
mov ecx, dword [edi + 0x20]
lea esi, [edi + 0x150]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x7d8], eax
test ecx, ecx
jne 0x42d653
mov eax, dword [edi + 0x380]
mov dword [edi + 0x384], eax
mov dword [edi + 0x344], ecx
jmp 0x42d69f
mov eax, dword [edi + 0x18c]
test eax, eax
je 0x42d69f
cmp ecx, 1
jl 0x42d69f
cmp ecx, dword [edi + 0x190]
jg 0x42d69f
lea edx, [ecx + ecx*8]
cmp dword [eax + edx*8 + 0xc], 0
je 0x42d69f
mov edi, dword [eax + edx*8]
cmp edi, 0x1a
je 0x42d681
cmp edi, 0x28
jne 0x42d699
mov edi, dword [ebp - 0x7a0]
mov eax, dword [eax + edx*8 + 4]
mov dword [edi + 0x384], eax
mov dword [edi + 0x344], ecx
jmp 0x42d69f
mov edi, dword [ebp - 0x7a0]
push 8
push dword [edi + 0x30]
mov ecx, esi
call fcn.00417cb0
push 1
push 0xffffffffffffffff
push dword [edi + 0x9c]
mov ecx, edi
call fcn.00430170
mov ecx, dword [edi + 0x9e4]
xor esi, esi
test ecx, ecx
je 0x42d7ac
mov eax, dword [ebp - 0x7a0]
xor edi, edi
lea edx, [esi + 1]
mov dword [ebp - 0x7d0], edx
cmp ecx, esi
ja 0x42d6ef
mov ecx, edx
mov dword [eax + 0x9e4], edx
mov dword [ebp - 0x7d0], ecx
mov eax, dword [eax + 0x9ec]
cmp dword [eax + edi + 8], 0
jle 0x42d721
cmp ecx, esi
mov ecx, dword [ebp - 0x7a0]
ja 0x42d70c
mov dword [ecx + 0x9e4], edx
mov eax, dword [ecx + 0x9ec]
lea ecx, [ecx + 0x150]
push dword [eax + edi + 8]
call fcn.00416080
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx + 0x9e4], esi
ja 0x42d73b
mov eax, dword [ebp - 0x7d0]
mov dword [ecx + 0x9e4], eax
mov eax, dword [ecx + 0x9ec]
mov dword [edi + eax + 8], 0
cmp dword [ecx + 0x9e4], esi
ja 0x42d75a
lea eax, [esi + 1]
mov dword [ecx + 0x9e4], eax
mov eax, dword [ecx + 0x9ec]
mov dword [ebp - 0x7e8], eax
mov ecx, dword [edi + eax + 0x48]
test ecx, ecx
je 0x42d77d
push ecx
call fcn.00469dd3
mov eax, dword [ebp - 0x7e8]
add esp, 4
mov dword [edi + eax + 0x48], 0
inc esi
mov dword [edi + eax + 0x4c], 0
mov byte [edi + eax + 0x50], 1
add edi, 0x60
mov eax, dword [ebp - 0x7a0]
mov ecx, dword [eax + 0x9e4]
cmp esi, ecx
jb 0x42d6d4
mov edi, eax
lea ecx, [edi + 0x150]
push ecx
push 1
push 0x16
push 0x16
push 0x32
push 0x142
push 0
call fcn.00415c30
mov esi, eax
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x7d0], esi
cmp eax, 0xffffffff
jne 0x42d7dd
mov eax, dword [edi + 0x190]
mov ecx, dword [edi + 0x18c]
test ecx, ecx
je 0x42d804
cmp eax, 1
jl 0x42d804
cmp eax, dword [edi + 0x190]
jg 0x42d804
lea edx, [eax + eax*8]
cmp dword [ecx + edx*8 + 0xc], 0
je 0x42d804
mov edx, dword [ecx + edx*8 + 0x10]
jmp 0x42d806
xor edx, edx
mov eax, esi
cmp esi, 0xffffffff
jne 0x42d813
mov eax, dword [edi + 0x190]
test ecx, ecx
je 0x42d846
cmp eax, 1
jl 0x42d846
cmp eax, dword [edi + 0x190]
jg 0x42d846
lea ecx, [eax + eax*8]
mov eax, dword [edi + 0x18c]
cmp dword [eax + ecx*8 + 0xc], 0
je 0x42d846
mov dword [eax + ecx*8 + 0x20], 0
mov eax, dword [edi + 0x18c]
mov dword [eax + ecx*8 + 0x10], edx
mov eax, esi
test esi, esi
jne 0x42d854
mov edi, dword [edi + 0x380]
jmp 0x42d888
cmp esi, 0xffffffff
jne 0x42d85f
mov eax, dword [edi + 0x190]
mov ecx, dword [edi + 0x18c]
test ecx, ecx
je 0x42d886
cmp eax, 1
jl 0x42d886
cmp eax, dword [edi + 0x190]
jg 0x42d886
lea edi, [eax + eax*8]
cmp dword [ecx + edi*8 + 0xc], 0
je 0x42d886
mov edi, dword [ecx + edi*8 + 4]
jmp 0x42d888
xor edi, edi
mov esi, dword [ebp - 0x7a0]
push 2
push dword [ebp - 0x7d0]
lea ecx, [esi + 0x150]
call fcn.00417cb0
push 1
push dword [esi + 0x4c]
lea ecx, [esi + 0x150]
call fcn.00417cb0
push 1
mov ecx, esi
call fcn.0043f210
test eax, eax
jne 0x42d8b1
push eax
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SleepEx]
mov dword [ebp - 0x7e0], eax
call eax
mov ecx, dword [esi + 0xb4]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
or eax, 0xffffff00
and ecx, 0xff00
shl eax, 0x10
or esi, eax
push 0x14
or esi, ecx
call fcn.0046a3df
add esp, 4
mov dword [eax], edi
push 0
push 0
push eax
push 0x40b170
push 0
push 0
mov dword [eax + 4], 0x16
mov dword [eax + 8], esi
mov dword [eax + 0xc], 0x50
mov dword [eax + 0x10], 0xffffffff
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x7f8], ecx
test eax, eax
je 0x42d93f
cmp eax, 0xffffffff
je 0x42d93f
push eax
call ecx
mov edi, dword [ebp - 0x7a0]
xorps xmm0, xmm0
movq qword [ebp - 0x464], xmm0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x460], 0
mov eax, dword [edi + 0x380]
mov dword [edi + 0x384], eax
xor eax, eax
mov dword [edi + 0x344], 0
mov dword [ebp - 0x7d4], eax
mov dword [ebp - 0x464], eax
mov byte [ebp - 0x45c], 1
mov dword [ebp - 4], eax
push 1
mov ecx, edi
call fcn.0043f210
test eax, eax
jne 0x42d992
push eax
push eax
call dword [ebp - 0x7e0]
cmp dword [ebp - 0x7d8], 0xffffffff
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x7c8], esi
jne 0x42da79
mov eax, dword [edi + 0x94]
cmp eax, 0xffffffff
jne 0x42d9d1
mov eax, dword [edi + 0x190]
mov ecx, dword [edi + 0x18c]
test ecx, ecx
je 0x42da09
cmp eax, 1
jl 0x42da09
cmp eax, dword [edi + 0x190]
jg 0x42da09
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x42da09
cmp dword [ecx + eax*8], 0xf
jne 0x42da09
push 2
push 0xffffffffffffffff
push 0x100c
push dword [ecx + eax*8 + 4]
call esi
jmp 0x42da0c
or eax, 0xffffffff
push 0
push eax
push dword [edi + 0x94]
lea ecx, [edi + 0x150]
call fcn.00419d90
mov esi, eax
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x7d4], esi
test esi, esi
jne 0x42da66
mov byte [ebp - 0x45c], al
mov ecx, 2
mov eax, 1
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov esi, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7d4], esi
mov word [esi], ax
mov dword [ebp - 0x464], esi
mov esi, dword [ebp - 0x7c8]
mov byte [ebp - 0x45c], 1
mov ecx, dword [edi + 0x94]
cmp ecx, 0xffffffff
jne 0x42da8c
mov ecx, dword [edi + 0x190]
jmp 0x42daad
mov edx, dword [edi + 0x18c]
test edx, edx
je 0x42dac7
cmp ecx, 1
jl 0x42dac7
cmp ecx, dword [edi + 0x190]
jg 0x42dac7
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x42dac7
mov eax, dword [edi + 0x18c]
lea ecx, [ecx + ecx*8]
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je 0x42dac7
push 0
push 0
push 0xb
push eax
call esi
push 0
push 0
push 0x1009
push dword [edi + 0xd0]
call esi
push 0x274
lea eax, [ebp - 0x738]
push 0
push eax
call fcn.0046ba40
add esp, 0xc
lea ecx, [ebp - 0x738]
call fcn.004203e0
xor eax, eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x740], xmm0
mov dword [ebp - 0x7f4], eax
mov dword [ebp - 0x740], eax
mov dword [ebp - 0x73c], eax
movq qword [ebp - 0x434], xmm0
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x434], eax
mov byte [ebp - 0x42c], 1
movq qword [ebp - 0x458], xmm0
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x7c4], eax
mov dword [ebp - 0x458], eax
mov byte [ebp - 0x450], 1
mov byte [ebp - 4], 4
cmp dword [edi + 0x3e4], eax
jne 0x42db97
push eax
push 0x30
push 0x30
push ecx
push 0x68
push dword [edi + 0x3c0]
call fcn.0041b150
mov ecx, dword [edi + 0x3e4]
mov esi, eax
test ecx, ecx
je 0x42db91
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3e4], esi
cmp dword [edi + 0x3e8], 0
jne 0x42dbcc
push 0
push 0x30
push 0x30
push ecx
push 0x67
push dword [edi + 0x3c0]
call fcn.0041b150
mov ecx, dword [edi + 0x3e8]
mov esi, eax
test ecx, ecx
je 0x42dbc6
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3e8], esi
cmp dword [edi + 0x3ec], 0
jne 0x42dc01
push 0
push 0x30
push 0x30
push ecx
push 0x69
push dword [edi + 0x3c0]
call fcn.0041b150
mov ecx, dword [edi + 0x3ec]
mov esi, eax
test ecx, ecx
je 0x42dbfb
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3ec], esi
cmp dword [edi + 0x3f0], 0
jne 0x42dc36
push 0
push 0x30
push 0x30
push ecx
push 0x72
push dword [edi + 0x3c0]
call fcn.0041b150
mov ecx, dword [edi + 0x3f0]
mov esi, eax
test ecx, ecx
je 0x42dc30
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3f0], esi
movsd xmm0, qword [0x4aa3d8]
lea eax, [ebp - 0x428]
comisd xmm0, xmmword [edi + 0xc0]
mov dword [ebp - 0x750], eax
mov edx, 0x20019
lea eax, [ebp - 0x420]
mov dword [ebp - 0x428], 1
push ecx
mov dword [ebp - 0x424], 2
mov ecx, str.HKLMSYSTEMCurrentControlSetServicesdiskEnum
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x75c], 0x14
mov dword [ebp - 0x754], 2
mov dword [ebp - 0x74c], eax
jbe 0x42dcb8
mov dword [ebp - 0x75c], 0x10
call fcn.00409550
jmp 0x42dcc7
call fcn.00409550
mov dword [ebp - 0x468], 0
mov ecx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x7e8], ecx
mov ecx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x7cc], eax
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x7e4], ecx
test esi, esi
je 0x42dd46
mov dword [ebp - 0x44c], eax
lea eax, [ebp - 0x43c]
push eax
lea eax, [ebp - 0x468]
mov dword [ebp - 0x43c], 4
push eax
lea eax, [ebp - 0x44c]
push eax
push 0
push str.Count
push esi
call ecx
mov eax, dword [ebp - 0x468]
mov dword [ebp - 0x7cc], eax
cmp esi, 0xffffffff
je 0x42dd46
push esi
call dword [ebp - 0x7e8]
mov eax, dword [ebp - 0x7cc]
mov dword [ebp - 0x7cc], eax
test eax, eax
je 0x42dd51
cmp eax, 0x100
jbe 0x42dd5c
mov eax, 0x100
mov dword [ebp - 0x7cc], eax
mov edx, dword [edi + 0x9e8]
lea ecx, [edi + 0x9e4]
mov esi, dword [ebp - 0x7cc]
add eax, eax
cmp edx, esi
mov dword [ebp - 0x7dc], 0
cmovae eax, edx
push eax
push esi
call fcn.00450120
xorps xmm0, xmm0
mov dword [ebp - 0x444], 0x1a
push 0x13c
movlpd qword [ebp - 0x748], xmm0
call fcn.0046a3df
add esp, 4
mov dword [ebp - 0x438], eax
push 0x405700
push 0x4054d0
push 0x1a
lea esi, [eax + 4]
mov byte [ebp - 4], 5
push 0xc
push esi
mov dword [eax], 0x1a
mov dword [ebp - 0x810], esi
call fcn.0046a414
mov dword [ebp - 0x748], esi
mov dword [ebp - 0x744], 0x1a
push ecx
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.00423990
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x7a8], 0
test eax, eax
jle 0x42e1d4
mov dword [ebp - 0x7b0], esi
jmp 0x42de17
mov edi, dword [ebp - 0x7a0]
push 1
mov ecx, edi
call fcn.0043f210
test eax, eax
jne 0x42de17
push eax
push eax
call dword [ebp - 0x7e0]
cmp dword [esi], 0
jne 0x42de45
push 2
call fcn.0046a3df
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
push dword [esi]
mov eax, 8
mov edi, esi
mov byte [edi + eax], 1
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x42de66
cmp eax, 2
jne 0x42e1b2
cmp dword [esi], 0
jne 0x42de87
push 2
call fcn.0046a3df
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov eax, 8
mov dword [edi + eax - 4], ecx
jmp 0x42de8c
mov eax, 8
mov ecx, dword [esi]
mov byte [edi + eax], 1
call fcn.00423000
mov edi, eax
mov dword [ebp - 0x7ac], edi
cmp edi, dword [ebp - 0x7cc]
ja 0x42e1b2
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx + 0x9e4], edi
ja 0x42dec2
lea eax, [edi + 1]
mov dword [ecx + 0x9e4], eax
mov ecx, dword [ecx + 0x9ec]
lea edx, [edi + edi*2]
shl edx, 5
mov dword [ebp - 0x43c], ecx
mov eax, dword [ecx + edx + 0x4c]
test eax, eax
jne 0x42df0a
mov ecx, dword [ecx + edx + 0x48]
test ecx, ecx
je 0x42def8
cmp word [ecx], ax
je 0x42def8
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42def0
mov ecx, dword [ebp - 0x43c]
mov dword [ecx + edx + 0x4c], eax
test eax, eax
je 0x42e03e
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx + 0x9e4], edi
ja 0x42df21
lea eax, [edi + 1]
mov dword [ecx + 0x9e4], eax
mov edx, dword [ecx + 0x9ec]
lea eax, [edi + edi*2]
shl eax, 5
mov dword [ebp - 0x7a4], eax
mov dword [ebp - 0x7c0], edx
mov esi, dword [edx + eax + 0x4c]
mov byte [edx + eax + 0x50], 0
test esi, esi
jne 0x42df5f
mov ecx, dword [edx + eax + 0x48]
test ecx, ecx
je 0x42df5b
cmp word [ecx], si
je 0x42df5b
inc esi
cmp word [ecx + esi*2], 0
jne 0x42df53
mov dword [edx + eax + 0x4c], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x49f1b8], 0
jne 0x42df61
add esi, eax
mov ecx, 2
lea eax, [esi + 1]
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x7a4]
mov ecx, eax
mov eax, dword [ebp - 0x7c0]
add esp, 4
mov dword [ebp - 0x7b8], ecx
mov edx, dword [eax + edx + 0x48]
test edx, edx
je 0x42dfd1
movzx eax, word [edx]
mov edi, eax
mov dword [ebp - 0x43c], edi
test ax, ax
je 0x42dfd1
sub edx, ecx
movzx edi, ax
nop dword [eax + eax]
mov word [ecx], di
add ecx, 2
movzx eax, word [edx + ecx]
mov edi, eax
test ax, ax
jne 0x42dfc0
mov edi, 0x49f1b8
mov edx, 0x2c
sub edi, ecx
nop dword [eax]
mov word [ecx], dx
lea ecx, [ecx + 2]
movzx eax, word [ecx + edi]
mov edx, eax
test ax, ax
jne 0x42dfe0
mov edi, dword [ebp - 0x7ac]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7a4]
mov ecx, dword [ebp - 0x7c0]
mov edx, dword [ecx + eax + 0x48]
test edx, edx
je 0x42e025
push edx
call fcn.00469dd3
mov eax, dword [ebp - 0x7a4]
add esp, 4
mov ecx, dword [ebp - 0x7c0]
mov edx, dword [ebp - 0x7b8]
mov dword [ecx + eax + 0x4c], esi
mov esi, dword [ebp - 0x7b0]
mov dword [ecx + eax + 0x48], edx
mov byte [ecx + eax + 0x50], 1
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx + 0x9e4], edi
ja 0x42e055
lea eax, [edi + 1]
mov dword [ecx + 0x9e4], eax
mov edx, dword [ecx + 0x9ec]
lea eax, [edi + edi*2]
shl eax, 5
cmp dword [esi], 0
mov dword [ebp - 0x7a4], eax
mov dword [ebp - 0x7c0], edx
jne 0x42e092
push 2
call fcn.0046a3df
mov edx, dword [ebp - 0x7c0]
add esp, 4
xor ecx, ecx
mov dword [esi], eax
mov word [eax], cx
mov eax, dword [ebp - 0x7a4]
mov dword [esi + 4], ecx
mov edi, dword [esi]
mov byte [esi + 8], 1
mov esi, dword [edx + eax + 0x4c]
mov dword [ebp - 0x7ac], edi
mov byte [edx + eax + 0x50], 0
test esi, esi
jne 0x42e0c4
mov ecx, dword [edx + eax + 0x48]
test ecx, ecx
je 0x42e0c0
cmp word [ecx], si
je 0x42e0c0
inc esi
cmp word [ecx + esi*2], 0
jne 0x42e0b8
mov dword [edx + eax + 0x4c], esi
test edi, edi
je 0x42e0da
xor eax, eax
cmp word [edi], ax
je 0x42e0d8
nop
inc eax
cmp word [edi + eax*2], 0
jne 0x42e0d0
add esi, eax
mov ecx, 2
lea eax, [esi + 1]
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x7a4]
mov ecx, eax
mov eax, dword [ebp - 0x7c0]
add esp, 4
mov dword [ebp - 0x7b8], ecx
mov edx, dword [eax + edx + 0x48]
test edx, edx
je 0x42e147
movzx eax, word [edx]
mov edi, eax
mov dword [ebp - 0x43c], edi
mov edi, dword [ebp - 0x7ac]
test ax, ax
je 0x42e147
sub edx, ecx
movzx edi, ax
nop dword [eax]
mov word [ecx], di
add ecx, 2
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x42e130
mov edi, dword [ebp - 0x7ac]
test edi, edi
je 0x42e171
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x42e171
sub edi, ecx
nop word [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + edi]
mov edx, eax
test ax, ax
jne 0x42e160
mov edi, dword [ebp - 0x7a4]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7c0]
mov ecx, dword [eax + edi + 0x48]
test ecx, ecx
je 0x42e199
push ecx
call fcn.00469dd3
mov eax, dword [ebp - 0x7c0]
add esp, 4
mov ecx, dword [ebp - 0x7b8]
mov dword [eax + edi + 0x4c], esi
mov esi, dword [ebp - 0x7b0]
mov dword [eax + edi + 0x48], ecx
mov byte [eax + edi + 0x50], 1
mov edi, dword [ebp - 0x7a8]
add esi, 0xc
inc edi
mov dword [ebp - 0x7b0], esi
mov dword [ebp - 0x7a8], edi
cmp edi, dword [ebp - 0x44c]
jl 0x42de11
push ecx
mov edx, 0x20019
mov ecx, str.HKCUSoftwareClearDiskInfoErrorIgnoredDisks
call fcn.00409550
mov edi, eax
mov dword [ebp - 0x7b8], edi
mov dword [ebp - 0x47c], edi
xor esi, esi
mov byte [ebp - 4], 7
mov dword [ebp - 0x7a8], esi
cmp dword [ebp - 0x7cc], esi
jbe 0x42fc02
mov ecx, dword [ebp - 0x7a0]
lea eax, [ecx + 0x150]
mov dword [ebp - 0x80c], eax
lea eax, [ecx + 0x9e4]
mov dword [ebp - 0x79c], eax
mov eax, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x44c], eax
mov eax, dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov dword [ebp - 0x800], eax
mov eax, dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
mov dword [ebp - 0x43c], eax
mov eax, dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
mov dword [ebp - 0x7fc], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x804], eax
mov eax, dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov dword [ebp - 0x808], eax
nop word [eax + eax]
push 1
call fcn.0043f210
mov ecx, dword [ebp - 0x7a0]
test eax, eax
jne 0x42e270
push 0
push 0
call dword [ebp - 0x7e0]
mov ecx, dword [ebp - 0x79c]
inc esi
push 0
push esi
call fcn.00450120
mov edx, dword [ebp - 0x79c]
mov eax, dword [ebp - 0x7a8]
cmp dword [edx], eax
ja 0x42e2ac
mov dword [edx], esi
mov esi, dword [ebp - 0x7a8]
mov eax, dword [edx + 8]
push esi
lea ecx, [esi + esi*2]
shl ecx, 5
mov byte [ecx + eax], 0
lea ecx, [ebp - 0x738]
call fcn.00420620
test al, al
je 0x42fbe9
lea ecx, [ebp - 0x738]
call fcn.00421530
mov dword [ebp - 0x7c0], eax
test eax, eax
je 0x42fbe9
mov eax, dword [ebp - 0x508]
cmp eax, 0xffffffff
je 0x42e34d
test eax, eax
je 0x42e34d
push 0
lea ecx, [ebp - 0x734]
mov dword [ebp - 0x478], 0
push ecx
push 8
lea ecx, [ebp - 0x478]
mov dword [ebp - 0x474], 0
push ecx
push 0
push 0
push 0x7405c
push eax
mov dword [ebp - 0x734], 0
call dword [ebp - 0x44c]
test eax, eax
je 0x42e34d
mov esi, dword [ebp - 0x478]
mov edx, dword [ebp - 0x474]
jmp 0x42e364
xorps xmm0, xmm0
movlpd qword [ebp - 0x448], xmm0
mov esi, dword [ebp - 0x448]
mov edx, dword [ebp - 0x444]
mov eax, dword [ebp - 0x79c]
mov ecx, dword [ebp - 0x7a8]
cmp dword [eax], ecx
ja 0x42e38f
mov edi, dword [ebp - 0x7a0]
lea eax, [ecx + 1]
mov dword [edi + 0x9e4], eax
mov edi, dword [ebp - 0x7b8]
mov eax, dword [ebp - 0x79c]
mov eax, dword [eax + 8]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dword [eax + ecx + 0x30], esi
mov esi, dword [ebp - 0x7a8]
mov dword [eax + ecx + 0x34], edx
mov edx, dword [ebp - 0x79c]
mov eax, dword [edx]
cmp eax, esi
ja 0x42e3b7
lea eax, [esi + 1]
mov dword [edx], eax
mov edx, dword [edx + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [edx + ecx + 0x34], 0
jl 0x42fbe9
jg 0x42e3db
cmp dword [edx + ecx + 0x30], 0x400
jb 0x42fbe9
cmp eax, esi
ja 0x42e3ee
mov ecx, dword [ebp - 0x7a0]
lea eax, [esi + 1]
mov dword [ecx + 0x9e4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov byte [ecx + eax], 1
mov ecx, dword [ebp - 0x79c]
mov eax, dword [ebp - 0x7c0]
mov edx, dword [eax + 4]
cmp dword [ecx], esi
ja 0x42e419
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x10], edx
mov edx, dword [ebp - 0x79c]
cmp dword [edx], esi
ja 0x42e43b
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [edx + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
mov dword [eax + ecx + 0x38], 0
mov eax, dword [ebp - 0x508]
cmp eax, 0xffffffff
je 0x42e4d6
test eax, eax
je 0x42e4d6
cmp dword [ebp - 0x72c], 1
je 0x42e4d6
mov al, byte [ebp - 0x724]
cmp al, 0xff
jne 0x42e4d8
push 0
sub esp, 8
mov dword [ebp - 0x7f0], 0x4f010100
lea eax, [ebp - 0x7f0]
mov dword [ebp - 0x7ec], 0xb0a0c2
lea ecx, [ebp - 0x738]
push 8
push eax
push 0xda
call fcn.00421100
test al, al
je 0x42e4bd
mov al, byte [ebp - 0x7f0]
shr al, 2
not al
and al, 1
mov byte [ebp - 0x724], al
jmp 0x42e4d8
lea ecx, [ebp - 0x738]
call fcn.00421e90
test eax, eax
je 0x42e4d6
mov al, byte [eax + 0xaa]
and al, 1
jmp 0x42e4d8
xor al, al
mov ecx, dword [ebp - 0x79c]
cmp al, 1
sete dl
cmp dword [ecx], esi
ja 0x42e4ec
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
inc dword [ebp - 0x7dc]
shl ecx, 5
mov eax, dword [eax + 8]
mov byte [eax + ecx + 4], dl
mov edx, dword [ebp - 0x79c]
cmp dword [edx], esi
ja 0x42e514
lea eax, [esi + 1]
mov dword [edx], eax
lea ecx, [esi + esi*2]
mov esi, dword [edx + 8]
shl ecx, 5
add esi, ecx
mov ecx, dword [ebp - 0x7c0]
cmp dword [ecx + 8], 0
jne 0x42e546
push 2
call fcn.0046a3df
mov ecx, dword [ebp - 0x7c0]
add esp, 4
xor edx, edx
mov dword [ecx + 8], eax
mov word [eax], dx
mov dword [ecx + 0xc], edx
push dword [ecx + 8]
mov byte [ecx + 0x10], 1
lea ecx, [esi + 0x3c]
call fcn.00405a60
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x42e583
mov ecx, dword [edx]
test ecx, ecx
je 0x42e578
cmp word [ecx], ax
je 0x42e578
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42e570
mov dword [edx + 4], eax
test eax, eax
je 0x42e6b2
mov edx, dword [ebp - 0x79c]
mov ecx, dword [ebp - 0x7a8]
cmp dword [edx], ecx
ja 0x42e598
lea eax, [ecx + 1]
mov dword [edx], eax
mov edx, dword [edx + 8]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dword [ebp - 0x7b0], ecx
mov dword [ebp - 0x7a4], edx
mov esi, dword [edx + ecx + 0x40]
mov byte [edx + ecx + 0x44], 0
test esi, esi
jne 0x42e5d3
mov eax, dword [edx + ecx + 0x3c]
test eax, eax
je 0x42e5cf
cmp word [eax], si
je 0x42e5cf
inc esi
cmp word [eax + esi*2], 0
jne 0x42e5c7
mov dword [edx + ecx + 0x40], esi
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x49eaf8], 0
jne 0x42e5e0
add esi, eax
mov ecx, 2
lea eax, [esi + 1]
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x7b0]
mov ecx, eax
mov eax, dword [ebp - 0x7a4]
add esp, 4
mov dword [ebp - 0x7ac], ecx
mov edx, dword [eax + edx + 0x3c]
test edx, edx
je 0x42e651
movzx eax, word [edx]
mov edi, eax
mov dword [ebp - 0x7bc], edi
test ax, ax
je 0x42e651
sub edx, ecx
movzx edi, ax
nop word [eax + eax]
mov word [ecx], di
add ecx, 2
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x42e640
mov edi, 0x49eaf8
mov edx, 0x20
sub edi, ecx
nop dword [eax]
mov word [ecx], dx
lea ecx, [ecx + 2]
movzx eax, word [ecx + edi]
mov edx, eax
test ax, ax
jne 0x42e660
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7b0]
mov ecx, dword [ebp - 0x7a4]
mov eax, dword [ecx + eax + 0x3c]
test eax, eax
je 0x42e699
push eax
call fcn.00469dd3
mov ecx, dword [ebp - 0x7a4]
add esp, 4
mov eax, dword [ebp - 0x7b0]
mov edx, dword [ebp - 0x7ac]
mov dword [ecx + eax + 0x3c], edx
mov dword [ecx + eax + 0x40], esi
mov byte [ecx + eax + 0x44], 1
mov esi, dword [ebp - 0x79c]
mov ecx, dword [ebp - 0x7a8]
cmp dword [esi], ecx
ja 0x42e6c7
lea eax, [ecx + 1]
mov dword [esi], eax
mov eax, dword [esi + 8]
lea edx, [ecx + ecx*2]
mov esi, dword [ebp - 0x7c0]
shl edx, 5
mov dword [ebp - 0x7a4], edx
mov dword [ebp - 0x7b0], eax
cmp dword [esi + 0x14], 0
jne 0x42e709
push 2
call fcn.0046a3df
mov edx, dword [ebp - 0x7a4]
add esp, 4
xor ecx, ecx
mov dword [esi + 0x14], eax
mov word [eax], cx
mov eax, dword [ebp - 0x7b0]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x14]
mov byte [esi + 0x1c], 1
mov esi, dword [eax + edx + 0x40]
mov dword [ebp - 0x7ac], ecx
mov byte [eax + edx + 0x44], 0
test esi, esi
jne 0x42e742
mov eax, dword [eax + edx + 0x3c]
test eax, eax
je 0x42e738
cmp word [eax], si
je 0x42e738
inc esi
cmp word [eax + esi*2], 0
jne 0x42e730
mov eax, dword [ebp - 0x7b0]
mov dword [eax + edx + 0x40], esi
test ecx, ecx
je 0x42e75a
xor eax, eax
cmp word [ecx], ax
je 0x42e758
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42e750
add esi, eax
mov ecx, 2
lea eax, [esi + 1]
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov ecx, dword [ebp - 0x7b0]
add esp, 4
mov edx, dword [ebp - 0x7a4]
mov dword [ebp - 0x7bc], eax
mov edx, dword [ecx + edx + 0x3c]
mov ecx, eax
test edx, edx
je 0x42e7b7
movzx eax, word [edx]
mov edi, eax
mov dword [ebp - 0x7b4], edi
test ax, ax
je 0x42e7b7
sub edx, ecx
movzx edi, ax
mov word [ecx], di
add ecx, 2
movzx eax, word [ecx + edx]
mov edi, eax
test ax, ax
jne 0x42e7a6
mov eax, dword [ebp - 0x7ac]
test eax, eax
je 0x42e7e4
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42e7e4
mov edi, dword [ebp - 0x7ac]
sub edi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + edi]
mov edx, eax
test ax, ax
jne 0x42e7d3
mov edx, dword [ebp - 0x7b0]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7a4]
mov eax, dword [edx + eax + 0x3c]
test eax, eax
je 0x42e80c
push eax
call fcn.00469dd3
mov edx, dword [ebp - 0x7b0]
add esp, 4
mov eax, dword [ebp - 0x7a4]
mov ecx, dword [ebp - 0x7bc]
mov dword [edx + eax + 0x3c], ecx
mov ecx, dword [ebp - 0x7a8]
mov dword [edx + eax + 0x40], esi
mov byte [edx + eax + 0x44], 1
mov eax, dword [ebp - 0x7a0]
mov edx, dword [ebp - 0x79c]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x7bc], eax
cmp dword [edx], ecx
ja 0x42e84c
lea eax, [ecx + 1]
mov dword [edx], eax
lea esi, [ecx + ecx*2]
mov ecx, dword [edx + 8]
shl esi, 5
mov dword [ebp - 0x7b4], ecx
cmp dword [ecx + esi + 0x3c], 0
jne 0x42e87f
push 2
call fcn.0046a3df
mov ecx, dword [ebp - 0x7b4]
add esp, 4
xor edx, edx
mov dword [ecx + esi + 0x3c], eax
mov word [eax], dx
mov dword [ecx + esi + 0x40], edx
mov eax, dword [ebp - 0x7a8]
push ecx
push dword [ebp - 0x7bc]
mov byte [ecx + esi + 0x44], 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push 0
push dword [ecx + esi + 0x3c]
mov ecx, dword [ebp - 0x80c]
call fcn.00419a20
mov edx, dword [ebp - 0x79c]
mov esi, dword [ebp - 0x7a8]
mov dword [ebp - 0x7b0], eax
cmp dword [edx], esi
ja 0x42e8c2
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [edx + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
add eax, 0x1c
add eax, ecx
lea ecx, [ebp - 0x738]
push eax
mov dword [eax], 0
call fcn.00423380
mov ecx, dword [ebp - 0x79c]
mov edx, eax
cmp dword [ecx], esi
ja 0x42e8f3
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
push 0x12
push 0
shl ecx, 5
mov eax, dword [eax + 8]
push 0
push 0x4aa314
mov dword [eax + ecx + 0xc], edx
call dword [ebp - 0x800]
xor esi, esi
mov dword [ebp - 0x7ac], eax
cmp eax, 0xffffffff
je 0x42eabb
lea ecx, [ebp - 0x4b4]
mov dword [ebp - 0x4b4], 0x1c
push ecx
push esi
push 0x4aa314
push esi
push eax
mov dword [ebp - 0x7a4], esi
mov dword [ebp - 0x7bc], esi
call dword [ebp - 0x43c]
test eax, eax
je 0x42eaaf
nop dword [eax + eax]
mov esi, dword [ebp - 0x7ac]
lea eax, [ebp - 0x734]
push 0
push eax
push 0
push 0
lea eax, [ebp - 0x4b4]
mov dword [ebp - 0x734], 0
push eax
push esi
call dword [ebp - 0x7fc]
mov eax, dword [ebp - 0x734]
test eax, eax
je 0x42ea64
cmp eax, 0x400
ja 0x42ea64
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x418], 6
push ecx
lea ecx, [ebp - 0x734]
mov dword [ebp - 0x498], 0x1c
push ecx
push eax
lea eax, [ebp - 0x418]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x4b4]
movlpd qword [ebp - 0x494], xmm0
push eax
push esi
movlpd qword [ebp - 0x48c], xmm0
movlpd qword [ebp - 0x484], xmm0
call dword [ebp - 0x7fc]
test eax, eax
je 0x42ea64
push 0
push 0
push 3
push 0
push 3
push 0
lea eax, [ebp - 0x414]
push eax
call dword [ebp - 0x804]
mov esi, eax
test esi, esi
je 0x42ea64
cmp esi, 0xffffffff
je 0x42ea64
push 0
lea eax, [ebp - 0x734]
mov dword [ebp - 0x734], 0
push eax
push 0xc
lea eax, [ebp - 0x4c0]
push eax
push 0
push 0
push 0x2d1080
push esi
call dword [ebp - 0x44c]
test eax, eax
je 0x42ea5d
mov eax, dword [ebp - 0x738]
cmp eax, dword [ebp - 0x4bc]
je 0x42ea96
push esi
call dword [ebp - 0x7f8]
mov eax, dword [ebp - 0x7bc]
lea ecx, [ebp - 0x4b4]
push ecx
inc eax
push eax
push 0x4aa314
push 0
push dword [ebp - 0x7ac]
mov dword [ebp - 0x7bc], eax
call dword [ebp - 0x43c]
test eax, eax
jne 0x42e960
jmp 0x42eaa9
mov eax, dword [ebp - 0x484]
push esi
mov dword [ebp - 0x7a4], eax
call dword [ebp - 0x7f8]
mov esi, dword [ebp - 0x7a4]
push dword [ebp - 0x7ac]
call dword [ebp - 0x808]
mov ecx, dword [ebp - 0x79c]
mov edx, dword [ebp - 0x7a8]
cmp dword [ecx], edx
ja 0x42ead0
lea eax, [edx + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [edx + edx*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x2c], esi
mov esi, dword [ebp - 0x79c]
cmp dword [esi], edx
ja 0x42eaf2
lea eax, [edx + 1]
mov dword [esi], eax
mov eax, dword [esi + 8]
lea ecx, [edx + edx*2]
shl ecx, 5
push dword [eax + ecx + 0x34]
push dword [eax + ecx + 0x30]
lea ecx, [ebp - 0x434]
call fcn.00423a70
mov esi, dword [esi]
mov eax, dword [ebp - 0x7a8]
cmp esi, eax
ja 0x42eb29
mov ecx, dword [ebp - 0x7a0]
lea esi, [eax + 1]
mov dword [ecx + 0x9e4], esi
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x79c]
shl ecx, 5
mov eax, dword [eax + 8]
cmp dword [eax + ecx + 0xc], 4
jne 0x42ebea
cmp byte [ebp - 0x722], 0
je 0x42eb6b
mov eax, dword [ebp - 0x4ec]
test eax, eax
je 0x42eb6b
cmp dword [eax], 0x30
lea ecx, [eax + 8]
jne 0x42eb6b
cmp dword [eax + 4], 0x30
jne 0x42eb6b
mov edx, dword [ecx + 0x10]
add edx, ecx
jmp 0x42eb6d
xor edx, edx
cmp esi, dword [ebp - 0x7a8]
mov esi, dword [ebp - 0x7a8]
ja 0x42eb8a
mov ecx, dword [ebp - 0x7a0]
lea eax, [esi + 1]
mov dword [ecx + 0x9e4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x38], edx
mov eax, dword [ebp - 0x79c]
mov edx, dword [eax]
cmp edx, esi
ja 0x42ebae
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [eax + ecx + 0x38], 0
jne 0x42ebf0
cmp edx, esi
ja 0x42ebd1
mov ecx, dword [ebp - 0x7a0]
lea eax, [esi + 1]
mov dword [ecx + 0x9e4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0xc], 2
jmp 0x42ebf0
mov esi, dword [ebp - 0x7a8]
mov eax, dword [ebp - 0x79c]
mov edx, dword [eax]
cmp edx, esi
ja 0x42ec01
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + ecx + 0xc]
mov dword [ebp - 0x7ac], eax
mov eax, dword [ebp - 0x79c]
cmp edx, esi
ja 0x42ec23
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + ecx + 0xc]
mov dword [ebp - 0x7bc], eax
cmp eax, 4
jne 0x42ed14
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42ec6e
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42ec68
cmp word [ecx], ax
je 0x42ec68
nop
inc eax
cmp word [ecx + eax*2], 0
jne 0x42ec60
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + str._NVMe_SSD], 0
jne 0x42ec70
add eax, ecx
mov ecx, 2
mov dword [ebp - 0x7a4], eax
inc eax
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x434]
add esp, 4
mov dword [ebp - 0x7b4], eax
mov ecx, eax
test edx, edx
je 0x42eccb
movzx eax, word [edx]
test ax, ax
je 0x42eccb
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42ecb7
mov edx, str._NVMe_SSD
mov esi, 0x20
sub edx, ecx
nop word [eax + eax]
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x42ece0
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42ed09
push eax
call fcn.00469dd3
add esp, 4
mov edi, dword [ebp - 0x7a0]
jmp 0x42ef79
cmp dword [ebp - 0x7ac], 2
jne 0x42edd6
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42ed4f
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42ed49
cmp word [ecx], ax
je 0x42ed49
inc eax
cmp word [ecx + eax*2], 0
jne 0x42ed41
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + str._SSD], 0
jne 0x42ed51
add eax, ecx
mov ecx, 2
mov dword [ebp - 0x7a4], eax
inc eax
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x434]
add esp, 4
mov dword [ebp - 0x7b4], eax
mov ecx, eax
test edx, edx
je 0x42edb4
movzx eax, word [edx]
test ax, ax
je 0x42edb4
nop dword [eax + eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42eda0
mov edx, str._SSD
mov esi, 0x20
sub edx, ecx
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42edc0
jmp 0x42ecf1
mov edi, dword [ebp - 0x7a0]
cmp edx, esi
ja 0x42ede9
lea eax, [esi + 1]
mov dword [edi + 0x9e4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
cmp dword [eax + ecx + 0xc], 0
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x42c], 0
jne 0x42eeb6
test eax, eax
jne 0x42ee31
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42ee2b
cmp word [ecx], ax
je 0x42ee2b
inc eax
cmp word [ecx + eax*2], 0
jne 0x42ee23
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + str._HDD], 0
jne 0x42ee33
add eax, ecx
mov ecx, 2
mov dword [ebp - 0x7a4], eax
inc eax
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x434]
add esp, 4
mov dword [ebp - 0x7b4], eax
mov ecx, eax
test edx, edx
je 0x42ee94
movzx eax, word [edx]
test ax, ax
je 0x42ee94
nop word [eax + eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42ee80
mov edx, str._HDD
mov esi, 0x20
sub edx, ecx
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42eea0
jmp 0x42ef61
test eax, eax
jne 0x42eede
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42eed8
cmp word [ecx], ax
je 0x42eed8
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42eed0
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + str._flash_disk], 0
jne 0x42eee0
add eax, ecx
mov ecx, 2
mov dword [ebp - 0x7a4], eax
inc eax
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x434]
add esp, 4
mov dword [ebp - 0x7b4], eax
mov ecx, eax
test edx, edx
je 0x42ef3b
movzx eax, word [edx]
test ax, ax
je 0x42ef3b
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42ef27
mov edx, str._flash_disk
mov esi, 0x20
sub edx, ecx
nop word [eax + eax]
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42ef50
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42ef79
push eax
call fcn.00469dd3
add esp, 4
mov eax, dword [ebp - 0x7b4]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x7a4]
mov byte [ebp - 0x42c], 1
mov dword [ebp - 0x430], eax
nop dword [eax + eax]
push 1
mov ecx, edi
call fcn.0043f210
test eax, eax
jne 0x42efa0
push eax
push eax
call dword [ebp - 0x7e0]
mov edx, dword [ebp - 0x79c]
mov esi, dword [ebp - 0x7a8]
mov edi, dword [ebp - 0x7b8]
cmp dword [edx], esi
ja 0x42efd0
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [edx + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [ebp - 0x7bc], 4
mov dword [eax + ecx + 0x18], 0x2710
jne 0x42f07e
mov edx, dword [edx]
mov eax, dword [ebp - 0x79c]
cmp edx, esi
ja 0x42efff
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [eax + ecx + 0x38], 0
je 0x42f07e
mov eax, dword [ebp - 0x79c]
cmp edx, esi
ja 0x42f022
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + ecx + 0x38]
mov ecx, dword [ebp - 0x7a8]
movzx eax, word [eax + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x4aa468]
cvttsd2si esi, xmm0
cmp edx, ecx
ja 0x42f060
mov edx, dword [ebp - 0x7a0]
lea eax, [ecx + 1]
mov dword [edx + 0x9e4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x18], esi
mov esi, dword [ebp - 0x7a8]
jmp 0x42f17b
cmp byte [ebp - 0x723], 0
mov edx, dword [ebp - 0x71c]
je 0x42f109
test edx, edx
je 0x42f0c5
xor eax, eax
lea ecx, [edx + 2]
nop word [eax + eax]
cmp eax, 0x29
jg 0x42f0c5
test ecx, ecx
je 0x42f0c5
cmp byte [ecx], 0xc2
je 0x42f0b4
inc eax
add ecx, 0xc
jmp 0x42f0a0
mov eax, dword [ecx + 5]
mov dword [ebp - 0x818], eax
movzx edx, al
jmp 0x42f159
cmp byte [ebp - 0x723], 0
je 0x42f109
test edx, edx
je 0x42f109
xor ecx, ecx
lea eax, [edx + 2]
cmp ecx, 0x29
jg 0x42f109
test eax, eax
je 0x42f109
cmp byte [eax], 0xbe
je 0x42f0eb
inc ecx
add eax, 0xc
jmp 0x42f0d7
mov edx, dword [ebp - 0x79c]
mov cl, byte [eax + 3]
cmp dword [edx], esi
ja 0x42f0fd
lea eax, [esi + 1]
mov dword [edx], eax
movzx eax, cl
mov edx, 0x64
sub edx, eax
jmp 0x42f168
mov eax, dword [ebp - 0x7f4]
test eax, eax
je 0x42f11c
push eax
call fcn.00469dd3
add esp, 4
push ecx
lea eax, [ebp - 0x740]
mov dword [ebp - 0x73c], 0
push eax
push 0x34
lea ecx, [ebp - 0x738]
mov dword [ebp - 0x740], 0
call fcn.00422060
test eax, eax
mov eax, dword [ebp - 0x740]
mov dword [ebp - 0x7f4], eax
je 0x42f17b
movsx edx, word [eax + 0x1a]
mov ecx, dword [ebp - 0x79c]
cmp dword [ecx], esi
ja 0x42f168
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x18], edx
mov eax, dword [ebp - 0x79c]
mov edx, dword [eax]
cmp edx, esi
ja 0x42f18c
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [eax + ecx + 0x18], 0x2710
je 0x42f391
cmp edx, esi
ja 0x42f1b6
mov ecx, dword [ebp - 0x7a0]
lea eax, [esi + 1]
mov dword [ecx + 0x9e4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
push dword [eax + ecx + 0x18]
lea ecx, [ebp - 0x458]
call fcn.004060d0
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x7a4], 0x4a10ac
mov dword [ebp - 0x7c4], edx
test edx, edx
jne 0x42f211
push 2
call fcn.0046a3df
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7c4], edx
mov dword [ebp - 0x458], edx
mov dword [ebp - 0x454], eax
mov word [edx], ax
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x450], 1
mov dword [ebp - 0x7b4], edx
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42f24e
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42f248
cmp word [ecx], ax
je 0x42f248
nop
inc eax
cmp word [ecx + eax*2], 0
jne 0x42f240
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4a10b4], 0
jne 0x42f250
add ecx, eax
test edx, edx
je 0x42f27a
xor eax, eax
cmp word [edx], ax
je 0x42f278
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x42f270
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4a10ac], 0
jne 0x42f280
add ecx, eax
mov dword [ebp - 0x444], ecx
lea eax, [ecx + 1]
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x434]
add esp, 4
mov dword [ebp - 0x438], eax
mov ecx, eax
test edx, edx
je 0x42f2e4
movzx eax, word [edx]
test ax, ax
je 0x42f2e4
nop dword [eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42f2d0
mov edx, 0x4a10b4
mov esi, 0x20
sub edx, ecx
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42f2f0
mov eax, dword [ebp - 0x7c4]
test eax, eax
je 0x42f334
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42f334
mov edx, dword [ebp - 0x7b4]
nop dword [eax + eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42f320
mov edx, dword [ebp - 0x7a4]
mov eax, 0xb0
nop
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
movzx eax, word [edx]
test ax, ax
jne 0x42f340
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42f36c
push eax
call fcn.00469dd3
add esp, 4
mov eax, dword [ebp - 0x438]
mov esi, dword [ebp - 0x7a8]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x430], eax
mov byte [ebp - 0x42c], 1
mov eax, dword [ebp - 0x79c]
mov edx, dword [eax]
cmp edx, esi
ja 0x42f3a2
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [eax + ecx + 0xc], 0
jne 0x42f5d1
mov eax, dword [ebp - 0x79c]
cmp edx, esi
ja 0x42f3c5
lea edx, [esi + 1]
mov dword [eax], edx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [eax + ecx + 0x1c], 0x3e8
jbe 0x42f5d1
cmp edx, esi
ja 0x42f3ef
mov ecx, dword [ebp - 0x7a0]
lea eax, [esi + 1]
mov dword [ecx + 0x9e4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
push dword [eax + ecx + 0x1c]
lea ecx, [ebp - 0x458]
call fcn.004060d0
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x7c4], edx
test edx, edx
jne 0x42f440
push 2
call fcn.0046a3df
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7c4], edx
mov dword [ebp - 0x458], edx
mov dword [ebp - 0x454], eax
mov word [edx], ax
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x450], 1
mov dword [ebp - 0x438], str._rpm
mov dword [ebp - 0x444], edx
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42f485
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42f47f
cmp word [ecx], ax
je 0x42f47f
inc eax
cmp word [ecx + eax*2], 0
jne 0x42f477
mov dword [ebp - 0x430], eax
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp word [ecx*2 + 0x4a10b4], 0
jne 0x42f490
add ecx, eax
test edx, edx
je 0x42f4ba
xor eax, eax
cmp word [edx], ax
je 0x42f4b8
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x42f4b0
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + str._rpm], 0
jne 0x42f4c0
add ecx, eax
mov dword [ebp - 0x7a4], ecx
lea eax, [ecx + 1]
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x434]
add esp, 4
mov dword [ebp - 0x7b4], eax
mov ecx, eax
test edx, edx
je 0x42f524
movzx eax, word [edx]
test ax, ax
je 0x42f524
nop dword [eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42f510
mov edx, 0x4a10b4
mov esi, 0x20
sub edx, ecx
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42f530
mov eax, dword [ebp - 0x7c4]
test eax, eax
je 0x42f574
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42f574
mov edx, dword [ebp - 0x444]
nop dword [eax + eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42f560
mov edx, dword [ebp - 0x438]
mov eax, 0x20
nop
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
movzx eax, word [edx]
test ax, ax
jne 0x42f580
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42f5ac
push eax
call fcn.00469dd3
add esp, 4
mov eax, dword [ebp - 0x7b4]
mov esi, dword [ebp - 0x7a8]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x7a4]
mov dword [ebp - 0x430], eax
mov byte [ebp - 0x42c], 1
lea ecx, [ebp - 0x738]
call fcn.00422e20
mov ecx, dword [ebp - 0x79c]
mov dl, al
cmp dword [ecx], esi
ja 0x42f5ed
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [ebp - 0x7bc], 4
mov eax, dword [eax + 8]
mov byte [eax + ecx + 2], dl
je 0x42f61d
cmp dword [ebp - 0x7ac], 2
je 0x42f61d
mov edx, dword [ebp - 0x434]
jmp 0x42f801
mov edx, dword [ebp - 0x79c]
cmp dword [edx], esi
ja 0x42f62c
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [edx + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
movzx eax, byte [eax + ecx + 2]
lea ecx, [ebp - 0x458]
push eax
call fcn.004060d0
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x7c4], edx
test edx, edx
jne 0x42f679
push 2
call fcn.0046a3df
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7c4], edx
mov dword [ebp - 0x458], edx
mov dword [ebp - 0x454], eax
mov word [edx], ax
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x450], 1
mov dword [ebp - 0x438], str.__left
mov dword [ebp - 0x444], edx
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42f6be
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42f6b8
cmp word [ecx], ax
je 0x42f6b8
inc eax
cmp word [ecx + eax*2], 0
jne 0x42f6b0
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4a10b4], 0
jne 0x42f6c0
add ecx, eax
test edx, edx
je 0x42f6ea
xor eax, eax
cmp word [edx], ax
je 0x42f6e8
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x42f6e0
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + str.__left], 0
jne 0x42f6f0
add ecx, eax
mov dword [ebp - 0x7bc], ecx
lea eax, [ecx + 1]
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, dword [ebp - 0x434]
add esp, 4
mov dword [ebp - 0x7b4], eax
mov ecx, eax
test edx, edx
je 0x42f754
movzx eax, word [edx]
test ax, ax
je 0x42f754
nop dword [eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42f740
mov edx, 0x4a10b4
mov esi, 0x20
sub edx, ecx
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42f760
mov eax, dword [ebp - 0x7c4]
test eax, eax
je 0x42f7a4
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42f7a4
mov edx, dword [ebp - 0x444]
nop dword [eax + eax]
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
test ax, ax
jne 0x42f790
mov edx, dword [ebp - 0x438]
mov eax, 0x25
nop
movzx eax, ax
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
movzx eax, word [edx]
test ax, ax
jne 0x42f7b0
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42f7dc
push eax
call fcn.00469dd3
add esp, 4
mov edx, dword [ebp - 0x7b4]
mov eax, dword [ebp - 0x7bc]
mov esi, dword [ebp - 0x7a8]
mov dword [ebp - 0x434], edx
mov dword [ebp - 0x430], eax
mov byte [ebp - 0x42c], 1
test edx, edx
jne 0x42f826
push 2
call fcn.0046a3df
add esp, 4
mov dword [ebp - 0x434], eax
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x430], ecx
mov ecx, dword [ebp - 0x7a0]
mov byte [ebp - 0x42c], 1
mov eax, dword [ecx + 0x94]
cmp eax, 0xffffffff
jne 0x42f844
mov eax, dword [ecx + 0x190]
mov ecx, dword [ecx + 0x18c]
test ecx, ecx
je 0x42f8a3
cmp eax, 1
jl 0x42f8a3
mov edi, dword [ebp - 0x7a0]
cmp eax, dword [edi + 0x190]
mov edi, dword [ebp - 0x7b8]
jg 0x42f8a3
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x42f8a3
cmp dword [ecx + eax*8], 0xf
jne 0x42f8a3
mov dword [ebp - 0x784], edx
lea edx, [ebp - 0x798]
push edx
push dword [ebp - 0x7b0]
mov dword [ebp - 0x790], 1
push 0x1074
push dword [ecx + eax*8 + 4]
call dword [ebp - 0x7c8]
lea ecx, [ebp - 0x738]
call fcn.00421490
mov edx, dword [ebp - 0x79c]
mov cl, al
cmp cl, 2
jae 0x42f8dc
cmp dword [edx], esi
ja 0x42f8c4
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [ebp - 0x79c]
movzx edx, cl
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x14], edx
jmp 0x42f8f6
cmp dword [edx], esi
ja 0x42f8e5
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [edx + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
mov dword [eax + ecx + 0x14], 0xffffffff
cmp byte [ebp - 0x723], 0
je 0x42f929
mov eax, dword [ebp - 0x71c]
test eax, eax
je 0x42f929
xor ecx, ecx
add eax, 2
nop
cmp ecx, 0x29
jg 0x42f929
test eax, eax
je 0x42f929
cmp byte [eax], 9
je 0x42f924
inc ecx
add eax, 0xc
jmp 0x42f910
mov edx, dword [eax + 5]
jmp 0x42f92c
or edx, 0xffffffff
mov ecx, dword [ebp - 0x79c]
cmp dword [ecx], esi
ja 0x42f93b
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x28], edx
mov ecx, dword [ebp - 0x79c]
cmp dword [ecx], esi
ja 0x42f95d
lea eax, [esi + 1]
mov dword [ecx], eax
lea eax, [esi + esi*2]
shl eax, 5
add eax, 0x24
add eax, dword [ecx + 8]
lea ecx, [ebp - 0x738]
push eax
call fcn.00421d50
mov ecx, dword [ebp - 0x79c]
mov edx, eax
cmp dword [ecx], esi
ja 0x42f986
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 0x20], edx
mov edx, dword [ebp - 0x79c]
cmp dword [edx], esi
ja 0x42f9a8
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [ebp - 0x7c0]
lea ecx, [esi + esi*2]
add eax, 0x2c
shl ecx, 5
push eax
mov eax, dword [edx + 8]
add eax, 0x54
add ecx, eax
call fcn.004055a0
mov ecx, dword [ebp - 0x79c]
mov dword [ebp - 0x46c], 0
cmp dword [ecx], esi
ja 0x42f9de
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ecx + 8]
lea esi, [esi + esi*2]
shl esi, 5
mov dword [ebp - 0x444], eax
lea ecx, [eax + 0x5c]
add ecx, esi
cmp dword [eax + esi + 0x54], 0
mov dword [ebp - 0x438], ecx
jne 0x42fa28
push 2
call fcn.0046a3df
mov ecx, dword [ebp - 0x444]
add esp, 4
xor edx, edx
mov dword [ecx + esi + 0x54], eax
mov word [eax], dx
mov eax, dword [ecx + esi + 0x54]
mov dword [ecx + esi + 0x58], edx
mov ecx, dword [ebp - 0x438]
jmp 0x42fa2c
mov eax, dword [eax + esi + 0x54]
mov dl, 1
test eax, eax
mov byte [ecx], dl
mov ecx, 0x49eb08
cmovne ecx, eax
xor eax, eax
mov dword [ebp - 0x46c], eax
test edi, edi
je 0x42fa7b
mov dword [ebp - 0x438], eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x46c]
mov dword [ebp - 0x444], 4
push eax
lea eax, [ebp - 0x438]
push eax
push 0
push ecx
push edi
call dword [ebp - 0x7e4]
mov eax, dword [ebp - 0x46c]
mov ecx, dword [ebp - 0x79c]
test eax, eax
mov esi, dword [ebp - 0x7a8]
setne dl
cmp dword [ecx], esi
ja 0x42fa95
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov byte [eax + ecx + 3], dl
lea eax, [ebp - 0x738]
mov ecx, dword [ebp - 0x7a0]
push eax
push dword [ebp - 0x7b0]
push esi
call fcn.0043ecd0
push esi
lea ecx, [ebp - 0x434]
call fcn.004060d0
mov edx, dword [ebp - 0x434]
test edx, edx
jne 0x42faf8
push 2
call fcn.0046a3df
add esp, 4
mov dword [ebp - 0x434], eax
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0x434]
mov dword [ebp - 0x430], ecx
mov ecx, dword [ebp - 0x7a0]
mov byte [ebp - 0x42c], 1
mov eax, dword [ecx + 0x94]
cmp eax, 0xffffffff
jne 0x42fb16
mov eax, dword [ecx + 0x190]
mov ecx, dword [ecx + 0x18c]
test ecx, ecx
je 0x42fb75
cmp eax, 1
jl 0x42fb75
mov edi, dword [ebp - 0x7a0]
cmp eax, dword [edi + 0x190]
mov edi, dword [ebp - 0x7b8]
jg 0x42fb75
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x42fb75
cmp dword [ecx + eax*8], 0xf
jne 0x42fb75
mov dword [ebp - 0x784], edx
lea edx, [ebp - 0x798]
push edx
push dword [ebp - 0x7b0]
mov dword [ebp - 0x790], 3
push 0x1074
push dword [ecx + eax*8 + 4]
call dword [ebp - 0x7c8]
mov eax, dword [ebp - 0x7b0]
mov dword [ebp - 0x758], eax
lea eax, [ebp - 0x75c]
push eax
mov eax, dword [ebp - 0x7a0]
push 0
push 0x10a4
push dword [eax + 0xd0]
call dword [ebp - 0x7c8]
push ecx
mov ecx, dword [ebp - 0x7a0]
call fcn.00430480
mov ecx, dword [ebp - 0x79c]
mov edx, eax
cmp dword [ecx], esi
ja 0x42fbbe
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 8]
mov dword [eax + ecx + 8], edx
lea eax, [ebp - 0x738]
mov ecx, dword [ebp - 0x7a0]
push eax
push dword [ebp - 0x7b0]
call fcn.00430b20
mov ecx, dword [ebp - 0x7a0]
inc esi
mov dword [ebp - 0x7a8], esi
cmp esi, dword [ebp - 0x7cc]
jb 0x42e270
mov esi, dword [ebp - 0x7a0]
mov ecx, dword [esi + 0x94]
cmp ecx, 0xffffffff
jne 0x42fc1b
mov ecx, dword [esi + 0x190]
jmp 0x42fc3c
mov edx, dword [esi + 0x18c]
test edx, edx
je 0x42fc5a
cmp ecx, 1
jl 0x42fc5a
cmp ecx, dword [esi + 0x190]
jg 0x42fc5a
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x42fc5a
mov eax, dword [esi + 0x18c]
lea ecx, [ecx + ecx*8]
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je 0x42fc5a
push 0
push 1
push 0xb
push eax
call dword [ebp - 0x7c8]
push 0x80
push dword [esi + 0x94]
lea ecx, [esi + 0x150]
call fcn.00417cb0
push 1
mov ecx, esi
call fcn.0043f210
test eax, eax
jne 0x42fc70
push eax
push eax
call dword [ebp - 0x7e0]
mov ecx, dword [ebp - 0x7d8]
cmp ecx, 0xffffffff
jne 0x42fd08
mov ecx, dword [ebp - 0x7d4]
test ecx, ecx
jne 0x42fca9
mov dword [ebp - 0x460], ecx
jmp 0x42fd06
xor eax, eax
cmp word [ecx], ax
je 0x42fcb8
inc eax
cmp word [ecx + eax*2], 0
jne 0x42fcb0
mov dword [ebp - 0x460], eax
test eax, eax
je 0x42fd06
test ecx, ecx
jne 0x42fce9
push 2
call fcn.0046a3df
mov ecx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7d4], ecx
mov dword [ebp - 0x464], ecx
mov dword [ebp - 0x460], eax
mov word [ecx], ax
sub esp, 0xc
mov byte [ebp - 0x45c], 1
mov edx, ecx
mov ecx, dword [esi + 0xd0]
call fcn.0040d100
mov ecx, eax
test ecx, ecx
jns 0x42fd08
xor ecx, ecx
xor eax, eax
cmp ecx, dword [ebp - 0x7dc]
cmovl eax, ecx
mov dword [ebp - 0x7ac], eax
mov eax, dword [esi + 0x94]
cmp eax, 0xffffffff
jne 0x42fd2a
mov eax, dword [esi + 0x190]
mov ecx, dword [esi + 0x18c]
test ecx, ecx
je 0x42fe07
cmp eax, 1
jl 0x42fe07
cmp eax, dword [esi + 0x190]
jg 0x42fe07
lea eax, [eax + eax*8]
shl eax, 3
mov dword [ebp - 0x7e4], eax
cmp dword [eax + ecx + 0xc], 0
je 0x42fe07
cmp dword [eax + ecx], 0xf
jne 0x42fe07
push 0x2000
call fcn.0046a3df
mov ecx, dword [ebp - 0x7e4]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x790], 3
add esp, 4
mov dword [ebp - 0x780], 0x1000
mov dword [ebp - 0x784], esi
mov word [esi], ax
mov word [esi + 0x1ffe], ax
lea eax, [ebp - 0x798]
push eax
mov eax, dword [ebp - 0x7a0]
push dword [ebp - 0x7ac]
push 0x1073
mov eax, dword [eax + 0x18c]
push dword [eax + ecx + 4]
call dword [ebp - 0x7c8]
test esi, esi
je 0x42fe07
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42fde8
push eax
call fcn.00469dd3
add esp, 4
mov dword [ebp - 0x434], esi
lea eax, [ebp - 0x434]
mov dword [ebp - 0x430], 0
mov byte [ebp - 0x42c], 1
jmp 0x42fe1a
push 0
lea ecx, [ebp - 0x434]
call fcn.00405a60
mov esi, dword [ebp - 0x434]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x42fed0
mov edx, dword [eax]
test edx, edx
je 0x42fe38
cmp word [edx], cx
je 0x42fe38
inc ecx
cmp word [edx + ecx*2], 0
jne 0x42fe30
mov dword [eax + 4], ecx
mov esi, dword [ebp - 0x434]
test ecx, ecx
jne 0x42fed0
test esi, esi
je 0x42fe56
push esi
call fcn.00469dd3
add esp, 4
mov byte [ebp - 0x42c], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x49edd4], 0
jne 0x42fe60
mov dword [ebp - 0x430], eax
mov ecx, 2
inc eax
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0046a3df
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x430]
xor ecx, ecx
mov dword [ebp - 0x434], edx
test eax, eax
jle 0x42febd
nop
mov ax, word [ecx*2 + 0x49edd4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x430]
mov edx, dword [ebp - 0x434]
cmp ecx, eax
jl 0x42fea0
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x434]
mov byte [ebp - 0x42c], 1
test esi, esi
je 0x42ff0e
cmp dword [ebp - 0x430], 0
jne 0x42fef4
xor eax, eax
cmp word [esi], ax
je 0x42feec
inc eax
cmp word [esi + eax*2], 0
jne 0x42fee4
mov dword [ebp - 0x430], eax
test eax, eax
jle 0x42ff0e
push esi
mov byte [ebp - 0x42c], 1
call fcn.0046e166
add esp, 4
mov dword [ebp - 0x7d8], eax
jmp 0x42ff1f
mov byte [ebp - 0x42c], 0
mov dword [ebp - 0x7d8], 0
mov esi, dword [ebp - 0x7ac]
mov ecx, dword [ebp - 0x7a0]
push esi
call fcn.00430380
mov ecx, dword [ebp - 0x7a0]
push 1
push dword [ebp - 0x7d8]
push eax
call fcn.00430170
mov edx, dword [ebp - 0x7a0]
mov eax, dword [edx + 0x94]
cmp eax, 0xffffffff
jne 0x42ff5c
mov eax, dword [edx + 0x190]
mov ecx, dword [edx + 0x18c]
test ecx, ecx
je 0x430032
cmp eax, 1
jl 0x430032
cmp eax, dword [edx + 0x190]
jg 0x430032
lea eax, [eax + eax*8]
shl eax, 3
mov dword [ebp - 0x7e4], eax
cmp dword [eax + ecx + 0xc], 0
je 0x430032
cmp dword [eax + ecx], 0xf
jne 0x430032
xorps xmm0, xmm0
mov dword [ebp - 0x798], 8
mov dword [ebp - 0x790], 0
mov edi, eax
mov dword [ebp - 0x788], 2
movups xmmword [ebp - 0x784], xmm0
mov dword [ebp - 0x774], 0
mov dword [ebp - 0x770], 0
movups xmmword [ebp - 0x76c], xmm0
nop word [eax + eax]
lea eax, [ebp - 0x798]
mov dword [ebp - 0x78c], 2
push eax
mov eax, dword [edx + 0x18c]
push esi
push 0x102b
mov dword [ebp - 0x794], esi
push dword [eax + edi + 4]
call dword [ebp - 0x7c8]
mov edx, dword [ebp - 0x7a0]
inc esi
cmp esi, dword [ebp - 0x7ac]
jle 0x42fff0
mov edi, dword [ebp - 0x7b8]
push 2
push dword [edx + 0x4c]
lea ecx, [edx + 0x150]
call fcn.00417cb0
mov eax, dword [ebp - 0x7d0]
mov esi, dword [ebp - 0x7a0]
cmp eax, 0xffffffff
jne 0x430059
mov eax, dword [esi + 0x190]
mov edx, dword [esi + 0x18c]
test edx, edx
je 0x430090
cmp eax, 1
jl 0x430090
cmp eax, dword [esi + 0x190]
jg 0x430090
lea ecx, [eax + eax*8]
cmp dword [edx + ecx*8 + 0xc], 0
je 0x430090
mov dword [edx + ecx*8 + 0x20], 0
mov eax, dword [esi + 0x18c]
mov dword [eax + ecx*8 + 0x10], 0
push dword [ebp - 0x7d0]
lea ecx, [esi + 0x150]
call fcn.00416080
test edi, edi
je 0x4300b1
cmp edi, 0xffffffff
je 0x4300b1
push edi
call dword [ebp - 0x7e8]
mov eax, dword [ebp - 0x810]
mov byte [ebp - 4], 4
test eax, eax
je 0x4300eb
push 0x405700
lea esi, [eax - 4]
mov byte [ebp - 4], 8
push dword [esi]
push 0xc
push eax
call fcn.0046a06b
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.00469dd8
add esp, 8
mov eax, dword [ebp - 0x7c4]
test eax, eax
je 0x4300fe
push eax
call fcn.00469dd3
add esp, 4
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x430111
push eax
call fcn.00469dd3
add esp, 4
mov eax, dword [ebp - 0x7f4]
test eax, eax
je 0x430124
push eax
call fcn.00469dd3
add esp, 4
lea ecx, [ebp - 0x738]
call fcn.00423890
mov eax, dword [ebp - 0x7d4]
test eax, eax
je 0x430142
push eax
call fcn.00469dd3
add esp, 4
mov eax, dword [ebp - 0x7dc]
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.00469dc5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4