Function at 0x42ce20
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 0x47f167
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x824
mov eax, dword [0x4b5200]
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 - 0x79c], edi
mov edx, dword [edi + 0x20]
lea esi, [edi + 0x148]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x7f0], eax
test edx, edx
jne 0x42ce93
mov eax, dword [edi + 0x378]
mov dword [edi + 0x37c], eax
mov dword [edi + 0x33c], edx
jmp 0x42cedf
mov eax, dword [edi + 0x184]
test eax, eax
je 0x42cedf
cmp edx, 1
jl 0x42cedf
cmp edx, dword [edi + 0x188]
jg 0x42cedf
lea ecx, [edx + edx*8]
cmp dword [eax + ecx*8 + 0xc], 0
je 0x42cedf
mov edi, dword [eax + ecx*8]
cmp edi, 0x1a
je 0x42cec1
cmp edi, 0x28
jne 0x42ced9
mov edi, dword [ebp - 0x79c]
mov eax, dword [eax + ecx*8 + 4]
mov dword [edi + 0x37c], eax
mov dword [edi + 0x33c], edx
jmp 0x42cedf
mov edi, dword [ebp - 0x79c]
push 1
push dword [edi + 0x4c]
mov ecx, esi
call fcn.00417af0
push 8
push dword [edi + 0x30]
mov ecx, esi
call fcn.00417af0
push 1
push 0xffffffffffffffff
push dword [edi + 0x98]
mov ecx, edi
call fcn.0042f850
mov ecx, dword [edi + 0x9c4]
xor esi, esi
test ecx, ecx
je 0x42cff8
mov eax, dword [ebp - 0x79c]
xor edi, edi
lea edx, [esi + 1]
mov dword [ebp - 0x7ac], edx
cmp ecx, esi
ja 0x42cf3b
mov ecx, edx
mov dword [eax + 0x9c4], edx
mov dword [ebp - 0x7ac], ecx
mov eax, dword [eax + 0x9cc]
cmp dword [edi + eax + 8], 0
jle 0x42cf6d
cmp ecx, esi
mov ecx, dword [ebp - 0x79c]
ja 0x42cf58
mov dword [ecx + 0x9c4], edx
mov eax, dword [ecx + 0x9cc]
lea ecx, [ecx + 0x148]
push dword [eax + edi + 8]
call fcn.00415ed0
mov ecx, dword [ebp - 0x79c]
cmp dword [ecx + 0x9c4], esi
ja 0x42cf87
mov eax, dword [ebp - 0x7ac]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ecx + 0x9cc]
mov dword [edi + eax + 8], 0
cmp dword [ecx + 0x9c4], esi
ja 0x42cfa6
lea eax, [esi + 1]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ecx + 0x9cc]
mov dword [ebp - 0x7e8], eax
mov ecx, dword [eax + edi + 0x48]
test ecx, ecx
je 0x42cfc9
push ecx
call fcn.0046b303
mov eax, dword [ebp - 0x7e8]
add esp, 4
mov dword [eax + edi + 0x48], 0
inc esi
mov dword [eax + edi + 0x4c], 0
mov byte [eax + edi + 0x50], 1
add edi, 0x60
mov eax, dword [ebp - 0x79c]
mov ecx, dword [eax + 0x9c4]
cmp esi, ecx
jb 0x42cf20
mov edi, eax
sub esp, 8
lea ecx, [edi + 0x148]
push 0x16
push 0x16
push 0x35
push 0x142
push 0
call fcn.00415a80
mov ecx, eax
mov dword [ebp - 0x808], ecx
test ecx, ecx
jne 0x42d02d
mov eax, dword [edi + 0x378]
mov dword [ebp - 0x7c8], eax
jmp 0x42d070
cmp ecx, 0xffffffff
jne 0x42d038
mov eax, dword [edi + 0x188]
mov ecx, dword [edi + 0x184]
test ecx, ecx
je 0x42d065
cmp eax, 1
jl 0x42d065
cmp eax, dword [edi + 0x188]
jg 0x42d065
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x42d065
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x7c8], eax
jmp 0x42d070
mov dword [ebp - 0x7c8], 0
nop
push 1
mov ecx, edi
call fcn.004409d0
test eax, eax
jne 0x42d070
push eax
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SleepEx]
mov dword [ebp - 0x7d8], eax
call eax
mov ecx, dword [edi + 0xa8]
mov eax, ecx
shr eax, 0x10
movzx edi, al
mov eax, ecx
or eax, 0xffffff00
and ecx, 0xff00
shl eax, 0x10
or edi, eax
mov eax, dword [ebp - 0x79c]
or edi, ecx
push 0x14
mov ecx, dword [eax + 0xac]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
or eax, 0xffffff00
and ecx, 0xff00
shl eax, 0x10
or esi, eax
or esi, ecx
call fcn.0046b90c
mov ecx, dword [ebp - 0x7c8]
add esp, 4
mov dword [eax], ecx
push 0
push 0
push eax
push 0x406f40
push 0
push 0
mov dword [eax + 4], 0x16
mov dword [eax + 8], esi
mov dword [eax + 0xc], 0x50
mov dword [eax + 0x10], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x7f4], ecx
test eax, eax
je 0x42d128
cmp eax, 0xffffffff
je 0x42d128
push eax
call ecx
mov edi, dword [ebp - 0x79c]
xorps xmm0, xmm0
movq qword [ebp - 0x464], xmm0
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x460], 0
mov eax, dword [edi + 0x378]
mov dword [edi + 0x37c], eax
xor eax, eax
mov dword [edi + 0x33c], 0
mov dword [ebp - 0x7d0], eax
mov dword [ebp - 0x464], eax
mov byte [ebp - 0x45c], 1
cmp dword [ebp - 0x7f0], 0xffffffff
mov dword [ebp - 4], eax
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x7d4], esi
jne 0x42d244
mov eax, dword [edi + 0x90]
cmp eax, 0xffffffff
jne 0x42d1a5
mov eax, dword [edi + 0x188]
mov ecx, dword [edi + 0x184]
test ecx, ecx
je 0x42d1dd
cmp eax, 1
jl 0x42d1dd
cmp eax, dword [edi + 0x188]
jg 0x42d1dd
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x42d1dd
cmp dword [ecx + eax*8], 0xf
jne 0x42d1dd
push 2
push 0xffffffffffffffff
push 0x100c
push dword [ecx + eax*8 + 4]
call esi
jmp 0x42d1e0
or eax, 0xffffffff
push 0
push eax
push dword [edi + 0x90]
lea ecx, [edi + 0x148]
call fcn.00419bd0
mov dword [ebp - 0x7d0], eax
mov dword [ebp - 0x460], 0
test eax, eax
jne 0x42d237
mov byte [ebp - 0x45c], al
xor ecx, ecx
mov eax, 1
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
add esp, 4
mov dword [ebp - 0x7d0], eax
xor ecx, ecx
mov word [eax], cx
mov byte [ebp - 0x45c], 1
mov dword [ebp - 0x464], eax
mov ecx, dword [edi + 0x90]
cmp ecx, 0xffffffff
jne 0x42d257
mov ecx, dword [edi + 0x188]
jmp 0x42d278
mov edx, dword [edi + 0x184]
test edx, edx
je 0x42d28d
cmp ecx, 1
jl 0x42d28d
cmp ecx, dword [edi + 0x188]
jg 0x42d28d
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x42d28d
mov eax, dword [edi + 0x184]
lea ecx, [ecx + ecx*8]
push 0
push 0
push 0xb
push dword [eax + ecx*8 + 4]
call esi
push 0
push 0
push 0x1009
push dword [edi + 0xc8]
call esi
push 0x274
lea eax, [ebp - 0x738]
push 0
push eax
call fcn.0046ce00
add esp, 0xc
lea ecx, [ebp - 0x738]
call fcn.0041d8e0
xorps xmm0, xmm0
xor eax, eax
movlpd qword [ebp - 0x740], xmm0
mov dword [ebp - 0x7c8], eax
mov dword [ebp - 0x740], 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 - 0x7c0], eax
mov dword [ebp - 0x458], eax
mov byte [ebp - 0x450], 1
mov byte [ebp - 4], 4
cmp dword [edi + 0x3d4], eax
jne 0x42d357
push eax
push 0x30
push 0x30
push ecx
push 0x68
push dword [edi + 0x3b0]
call fcn.0041afb0
mov ecx, dword [edi + 0x3d4]
mov esi, eax
test ecx, ecx
je 0x42d351
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3d4], esi
cmp dword [edi + 0x3d8], 0
jne 0x42d38c
push 0
push 0x30
push 0x30
push ecx
push 0x67
push dword [edi + 0x3b0]
call fcn.0041afb0
mov ecx, dword [edi + 0x3d8]
mov esi, eax
test ecx, ecx
je 0x42d386
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3d8], esi
cmp dword [edi + 0x3dc], 0
jne 0x42d3c1
push 0
push 0x30
push 0x30
push ecx
push 0x69
push dword [edi + 0x3b0]
call fcn.0041afb0
mov ecx, dword [edi + 0x3dc]
mov esi, eax
test ecx, ecx
je 0x42d3bb
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3dc], esi
cmp dword [edi + 0x3e0], 0
jne 0x42d3f6
push 0
push 0x30
push 0x30
push ecx
push 0x72
push dword [edi + 0x3b0]
call fcn.0041afb0
mov ecx, dword [edi + 0x3e0]
mov esi, eax
test ecx, ecx
je 0x42d3f0
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x3e0], esi
movsd xmm0, qword [0x4ab330]
lea eax, [ebp - 0x428]
comisd xmm0, xmmword [edi + 0xb8]
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 0x42d478
mov dword [ebp - 0x75c], 0x10
call fcn.004054e0
jmp 0x42d487
call fcn.004054e0
mov dword [ebp - 0x468], 0
mov esi, eax
xor edx, edx
mov eax, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x7e8], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x7cc], edx
mov dword [ebp - 0x468], edx
mov dword [ebp - 0x804], eax
test esi, esi
je 0x42d503
lea ecx, [ebp - 0x438]
mov dword [ebp - 0x44c], edx
push ecx
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x438], 4
push ecx
lea ecx, [ebp - 0x44c]
push ecx
push edx
push 0x4a0484
push esi
call eax
mov edx, dword [ebp - 0x468]
mov dword [ebp - 0x7cc], edx
cmp esi, 0xffffffff
je 0x42d503
push esi
call dword [ebp - 0x7e8]
mov edx, dword [ebp - 0x7cc]
mov dword [ebp - 0x7cc], edx
test edx, edx
je 0x42d50f
cmp edx, 0x100
jbe 0x42d51a
mov edx, 0x100
mov dword [ebp - 0x7cc], edx
mov ecx, dword [edi + 0x9c8]
lea eax, [edx + edx]
cmp ecx, edx
mov dword [ebp - 0x7dc], 0
cmovae eax, ecx
lea ecx, [edi + 0x9c4]
push eax
push edx
call fcn.00451650
xorps xmm0, xmm0
mov dword [ebp - 0x444], 0x1a
push 0x13c
movlpd qword [ebp - 0x748], xmm0
call fcn.0046b90c
add esp, 4
mov dword [ebp - 0x43c], eax
push 0x401730
push 0x401500
push 0x1a
lea esi, [eax + 4]
mov byte [ebp - 4], 5
push 0xc
push esi
mov dword [eax], 0x1a
mov dword [ebp - 0x80c], esi
call fcn.0046b941
mov dword [ebp - 0x748], esi
mov dword [ebp - 0x744], 0x1a
push ecx
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.00420d30
mov dword [ebp - 0x7a0], eax
test eax, eax
jle 0x42d94e
mov dword [ebp - 0x7a4], esi
nop
cmp dword [esi], 0
jne 0x42d5d9
push 2
call fcn.0046b90c
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
push dword [esi]
mov byte [esi + 8], 1
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x42d5f3
cmp eax, 2
jne 0x42d938
cmp dword [esi], 0
jne 0x42d60c
push 2
call fcn.0046b90c
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
mov ecx, dword [esi]
mov byte [esi + 8], 1
call fcn.00420330
mov edi, eax
mov dword [ebp - 0x7ac], edi
cmp edi, dword [ebp - 0x7cc]
ja 0x42d938
mov ecx, dword [ebp - 0x79c]
cmp dword [ecx + 0x9c4], edi
ja 0x42d642
lea eax, [edi + 1]
mov dword [ecx + 0x9c4], eax
mov ecx, dword [ecx + 0x9cc]
lea edx, [edi + edi*2]
shl edx, 5
mov dword [ebp - 0x438], ecx
mov eax, dword [ecx + edx + 0x4c]
test eax, eax
jne 0x42d68a
mov ecx, dword [ecx + edx + 0x48]
test ecx, ecx
je 0x42d678
cmp word [ecx], ax
je 0x42d678
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42d670
mov ecx, dword [ebp - 0x438]
mov dword [ecx + edx + 0x4c], eax
test eax, eax
je 0x42d7be
mov ecx, dword [ebp - 0x79c]
cmp dword [ecx + 0x9c4], edi
ja 0x42d6a1
lea eax, [edi + 1]
mov dword [ecx + 0x9c4], eax
mov edx, dword [ecx + 0x9cc]
lea eax, [edi + edi*2]
shl eax, 5
mov dword [ebp - 0x7b4], eax
mov dword [ebp - 0x7c4], edx
mov esi, dword [eax + edx + 0x4c]
mov byte [eax + edx + 0x50], 0
test esi, esi
jne 0x42d6df
mov ecx, dword [eax + edx + 0x48]
test ecx, ecx
je 0x42d6db
cmp word [ecx], si
je 0x42d6db
inc esi
cmp word [ecx + esi*2], 0
jne 0x42d6d3
mov dword [eax + edx + 0x4c], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x49ff9c], 0
jne 0x42d6e1
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov edx, dword [ebp - 0x7b4]
mov ecx, eax
mov eax, dword [ebp - 0x7c4]
add esp, 4
mov dword [ebp - 0x7a8], ecx
mov edx, dword [edx + eax + 0x48]
test edx, edx
je 0x42d751
movzx eax, word [edx]
mov edi, eax
mov dword [ebp - 0x438], edi
test ax, ax
je 0x42d751
sub edx, ecx
movzx edi, ax
nop dword [eax]
mov word [ecx], di
add ecx, 2
movzx eax, word [edx + ecx]
mov edi, eax
test ax, ax
jne 0x42d740
mov edi, 0x49ff9c
mov edx, 0x2c
sub edi, ecx
nop dword [eax]
mov word [ecx], dx
lea ecx, [ecx + 2]
movzx eax, word [edi + ecx]
mov edx, eax
test ax, ax
jne 0x42d760
mov edi, dword [ebp - 0x7ac]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7b4]
mov ecx, dword [ebp - 0x7c4]
mov edx, dword [eax + ecx + 0x48]
test edx, edx
je 0x42d7a5
push edx
call fcn.0046b303
mov eax, dword [ebp - 0x7b4]
add esp, 4
mov ecx, dword [ebp - 0x7c4]
mov edx, dword [ebp - 0x7a8]
mov dword [eax + ecx + 0x4c], esi
mov esi, dword [ebp - 0x7a4]
mov dword [eax + ecx + 0x48], edx
mov byte [eax + ecx + 0x50], 1
mov ecx, dword [ebp - 0x79c]
cmp dword [ecx + 0x9c4], edi
ja 0x42d7d5
lea eax, [edi + 1]
mov dword [ecx + 0x9c4], eax
lea eax, [edi + edi*2]
shl eax, 5
add eax, dword [ecx + 0x9cc]
cmp dword [esi], 0
mov dword [ebp - 0x7b0], eax
jne 0x42d806
push 2
call fcn.0046b90c
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x7b0]
mov dword [esi + 4], ecx
mov edi, dword [esi]
mov byte [esi + 8], 1
mov esi, dword [eax + 0x4c]
mov dword [ebp - 0x7ec], edi
mov byte [eax + 0x50], 0
test esi, esi
jne 0x42d83b
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x42d838
cmp word [ecx], si
je 0x42d838
nop dword [eax]
inc esi
cmp word [ecx + esi*2], 0
jne 0x42d830
mov dword [eax + 0x4c], esi
test edi, edi
je 0x42d850
xor eax, eax
cmp word [edi], ax
je 0x42d84e
inc eax
cmp word [edi + eax*2], 0
jne 0x42d846
add esi, eax
xor ecx, ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov edx, dword [ebp - 0x7b0]
mov ecx, eax
add esp, 4
mov dword [ebp - 0x7ac], ecx
mov eax, dword [edx + 0x48]
mov dword [ebp - 0x438], eax
test eax, eax
je 0x42d8cd
movzx eax, word [eax]
mov edx, eax
mov dword [ebp - 0x44c], edx
mov edx, dword [ebp - 0x7b0]
test ax, ax
je 0x42d8cd
mov edx, dword [ebp - 0x438]
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 0x42d8b0
mov edi, dword [ebp - 0x7ec]
mov edx, dword [ebp - 0x7b0]
test edi, edi
je 0x42d907
movzx eax, word [edi]
mov edx, eax
mov dword [ebp - 0x438], edx
mov edx, dword [ebp - 0x7b0]
test ax, ax
je 0x42d907
sub edi, ecx
movzx edx, ax
nop dword [eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + edi]
mov edx, eax
test ax, ax
jne 0x42d8f0
mov edx, dword [ebp - 0x7b0]
xor eax, eax
mov word [ecx], ax
mov eax, dword [edx + 0x48]
test eax, eax
je 0x42d922
push eax
call fcn.0046b303
mov edx, dword [ebp - 0x7b0]
add esp, 4
mov eax, dword [ebp - 0x7ac]
mov dword [edx + 0x4c], esi
mov esi, dword [ebp - 0x7a4]
mov dword [edx + 0x48], eax
mov byte [edx + 0x50], 1
add esi, 0xc
sub dword [ebp - 0x7a0], 1
mov dword [ebp - 0x7a4], esi
jne 0x42d5c0
push ecx
mov edx, 0x20019
mov ecx, str.HKCUSoftwareClearDiskInfoErrorIgnoredDisks
call fcn.004054e0
mov edi, eax
mov dword [ebp - 0x7b0], edi
mov dword [ebp - 0x47c], edi
xor esi, esi
mov byte [ebp - 4], 7
mov dword [ebp - 0x7a4], esi
cmp dword [ebp - 0x7cc], esi
jbe 0x42f34e
mov eax, dword [ebp - 0x79c]
lea ecx, [eax + 0x148]
add eax, 0x9c4
mov dword [ebp - 0x800], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x44c], ecx
mov ecx, dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov dword [ebp - 0x7fc], ecx
mov ecx, dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
mov dword [ebp - 0x438], ecx
mov ecx, dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
mov dword [ebp - 0x7ec], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x810], ecx
mov ecx, dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov dword [ebp - 0x7a0], eax
mov dword [ebp - 0x7f8], ecx
nop dword [eax]
push 0
inc esi
mov ecx, eax
push esi
call fcn.00451650
mov eax, dword [ebp - 0x7a0]
mov ecx, dword [ebp - 0x7a4]
cmp dword [eax], ecx
ja 0x42da0d
mov dword [eax], esi
mov esi, dword [ebp - 0x7a4]
mov eax, dword [eax + 8]
push esi
lea ecx, [esi + esi*2]
shl ecx, 5
mov byte [ecx + eax], 0
lea ecx, [ebp - 0x738]
call fcn.0041dae0
test al, al
je 0x42f335
lea ecx, [ebp - 0x738]
call fcn.0041e8d0
mov dword [ebp - 0x7c4], eax
test eax, eax
je 0x42f335
mov eax, dword [ebp - 0x508]
cmp eax, 0xffffffff
je 0x42daae
test eax, eax
je 0x42daae
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 0x42daae
mov esi, dword [ebp - 0x478]
mov edx, dword [ebp - 0x474]
jmp 0x42dac5
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 - 0x7a4]
cmp dword [eax + 0x9c4], ecx
ja 0x42daf4
mov edi, dword [ebp - 0x79c]
lea eax, [ecx + 1]
mov dword [edi + 0x9c4], eax
mov edi, dword [ebp - 0x7b0]
mov eax, dword [ebp - 0x79c]
mov eax, dword [eax + 0x9cc]
lea ecx, [ecx + ecx*2]
shl ecx, 5
mov dword [eax + ecx + 0x30], esi
mov esi, dword [ebp - 0x7a4]
mov dword [eax + ecx + 0x34], edx
mov edx, dword [ebp - 0x7a0]
mov eax, dword [edx]
cmp eax, esi
ja 0x42db1f
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 0x42f335
jg 0x42db43
cmp dword [edx + ecx + 0x30], 0x400
jb 0x42f335
cmp eax, esi
ja 0x42db56
mov ecx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
mov byte [ecx + eax], 1
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx], esi
ja 0x42db7b
lea eax, [esi + 1]
mov dword [ecx], eax
mov ecx, dword [ecx + 8]
lea edx, [esi + esi*2]
mov eax, dword [ebp - 0x7c4]
shl edx, 5
mov eax, dword [eax + 4]
mov dword [ecx + edx + 0x10], eax
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx], esi
ja 0x42dba0
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 + 0x9cc]
mov dword [eax + ecx + 0x38], 0
mov eax, dword [ebp - 0x508]
cmp eax, 0xffffffff
je 0x42dc43
test eax, eax
je 0x42dc43
cmp dword [ebp - 0x72c], 1
je 0x42dc43
mov cl, byte [ebp - 0x724]
cmp cl, 0xff
jne 0x42dc45
push 0
sub esp, 8
mov dword [ebp - 0x7e4], 0x4f010100
lea eax, [ebp - 0x7e4]
mov dword [ebp - 0x7e0], 0xb0a0c2
lea ecx, [ebp - 0x738]
push 8
push eax
push 0xda
call fcn.0041e5d0
test al, al
je 0x42dc29
mov cl, byte [ebp - 0x7e4]
shr cl, 2
not cl
and cl, 1
mov byte [ebp - 0x724], cl
jmp 0x42dc45
lea ecx, [ebp - 0x738]
call fcn.0041f220
test eax, eax
je 0x42dc43
mov cl, byte [eax + 0xaa]
and cl, 1
jmp 0x42dc45
xor cl, cl
mov eax, dword [ebp - 0x79c]
cmp dword [eax + 0x9c4], esi
ja 0x42dc64
mov edx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [edx + 0x9c4], eax
mov eax, edx
mov eax, dword [eax + 0x9cc]
cmp cl, 1
lea ecx, [esi + esi*2]
sete dl
inc dword [ebp - 0x7dc]
shl ecx, 5
mov byte [eax + ecx + 4], dl
mov ecx, dword [ebp - 0x7c4]
cmp dword [ecx + 8], 0
jne 0x42dca7
push 2
call fcn.0046b90c
mov ecx, dword [ebp - 0x7c4]
add esp, 4
xor edx, edx
mov dword [ecx + 8], eax
mov word [eax], dx
mov dword [ecx + 0xc], edx
mov edx, dword [ecx + 8]
mov byte [ecx + 0x10], 1
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx], esi
ja 0x42dcbd
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
add ecx, 0x3c
push edx
add ecx, dword [eax + 0x9cc]
call fcn.00401a90
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x42dd03
mov ecx, dword [edx]
test ecx, ecx
je 0x42dcf8
cmp word [ecx], ax
je 0x42dcf8
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42dcf0
mov dword [edx + 4], eax
test eax, eax
je 0x42de2e
mov edx, dword [ebp - 0x7a0]
cmp dword [edx], esi
ja 0x42dd12
lea eax, [esi + 1]
mov dword [edx], eax
mov edx, dword [edx + 8]
lea ecx, [esi + esi*2]
shl ecx, 5
mov dword [ebp - 0x7a8], ecx
mov dword [ebp - 0x7b4], edx
mov esi, dword [edx + ecx + 0x40]
mov byte [edx + ecx + 0x44], 0
test esi, esi
jne 0x42dd4d
mov eax, dword [edx + ecx + 0x3c]
test eax, eax
je 0x42dd49
cmp word [eax], si
je 0x42dd49
inc esi
cmp word [eax + esi*2], 0
jne 0x42dd41
mov dword [edx + ecx + 0x40], esi
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x49ff88], 0
jne 0x42dd50
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov edx, dword [ebp - 0x7a8]
mov ecx, eax
mov eax, dword [ebp - 0x7b4]
add esp, 4
mov dword [ebp - 0x7ac], ecx
mov edx, dword [eax + edx + 0x3c]
test edx, edx
je 0x42ddc1
movzx eax, word [edx]
mov edi, eax
mov dword [ebp - 0x7bc], edi
test ax, ax
je 0x42ddc1
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 0x42ddb0
mov edx, 0x49ff88
mov edi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], di
lea ecx, [ecx + 2]
movzx eax, word [edx + ecx]
mov edi, eax
test ax, ax
jne 0x42ddd0
mov edi, dword [ebp - 0x7b0]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7a8]
mov ecx, dword [ebp - 0x7b4]
mov eax, dword [ecx + eax + 0x3c]
test eax, eax
je 0x42de0f
push eax
call fcn.0046b303
mov ecx, dword [ebp - 0x7b4]
add esp, 4
mov eax, dword [ebp - 0x7a8]
mov edx, dword [ebp - 0x7ac]
mov dword [ecx + eax + 0x40], esi
mov esi, dword [ebp - 0x7a4]
mov dword [ecx + eax + 0x3c], edx
mov byte [ecx + eax + 0x44], 1
mov ecx, dword [ebp - 0x7c4]
cmp dword [ecx + 0x14], 0
jne 0x42de55
push 2
call fcn.0046b90c
mov ecx, dword [ebp - 0x7c4]
add esp, 4
xor edx, edx
mov dword [ecx + 0x14], eax
mov word [eax], dx
mov dword [ecx + 0x18], edx
mov edx, dword [ebp - 0x7a0]
mov byte [ecx + 0x1c], 1
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x7ac], ecx
cmp dword [edx], esi
ja 0x42de71
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [ebp - 0x79c]
lea edx, [esi + esi*2]
shl edx, 5
mov dword [ebp - 0x7a8], edx
mov eax, dword [eax + 0x9cc]
mov dword [ebp - 0x7b4], eax
mov esi, dword [eax + edx + 0x40]
mov byte [eax + edx + 0x44], 0
test esi, esi
jne 0x42dec2
mov eax, dword [eax + edx + 0x3c]
test eax, eax
je 0x42deb8
cmp word [eax], si
je 0x42deb8
nop dword [eax]
inc esi
cmp word [eax + esi*2], 0
jne 0x42deb0
mov eax, dword [ebp - 0x7b4]
mov dword [eax + edx + 0x40], esi
test ecx, ecx
je 0x42deda
xor eax, eax
cmp word [ecx], ax
je 0x42ded8
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42ded0
add esi, eax
xor ecx, ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, dword [ebp - 0x7b4]
add esp, 4
mov edx, dword [ebp - 0x7a8]
mov dword [ebp - 0x7bc], eax
mov edx, dword [ecx + edx + 0x3c]
mov ecx, eax
test edx, edx
je 0x42df47
movzx eax, word [edx]
mov edi, eax
mov dword [ebp - 0x7b8], edi
mov edi, dword [ebp - 0x7b0]
test ax, ax
je 0x42df47
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 0x42df30
mov edi, dword [ebp - 0x7b0]
mov eax, dword [ebp - 0x7ac]
test eax, eax
je 0x42df7a
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42df7a
mov edi, dword [ebp - 0x7ac]
sub edi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [edi + ecx]
mov edx, eax
test ax, ax
jne 0x42df63
mov edi, dword [ebp - 0x7b0]
mov edx, dword [ebp - 0x7b4]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7a8]
mov eax, dword [edx + eax + 0x3c]
test eax, eax
je 0x42dfa2
push eax
call fcn.0046b303
mov edx, dword [ebp - 0x7b4]
add esp, 4
mov eax, dword [ebp - 0x7a8]
mov ecx, dword [ebp - 0x7bc]
mov dword [edx + eax + 0x3c], ecx
mov ecx, dword [ebp - 0x7a4]
mov dword [edx + eax + 0x40], esi
mov byte [edx + eax + 0x44], 1
mov edx, dword [ebp - 0x7a0]
cmp dword [edx], ecx
ja 0x42dfd0
lea eax, [ecx + 1]
mov dword [edx], eax
lea esi, [ecx + ecx*2]
shl esi, 5
add esi, dword [edx + 8]
cmp dword [esi + 0x3c], 0
jne 0x42dffa
push 2
call fcn.0046b90c
add esp, 4
mov dword [esi + 0x3c], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 0x40], ecx
mov ecx, dword [ebp - 0x7a4]
mov eax, dword [ebp - 0x79c]
push ecx
mov byte [esi + 0x44], 1
push dword [eax + 0x90]
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x800]
push 0
push dword [esi + 0x3c]
call fcn.00419860
mov esi, dword [ebp - 0x7a0]
mov edx, dword [ebp - 0x7a4]
mov dword [ebp - 0x7b4], eax
cmp dword [esi], edx
ja 0x42e03b
lea eax, [edx + 1]
mov dword [esi], eax
mov eax, dword [esi + 8]
lea ecx, [edx + edx*2]
shl ecx, 5
add eax, 0x1c
add ecx, eax
mov dword [ecx], 0
cmp dword [esi], edx
ja 0x42e058
lea eax, [edx + 1]
mov dword [esi], eax
mov eax, dword [ebp - 0x79c]
lea esi, [edx + edx*2]
push ecx
shl esi, 5
lea ecx, [ebp - 0x738]
add esi, dword [eax + 0x9cc]
call fcn.004206c0
push 0x12
push 0
push 0
push 0x480700
mov dword [esi + 0xc], eax
call dword [ebp - 0x7fc]
xor esi, esi
mov dword [ebp - 0x7ac], eax
cmp eax, 0xffffffff
je 0x42e22b
lea ecx, [ebp - 0x4b4]
mov dword [ebp - 0x4b4], 0x1c
push ecx
push esi
push 0x480700
push esi
push eax
mov dword [ebp - 0x7a8], esi
mov dword [ebp - 0x7bc], esi
call dword [ebp - 0x438]
test eax, eax
je 0x42e21f
nop
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 - 0x7ec]
mov eax, dword [ebp - 0x734]
test eax, eax
je 0x42e1d4
cmp eax, 0x400
ja 0x42e1d4
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 - 0x7ec]
test eax, eax
je 0x42e1d4
push 0
push 0
push 3
push 0
push 3
push 0
lea eax, [ebp - 0x414]
push eax
call dword [ebp - 0x810]
mov esi, eax
test esi, esi
je 0x42e1d4
cmp esi, 0xffffffff
je 0x42e1d4
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 0x42e1cd
mov eax, dword [ebp - 0x738]
cmp eax, dword [ebp - 0x4bc]
je 0x42e206
push esi
call dword [ebp - 0x7f4]
mov eax, dword [ebp - 0x7bc]
lea ecx, [ebp - 0x4b4]
push ecx
inc eax
push eax
push 0x480700
push 0
push dword [ebp - 0x7ac]
mov dword [ebp - 0x7bc], eax
call dword [ebp - 0x438]
test eax, eax
jne 0x42e0d0
jmp 0x42e219
mov eax, dword [ebp - 0x484]
push esi
mov dword [ebp - 0x7a8], eax
call dword [ebp - 0x7f4]
mov esi, dword [ebp - 0x7a8]
push dword [ebp - 0x7ac]
call dword [ebp - 0x7f8]
mov ecx, dword [ebp - 0x7a0]
mov edx, dword [ebp - 0x7a4]
cmp dword [ecx], edx
ja 0x42e240
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 + 0x9cc]
mov dword [ecx + eax + 0x2c], esi
mov esi, dword [ebp - 0x7a0]
cmp dword [esi], edx
ja 0x42e265
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.00420e10
mov esi, dword [esi]
mov eax, dword [ebp - 0x7a4]
cmp esi, eax
ja 0x42e29c
mov ecx, dword [ebp - 0x79c]
lea esi, [eax + 1]
mov dword [ecx + 0x9c4], esi
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x79c]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
cmp dword [eax + ecx + 0xc], 4
jne 0x42e366
cmp byte [ebp - 0x722], 0
je 0x42e2e1
mov eax, dword [ebp - 0x4ec]
test eax, eax
je 0x42e2e1
cmp dword [eax], 0x30
lea ecx, [eax + 8]
jne 0x42e2e1
cmp dword [eax + 4], 0x30
jne 0x42e2e1
mov edx, dword [ecx + 0x10]
add edx, ecx
jmp 0x42e2e3
xor edx, edx
cmp esi, dword [ebp - 0x7a4]
mov esi, dword [ebp - 0x7a4]
ja 0x42e300
mov ecx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
mov dword [eax + ecx + 0x38], edx
mov eax, dword [ebp - 0x7a0]
mov edx, dword [eax]
cmp edx, esi
ja 0x42e327
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 0x42e36c
cmp edx, esi
ja 0x42e34a
mov ecx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
mov dword [ecx + eax + 0xc], 2
jmp 0x42e36c
mov esi, dword [ebp - 0x7a4]
mov eax, dword [ebp - 0x7a0]
mov edx, dword [eax]
cmp edx, esi
ja 0x42e37d
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 0x42e3a3
lea edx, [esi + 1]
mov dword [eax + 0x9c4], edx
mov eax, dword [eax + 0x9cc]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + ecx + 0xc]
mov dword [ebp - 0x7bc], eax
cmp eax, 4
jne 0x42e476
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42e3f0
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42e3ea
cmp word [ecx], ax
je 0x42e3ea
inc eax
cmp word [ecx + eax*2], 0
jne 0x42e3e2
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + str._NVMe_SSD], 0
jne 0x42e3f2
add eax, ecx
mov edx, 2
mov dword [ebp - 0x7a8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x7b8], ecx
test eax, eax
je 0x42e451
movzx edx, word [eax]
test dx, dx
je 0x42e451
nop word [eax + eax]
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42e440
mov edx, str._NVMe_SSD
mov esi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42e460
jmp 0x42e6d1
cmp dword [ebp - 0x7ac], 2
jne 0x42e536
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42e4b1
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42e4ab
cmp word [ecx], ax
je 0x42e4ab
inc eax
cmp word [ecx + eax*2], 0
jne 0x42e4a3
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4a202c], 0
jne 0x42e4b3
add eax, ecx
mov edx, 2
mov dword [ebp - 0x7a8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x7b8], ecx
test eax, eax
je 0x42e511
movzx edx, word [eax]
test dx, dx
je 0x42e511
nop dword [eax + eax]
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42e500
mov edx, 0x4a202c
mov esi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x42e520
jmp 0x42e6d1
cmp edx, esi
ja 0x42e549
mov ecx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
cmp dword [ecx + eax + 0xc], 0
mov eax, dword [ebp - 0x430]
mov byte [ebp - 0x42c], 0
jne 0x42e626
test eax, eax
jne 0x42e594
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42e58e
cmp word [ecx], ax
je 0x42e58e
inc eax
cmp word [ecx + eax*2], 0
jne 0x42e586
mov dword [ebp - 0x430], eax
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp word [ecx*2 + str._HDD], 0
jne 0x42e5a0
add eax, ecx
mov edx, 2
mov dword [ebp - 0x7a8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x7b8], ecx
test eax, eax
je 0x42e601
movzx edx, word [eax]
test dx, dx
je 0x42e601
nop dword [eax + eax]
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42e5f0
mov edx, str._HDD
mov esi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42e610
jmp 0x42e6d1
test eax, eax
jne 0x42e64e
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42e648
cmp word [ecx], ax
je 0x42e648
nop dword [eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x42e640
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + str._flash_disk], 0
jne 0x42e650
add eax, ecx
mov edx, 2
mov dword [ebp - 0x7a8], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x7b8], ecx
test eax, eax
je 0x42e6b1
movzx edx, word [eax]
test dx, dx
je 0x42e6b1
nop dword [eax + eax]
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42e6a0
mov edx, str._flash_disk
mov esi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], si
lea ecx, [ecx + 2]
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x42e6c0
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42e6e9
push eax
call fcn.0046b303
add esp, 4
mov edx, dword [ebp - 0x7a0]
mov eax, dword [ebp - 0x7b8]
mov esi, dword [ebp - 0x7a4]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x7a8]
mov byte [ebp - 0x42c], 1
mov dword [ebp - 0x430], eax
cmp dword [edx], esi
ja 0x42e71d
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 0x42e7b1
mov edx, dword [edx]
mov eax, dword [ebp - 0x79c]
cmp edx, esi
ja 0x42e74c
lea edx, [esi + 1]
mov dword [eax + 0x9c4], edx
mov eax, dword [eax + 0x9cc]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [eax + ecx + 0x38], 0
je 0x42e7b1
mov eax, dword [ebp - 0x79c]
cmp edx, esi
ja 0x42e772
lea edx, [esi + 1]
mov dword [eax + 0x9c4], edx
lea ecx, [esi + esi*2]
shl ecx, 5
add ecx, dword [eax + 0x9cc]
cmp edx, esi
ja 0x42e791
mov edx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [edx + 0x9c4], eax
mov eax, dword [ecx + 0x38]
movzx eax, word [eax + 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, qword [0x4ab3c0]
cvttsd2si edx, xmm0
jmp 0x42e860
cmp byte [ebp - 0x723], 0
mov edx, dword [ebp - 0x71c]
je 0x42e878
test edx, edx
je 0x42e81e
xor eax, eax
lea ecx, [edx + 2]
nop dword [eax]
cmp eax, 0x29
jg 0x42e81e
test ecx, ecx
je 0x42e81e
cmp byte [ecx], 0xc2
je 0x42e7e4
inc eax
add ecx, 0xc
jmp 0x42e7d0
mov eax, dword [ecx + 5]
mov ecx, dword [ebp - 0x7a0]
mov dword [ebp - 0x818], eax
cmp dword [ecx], esi
ja 0x42e7fc
lea eax, [esi + 1]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x818]
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
mov dword [eax + ecx + 0x18], edx
jmp 0x42e8e8
cmp byte [ebp - 0x723], 0
je 0x42e878
test edx, edx
je 0x42e878
xor ecx, ecx
lea eax, [edx + 2]
cmp ecx, 0x29
jg 0x42e878
test eax, eax
je 0x42e878
cmp byte [eax], 0xbe
je 0x42e844
inc ecx
add eax, 0xc
jmp 0x42e830
mov edx, dword [ebp - 0x7a0]
mov cl, byte [eax + 3]
cmp dword [edx], esi
ja 0x42e856
lea eax, [esi + 1]
mov dword [edx], eax
movzx eax, cl
mov edx, 0x64
sub edx, eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
mov dword [ecx + eax + 0x18], edx
jmp 0x42e8e8
mov eax, dword [ebp - 0x7c8]
test eax, eax
je 0x42e88b
push eax
call fcn.0046b303
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.0041f3f0
test eax, eax
je 0x42e8dc
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx], esi
ja 0x42e8c7
lea eax, [esi + 1]
mov dword [ecx], eax
mov eax, dword [ebp - 0x740]
mov dword [ebp - 0x7c8], eax
movsx edx, word [eax + 0x1a]
jmp 0x42e803
mov eax, dword [ebp - 0x740]
mov dword [ebp - 0x7c8], eax
mov eax, dword [ebp - 0x7a0]
mov edx, dword [eax]
cmp edx, esi
ja 0x42e8f9
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 0x42eb04
cmp edx, esi
ja 0x42e923
mov ecx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
push dword [eax + ecx + 0x18]
lea ecx, [ebp - 0x458]
call fcn.00402100
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x7a8], 0x4a205c
mov dword [ebp - 0x7c0], edx
test edx, edx
jne 0x42e981
push 2
call fcn.0046b90c
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7c0], 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 - 0x7b8], edx
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42e9be
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42e9b8
cmp word [ecx], ax
je 0x42e9b8
nop
inc eax
cmp word [ecx + eax*2], 0
jne 0x42e9b0
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4a2064], 0
jne 0x42e9c0
add ecx, eax
test edx, edx
je 0x42e9ea
xor eax, eax
cmp word [edx], ax
je 0x42e9e8
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x42e9e0
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4a205c], 0
jne 0x42e9f0
add ecx, eax
mov edx, 2
mov dword [ebp - 0x444], ecx
lea eax, [ecx + 1]
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x43c], ecx
test eax, eax
je 0x42ea51
movzx edx, word [eax]
test dx, dx
je 0x42ea51
nop word [eax + eax]
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42ea40
mov edx, 0x4a2064
mov esi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x42ea60
mov eax, dword [ebp - 0x7c0]
test eax, eax
je 0x42eaa1
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42eaa1
mov edi, dword [ebp - 0x7b8]
nop dword [eax + eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
add ecx, 2
test ax, ax
jne 0x42ea90
mov edi, dword [ebp - 0x7a8]
mov eax, 0xb0
nop dword [eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea ecx, [ecx + 2]
test ax, ax
jne 0x42eab0
mov edi, dword [ebp - 0x7b0]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42eadf
push eax
call fcn.0046b303
add esp, 4
mov eax, dword [ebp - 0x43c]
mov esi, dword [ebp - 0x7a4]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x430], eax
mov byte [ebp - 0x42c], 1
mov eax, dword [ebp - 0x7a0]
mov edx, dword [eax]
cmp edx, esi
ja 0x42eb15
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 0x42ed44
mov eax, dword [ebp - 0x79c]
cmp edx, esi
ja 0x42eb3c
lea edx, [esi + 1]
mov dword [eax + 0x9c4], edx
mov eax, dword [eax + 0x9cc]
lea ecx, [esi + esi*2]
shl ecx, 5
cmp dword [eax + ecx + 0x1c], 0x3e8
jbe 0x42ed44
cmp edx, esi
ja 0x42eb69
mov ecx, dword [ebp - 0x79c]
lea eax, [esi + 1]
mov dword [ecx + 0x9c4], eax
mov eax, dword [ebp - 0x79c]
lea ecx, [esi + esi*2]
shl ecx, 5
mov eax, dword [eax + 0x9cc]
push dword [ecx + eax + 0x1c]
lea ecx, [ebp - 0x458]
call fcn.00402100
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x7c0], edx
test edx, edx
jne 0x42ebbd
push 2
call fcn.0046b90c
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7c0], 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 - 0x43c], str._rpm
mov dword [ebp - 0x444], edx
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42ec02
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42ebfc
cmp word [ecx], ax
je 0x42ebfc
inc eax
cmp word [ecx + eax*2], 0
jne 0x42ebf4
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4a2064], 0
jne 0x42ec04
add ecx, eax
test edx, edx
je 0x42ec2a
xor eax, eax
cmp word [edx], ax
je 0x42ec28
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x42ec20
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + str._rpm], 0
jne 0x42ec30
add ecx, eax
mov edx, 2
mov dword [ebp - 0x7a8], ecx
lea eax, [ecx + 1]
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x7b8], ecx
test eax, eax
je 0x42ec91
movzx edx, word [eax]
test dx, dx
je 0x42ec91
nop word [eax + eax]
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42ec80
mov edx, 0x4a2064
mov esi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x42eca0
mov eax, dword [ebp - 0x7c0]
test eax, eax
je 0x42ece1
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42ece1
mov edi, dword [ebp - 0x444]
nop dword [eax + eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
add ecx, 2
test ax, ax
jne 0x42ecd0
mov edi, dword [ebp - 0x43c]
mov eax, 0x20
nop dword [eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea ecx, [ecx + 2]
test ax, ax
jne 0x42ecf0
mov edi, dword [ebp - 0x7b0]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42ed1f
push eax
call fcn.0046b303
add esp, 4
mov eax, dword [ebp - 0x7b8]
mov esi, dword [ebp - 0x7a4]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x7a8]
mov dword [ebp - 0x430], eax
mov byte [ebp - 0x42c], 1
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx], esi
ja 0x42ed53
lea eax, [esi + 1]
mov dword [ecx], eax
lea esi, [esi + esi*2]
shl esi, 5
add esi, dword [ecx + 8]
lea ecx, [ebp - 0x738]
call fcn.00420150
cmp dword [ebp - 0x7bc], 4
mov byte [esi + 2], al
je 0x42ed87
cmp dword [ebp - 0x7ac], 2
je 0x42ed87
mov edx, dword [ebp - 0x434]
jmp 0x42ef6e
mov edx, dword [ebp - 0x7a0]
mov ecx, dword [ebp - 0x7a4]
cmp dword [edx], ecx
ja 0x42ed9c
lea eax, [ecx + 1]
mov dword [edx], eax
mov eax, dword [edx + 8]
lea ecx, [ecx + ecx*2]
shl ecx, 5
movzx eax, byte [ecx + eax + 2]
lea ecx, [ebp - 0x458]
push eax
call fcn.00402100
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x7c0], edx
test edx, edx
jne 0x42ede9
push 2
call fcn.0046b90c
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7c0], 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 - 0x43c], str.__left
mov dword [ebp - 0x444], edx
mov byte [ebp - 0x42c], 0
test eax, eax
jne 0x42ee2e
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x42ee28
cmp word [ecx], ax
je 0x42ee28
inc eax
cmp word [ecx + eax*2], 0
jne 0x42ee20
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4a2064], 0
jne 0x42ee30
add ecx, eax
test edx, edx
je 0x42ee5a
xor eax, eax
cmp word [edx], ax
je 0x42ee58
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x42ee50
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + str.__left], 0
jne 0x42ee60
add ecx, eax
mov edx, 2
mov dword [ebp - 0x7bc], ecx
lea eax, [ecx + 1]
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x7b8], ecx
test eax, eax
je 0x42eec1
movzx edx, word [eax]
test dx, dx
je 0x42eec1
nop word [eax + eax]
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42eeb0
mov edx, 0x4a2064
mov esi, 0x20
sub edx, ecx
nop dword [eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x42eed0
mov eax, dword [ebp - 0x7c0]
test eax, eax
je 0x42ef11
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x42ef11
mov edi, dword [ebp - 0x444]
nop dword [eax + eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
add ecx, 2
test ax, ax
jne 0x42ef00
mov edi, dword [ebp - 0x43c]
mov eax, 0x25
nop dword [eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea ecx, [ecx + 2]
test ax, ax
jne 0x42ef20
mov edi, dword [ebp - 0x7b0]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42ef4f
push eax
call fcn.0046b303
add esp, 4
mov edx, dword [ebp - 0x7b8]
mov eax, dword [ebp - 0x7bc]
mov dword [ebp - 0x434], edx
mov dword [ebp - 0x430], eax
mov byte [ebp - 0x42c], 1
test edx, edx
jne 0x42ef93
push 2
call fcn.0046b90c
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 esi, dword [ebp - 0x79c]
mov byte [ebp - 0x42c], 1
mov eax, dword [esi + 0x90]
cmp eax, 0xffffffff
jne 0x42efb1
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x184]
test ecx, ecx
je 0x42f004
cmp eax, 1
jl 0x42f004
cmp eax, dword [esi + 0x188]
jg 0x42f004
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x42f004
cmp dword [ecx + eax*8], 0xf
jne 0x42f004
mov dword [ebp - 0x784], edx
lea edx, [ebp - 0x798]
push edx
push dword [ebp - 0x7b4]
mov dword [ebp - 0x790], 1
push 0x1074
push dword [ecx + eax*8 + 4]
call dword [ebp - 0x7d4]
lea ecx, [ebp - 0x738]
call fcn.0041e830
mov esi, dword [ebp - 0x7a4]
mov cl, al
mov edx, dword [ebp - 0x7a0]
cmp cl, 2
jae 0x42f046
cmp dword [edx], esi
ja 0x42f02b
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 + 0x9cc]
mov dword [eax + ecx + 0x14], edx
jmp 0x42f060
cmp dword [edx], esi
ja 0x42f04f
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 0x42f091
mov eax, dword [ebp - 0x71c]
test eax, eax
je 0x42f091
xor ecx, ecx
add eax, 2
cmp ecx, 0x29
jg 0x42f091
test eax, eax
je 0x42f091
cmp byte [eax], 9
je 0x42f08c
inc ecx
add eax, 0xc
jmp 0x42f078
mov edx, dword [eax + 5]
jmp 0x42f094
or edx, 0xffffffff
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx], esi
ja 0x42f0a3
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 + 0x9cc]
mov dword [eax + ecx + 0x28], edx
mov edx, dword [ebp - 0x7a0]
mov eax, dword [edx]
cmp eax, esi
ja 0x42f0ca
lea eax, [esi + 1]
mov dword [edx], eax
lea ecx, [esi + esi*2]
shl ecx, 5
add ecx, dword [edx + 8]
cmp eax, esi
ja 0x42f0dc
lea eax, [esi + 1]
mov dword [edx], eax
lea esi, [esi + esi*2]
lea eax, [ecx + 0x24]
shl esi, 5
add esi, dword [edx + 8]
lea ecx, [ebp - 0x738]
push eax
call fcn.0041f0f0
mov edx, dword [ebp - 0x7a0]
mov dword [esi + 0x20], eax
mov esi, dword [ebp - 0x7a4]
cmp dword [edx], esi
ja 0x42f10c
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [ebp - 0x7c4]
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.004015d0
mov ecx, dword [ebp - 0x7a0]
mov dword [ebp - 0x46c], 0
cmp dword [ecx], esi
ja 0x42f142
lea eax, [esi + 1]
mov dword [ecx], eax
lea esi, [esi + esi*2]
shl esi, 5
add esi, dword [ecx + 8]
cmp dword [esi + 0x54], 0
lea eax, [esi + 0x5c]
mov dword [ebp - 0x444], eax
jne 0x42f175
push 2
call fcn.0046b90c
add esp, 4
mov dword [esi + 0x54], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x444]
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x54]
mov dl, 1
mov byte [eax], dl
test ecx, ecx
mov eax, 0x49fab0
cmovne eax, ecx
xor ecx, ecx
mov dword [ebp - 0x46c], ecx
test edi, edi
je 0x42f1c7
mov dword [ebp - 0x43c], ecx
lea ecx, [ebp - 0x444]
push ecx
lea ecx, [ebp - 0x46c]
mov dword [ebp - 0x444], 4
push ecx
lea ecx, [ebp - 0x43c]
push ecx
push 0
push eax
push edi
call dword [ebp - 0x804]
mov ecx, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x7a0]
mov esi, dword [ebp - 0x7a4]
cmp dword [edx], esi
ja 0x42f1dc
lea eax, [esi + 1]
mov dword [edx], eax
mov eax, dword [ebp - 0x79c]
test ecx, ecx
lea ecx, [esi + esi*2]
setne dl
shl ecx, 5
mov eax, dword [eax + 0x9cc]
mov byte [eax + ecx + 3], dl
lea eax, [ebp - 0x738]
mov ecx, dword [ebp - 0x79c]
push eax
push dword [ebp - 0x7b4]
push esi
call fcn.00440490
push esi
lea ecx, [ebp - 0x434]
call fcn.00402100
mov edx, dword [ebp - 0x434]
test edx, edx
jne 0x42f247
push 2
call fcn.0046b90c
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 - 0x79c]
mov byte [ebp - 0x42c], 1
mov eax, dword [ecx + 0x90]
cmp eax, 0xffffffff
jne 0x42f265
mov eax, dword [ecx + 0x188]
mov ecx, dword [ecx + 0x184]
test ecx, ecx
je 0x42f2c4
cmp eax, 1
jl 0x42f2c4
mov edi, dword [ebp - 0x79c]
cmp eax, dword [edi + 0x188]
mov edi, dword [ebp - 0x7b0]
jg 0x42f2c4
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x42f2c4
cmp dword [ecx + eax*8], 0xf
jne 0x42f2c4
mov dword [ebp - 0x784], edx
lea edx, [ebp - 0x798]
push edx
push dword [ebp - 0x7b4]
mov dword [ebp - 0x790], 3
push 0x1074
push dword [ecx + eax*8 + 4]
call dword [ebp - 0x7d4]
mov eax, dword [ebp - 0x7b4]
mov dword [ebp - 0x758], eax
lea eax, [ebp - 0x75c]
push eax
mov eax, dword [ebp - 0x79c]
push 0
push 0x10a4
push dword [eax + 0xc8]
call dword [ebp - 0x7d4]
mov ecx, dword [ebp - 0x7a0]
cmp dword [ecx], esi
ja 0x42f2ff
lea eax, [esi + 1]
mov dword [ecx], eax
lea esi, [esi + esi*2]
shl esi, 5
add esi, dword [ecx + 8]
push ecx
mov ecx, dword [ebp - 0x79c]
call fcn.0042fb70
mov ecx, dword [ebp - 0x79c]
mov dword [esi + 8], eax
lea eax, [ebp - 0x738]
push eax
push dword [ebp - 0x7b4]
call fcn.00430200
mov esi, dword [ebp - 0x7a4]
mov eax, dword [ebp - 0x7a0]
inc esi
mov dword [ebp - 0x7a4], esi
cmp esi, dword [ebp - 0x7cc]
jb 0x42d9f0
mov esi, dword [ebp - 0x79c]
mov ecx, dword [esi + 0x90]
cmp ecx, 0xffffffff
jne 0x42f367
mov ecx, dword [esi + 0x188]
jmp 0x42f388
mov edx, dword [esi + 0x184]
test edx, edx
je 0x42f3a1
cmp ecx, 1
jl 0x42f3a1
cmp ecx, dword [esi + 0x188]
jg 0x42f3a1
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x42f3a1
mov eax, dword [esi + 0x184]
lea ecx, [ecx + ecx*8]
push 0
push 1
push 0xb
push dword [eax + ecx*8 + 4]
call dword [ebp - 0x7d4]
push 0x80
push dword [esi + 0x90]
lea ecx, [esi + 0x148]
call fcn.00417af0
push 1
mov ecx, esi
call fcn.004409d0
test eax, eax
jne 0x42f3b7
push eax
push eax
call dword [ebp - 0x7d8]
mov ecx, dword [ebp - 0x7f0]
cmp ecx, 0xffffffff
jne 0x42f44c
mov ecx, dword [ebp - 0x7d0]
test ecx, ecx
jne 0x42f3ed
mov dword [ebp - 0x460], ecx
jmp 0x42f44a
xor eax, eax
cmp word [ecx], ax
je 0x42f3fc
inc eax
cmp word [ecx + eax*2], 0
jne 0x42f3f4
mov dword [ebp - 0x460], eax
test eax, eax
je 0x42f44a
test ecx, ecx
jne 0x42f42d
push 2
call fcn.0046b90c
mov ecx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x7d0], 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 + 0xc8]
call fcn.0040ceb0
mov ecx, eax
test ecx, ecx
jns 0x42f44c
xor ecx, ecx
xor eax, eax
cmp ecx, dword [ebp - 0x7dc]
cmovl eax, ecx
mov dword [ebp - 0x7ac], eax
mov eax, dword [esi + 0x90]
cmp eax, 0xffffffff
jne 0x42f46e
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x184]
test ecx, ecx
je 0x42f547
cmp eax, 1
jl 0x42f547
cmp eax, dword [esi + 0x188]
jg 0x42f547
lea eax, [eax + eax*8]
shl eax, 3
mov dword [ebp - 0x7d8], eax
cmp dword [eax + ecx + 0xc], 0
je 0x42f547
cmp dword [eax + ecx], 0xf
jne 0x42f547
push 0x2000
call fcn.0046b90c
mov ecx, dword [ebp - 0x7d8]
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 - 0x79c]
push dword [ebp - 0x7ac]
push 0x1073
mov eax, dword [eax + 0x184]
push dword [eax + ecx + 4]
call dword [ebp - 0x7d4]
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42f528
push eax
call fcn.0046b303
add esp, 4
mov dword [ebp - 0x434], esi
lea eax, [ebp - 0x434]
mov dword [ebp - 0x430], 0
mov byte [ebp - 0x42c], 1
jmp 0x42f55a
push 0
lea ecx, [ebp - 0x434]
call fcn.00401a90
mov esi, dword [ebp - 0x434]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x42f610
mov edx, dword [eax]
test edx, edx
je 0x42f578
cmp word [edx], cx
je 0x42f578
inc ecx
cmp word [edx + ecx*2], 0
jne 0x42f570
mov dword [eax + 4], ecx
mov esi, dword [ebp - 0x434]
test ecx, ecx
jne 0x42f610
test esi, esi
je 0x42f596
push esi
call fcn.0046b303
add esp, 4
mov byte [ebp - 0x42c], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x49fb08], 0
jne 0x42f5a0
mov dword [ebp - 0x430], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x430]
xor ecx, ecx
mov dword [ebp - 0x434], edx
test eax, eax
jle 0x42f5fd
mov ax, word [ecx*2 + 0x49fb08]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x430]
mov edx, dword [ebp - 0x434]
cmp ecx, eax
jl 0x42f5e0
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x434]
mov byte [ebp - 0x42c], 1
test esi, esi
je 0x42f648
cmp dword [ebp - 0x430], 0
jne 0x42f634
xor eax, eax
cmp word [esi], ax
je 0x42f62c
inc eax
cmp word [esi + eax*2], 0
jne 0x42f624
mov dword [ebp - 0x430], eax
test eax, eax
jle 0x42f648
push esi
mov byte [ebp - 0x42c], 1
call fcn.0046f460
add esp, 4
jmp 0x42f651
mov byte [ebp - 0x42c], 0
xor eax, eax
mov esi, dword [ebp - 0x7ac]
mov ecx, dword [ebp - 0x79c]
push 1
push eax
push esi
call fcn.0042fa70
mov ecx, dword [ebp - 0x79c]
push eax
call fcn.0042f850
mov edx, dword [ebp - 0x79c]
mov eax, dword [edx + 0x90]
cmp eax, 0xffffffff
jne 0x42f689
mov eax, dword [edx + 0x188]
mov ecx, dword [edx + 0x184]
test ecx, ecx
je 0x42f762
cmp eax, 1
jl 0x42f762
cmp eax, dword [edx + 0x188]
jg 0x42f762
lea eax, [eax + eax*8]
shl eax, 3
mov dword [ebp - 0x7d8], eax
cmp dword [ecx + eax + 0xc], 0
je 0x42f762
cmp dword [ecx + eax], 0xf
jne 0x42f762
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 dword [eax]
nop word [eax + eax]
lea eax, [ebp - 0x798]
mov dword [ebp - 0x78c], 2
push eax
mov eax, dword [edx + 0x184]
push esi
push 0x102b
mov dword [ebp - 0x794], esi
push dword [edi + eax + 4]
call dword [ebp - 0x7d4]
mov edx, dword [ebp - 0x79c]
inc esi
cmp esi, dword [ebp - 0x7ac]
jle 0x42f720
mov edi, dword [ebp - 0x7b0]
push dword [ebp - 0x808]
lea ecx, [edx + 0x148]
call fcn.00415ed0
mov eax, dword [ebp - 0x79c]
push 2
push dword [eax + 0x4c]
lea ecx, [eax + 0x148]
call fcn.00417af0
test edi, edi
je 0x42f799
cmp edi, 0xffffffff
je 0x42f799
push edi
call dword [ebp - 0x7e8]
mov eax, dword [ebp - 0x80c]
mov byte [ebp - 4], 4
test eax, eax
je 0x42f7d3
push 0x401730
lea esi, [eax - 4]
mov byte [ebp - 4], 8
push dword [esi]
push 0xc
push eax
call fcn.0046b598
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0046b308
add esp, 8
mov eax, dword [ebp - 0x7c0]
test eax, eax
je 0x42f7e6
push eax
call fcn.0046b303
add esp, 4
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x42f7f9
push eax
call fcn.0046b303
add esp, 4
mov eax, dword [ebp - 0x7c8]
test eax, eax
je 0x42f80c
push eax
call fcn.0046b303
add esp, 4
lea ecx, [ebp - 0x738]
call fcn.00420c30
mov eax, dword [ebp - 0x7d0]
test eax, eax
je 0x42f82a
push eax
call fcn.0046b303
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.0046b2f5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4