Function at 0x578380
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2d8
push 0
call fcn.00549640
add esp, 4
test eax, eax
je 0x5794c3
mov dword [esp + 0x58], 0x6044b0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
movdqu xmmword [esp + 0x68], xmm0
push 0x12
push 0
push 0
push 0x6056b8
call sub.setupapi.dll_SetupDiGetClassDevsW
mov dword [esp], eax
cmp dword [esp], 0xffffffff
je 0x578afe
xor eax, eax
lea esi, [esp + 0x108]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xc4], 0x1c
jmp 0x5784a9
movsd xmm0, qword [esp + 0xb8]
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x38]
lea ecx, [esp + 0x14]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [ecx + 8], ebx
movq qword [ecx], xmm0
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x58]
lea edx, [esp + 8]
call fcn.00569300
mov eax, dword [esp + 0x38]
inc eax
lea ecx, [esp + 0xc4]
push ecx
mov dword [esp + 0x3c], eax
push eax
push dword [esp + 8]
call sub.setupapi.dll_SetupDiEnumDeviceInfo
test eax, eax
je 0x578add
push 0x190
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
push 0
push 0xc8
push esi
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x10]
call sub.setupapi.dll_SetupDiGetDeviceInstanceIdW
test eax, eax
je 0x578520
xor eax, eax
nop word cs:[eax + eax]
cmp word [esp + eax*2 + 0x108], 0
je 0x578580
inc eax
cmp eax, 0xc8
jne 0x578500
mov eax, 0xc8
jmp 0x57858b
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 8], 0x604d44
mov dword [esp + 0xc], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], 0x42bbb0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.0044fbf0
add esp, 4
mov eax, dword [esp + 0x38]
inc eax
jmp 0x5784a9
cmp eax, 0xc9
jae 0x5794ab
lea eax, [esp + eax*2 + 0x108]
mov word [esp + 8], 0
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
lea ecx, [esp + 0xb8]
lea edx, [esp + 8]
call fcn.00568590
lea eax, [esp + 0x7c]
mov edi, 4
xor esi, esi
mov dword [esp + 0x3c], 4
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x9c], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [esp + 0x78], 0x1c
jmp 0x578629
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 4]
inc esi
lea eax, [esp + 0x78]
push eax
push esi
push 0x6056b8
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x10]
call sub.setupapi.dll_SetupDiEnumDeviceInterfaces
test eax, eax
je 0x578980
mov dword [esp + 4], edi
mov edi, 0xc8
mov dword [esp + 0x34], esi
mov dword [esp + 0x94], 0xc8
jmp 0x578677
mov edi, dword [esp + 0x94]
test edi, edi
je 0x5786d0
js 0x579484
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6074a0]
mov eax, dword [eax]
test eax, eax
jne 0x5786a9
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x579474
mov ecx, dword [0x6074a0]
mov dword [ecx], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x579474
mov esi, eax
mov eax, dword [esp + 0x94]
jmp 0x5786d7
mov esi, 1
xor eax, eax
mov dword [esi], 6
mov word [esi + 4], 0
push 0
lea ecx, [esp + 0x98]
push ecx
push eax
push esi
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x14]
call sub.setupapi.dll_SetupDiGetDeviceInterfaceDetailW
test eax, eax
jne 0x578780
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
mov dword [esp + 0x98], eax
jne 0x578850
lea eax, [esp + 0x94]
mov dword [esp + 8], 0x604e7c
mov dword [esp + 0xc], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], 0x42bbb0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.0044fbf0
add esp, 4
test edi, edi
je 0x578670
push esi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x578670
lea eax, [esi + 4]
mov ecx, 0xffffffff
nop dword [eax + eax]
cmp word [eax + ecx*2 + 2], 0
lea ecx, [ecx + 1]
jne 0x578790
push ecx
push eax
lea eax, [esp + 0x10]
push eax
call fcn.0052f440
add esp, 0xc
mov eax, dword [esp + 8]
push dword [esp + 0x10]
mov dword [esp + 0xe4], eax
push eax
lea eax, [esp + 0x50]
push eax
call fcn.0053b6c0
add esp, 0xc
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
test eax, eax
mov edx, eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x2c], eax
cmove edx, ecx
mov ecx, dword [esp + 0x50]
test ecx, ecx
mov dword [esp + 0x30], ecx
je 0x5788a5
js 0x5794a1
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6074a0]
mov eax, dword [eax]
mov dword [esp + 0xe4], edx
test eax, eax
jne 0x578826
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x57948e
mov ecx, dword [0x6074a0]
mov dword [ecx], eax
push dword [esp + 0x30]
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edx, dword [esp + 0xe4]
mov ebx, eax
test eax, eax
jne 0x5788aa
jmp 0x57948e
lea eax, [esp + 0x98]
mov dword [esp + 8], 0x604e44
mov dword [esp + 0xc], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], 0x42bbb0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.0044fbf0
add esp, 4
test edi, edi
jne 0x578962
jmp 0x578620
mov ebx, 1
push dword [esp + 0x30]
push edx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x2c], 0
je 0x5788db
cmp dword [esp + 0xb4], 0
je 0x5788db
push dword [esp + 0x2c]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xc], 0
je 0x5788f4
push dword [esp + 8]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x30]
mov dword [esp + 8], ebx
cmp edx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
jne 0x578930
lea ecx, [esp + 0x3c]
call fcn.005672a0
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
jmp 0x578934
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x10]
lea eax, [edx + edx*2]
inc edx
mov dword [esp + 4], ebx
mov dword [esp + 0x9c], edx
mov dword [ebx + eax*4 + 8], ecx
movq xmm0, qword [esp + 8]
movq qword [ebx + eax*4], xmm0
mov dword [esp + 0x44], edx
test edi, edi
je 0x578620
push esi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x578620
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x108]
cmp eax, 0x103
mov dword [esp + 0x98], eax
je 0x578460
cmp dword [esp + 0x9c], 0
je 0x578a3d
lea eax, [esp + 0x98]
mov dword [esp + 8], 0x604e00
mov dword [esp + 0xc], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], 0x42bbb0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.0044fbf0
add esp, 4
movsd xmm0, qword [esp + 0xb8]
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x38]
lea ecx, [esp + 0x14]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [ecx + 8], ebx
movq qword [ecx], xmm0
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x58]
lea edx, [esp + 8]
call fcn.00569300
jmp 0x5784a4
lea eax, [esp + 0x98]
mov dword [esp + 8], 0x604d98
mov dword [esp + 0xc], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x4c], 0x42bbb0
mov dword [esp + 0x50], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x54], 0x567700
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 2
lea eax, [esp + 8]
push eax
call fcn.0044fbf0
add esp, 4
cmp dword [esp + 0x40], 0
je 0x578ab1
push dword [esp + 0x3c]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xbc], 0
mov eax, dword [esp + 0x38]
je 0x5784a8
push dword [esp + 0xb8]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x5784a4
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x103
mov dword [esp + 0x48], eax
jne 0x578c13
push dword [esp]
call sub.setupapi.dll_SetupDiDestroyDeviceInfoList
jmp 0x578c76
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xc4]
mov dword [esp + str.Failed_to_get_device_info_set:], 0x604ea4
mov dword [esp + 0x10c], 1
mov dword [esp + 0x118], 0
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], 0x42bbb0
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], 1
lea ecx, [esp + 0x108]
lea eax, [esp + 8]
push ecx
push eax
call fcn.0041acc0
add esp, 8
movq xmm0, qword [esp + 8]
mov eax, dword [esp + 0x10]
mov edi, dword [0x6074b4]
mov ebx, dword [0x6074a0]
movq qword [esp + 0x78], xmm0
mov dword [esp + 0x80], eax
mov dword [esp + 0x110], eax
movq qword [esp + 0x108], xmm0
movzx eax, byte [edi]
mov eax, dword [ebx]
test eax, eax
jne 0x578bb4
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x579502
mov dword [ebx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x579502
mov esi, eax
mov eax, dword [esp + 0x80]
mov dword [esi + 8], eax
movq xmm0, qword [esp + 0x78]
movq qword [esi], xmm0
movzx eax, byte [edi]
mov eax, dword [ebx]
test eax, eax
jne 0x578bf0
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x578c02
mov dword [ebx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x579282
push 0xc
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x57954d
push dword [esp]
call sub.setupapi.dll_SetupDiDestroyDeviceInfoList
cmp dword [esp + 0x64], 0
je 0x57917c
lea eax, [esp + 0x48]
lea ecx, [esp + 8]
mov dword [esp + str._WARNINGDEVICES__Error_on_device_iteration:_._Using_available_devices], 0x604d08
mov dword [esp + 0x10c], 2
mov dword [esp + 0x118], 0
mov dword [esp + 8], eax
mov dword [esp + 0x110], ecx
mov dword [esp + 0xc], 0x42bbb0
mov dword [esp + 0x114], 1
push esi
call fcn.0044fbf0
add esp, 4
lea eax, [esp + 0x64]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
test edi, edi
movq qword [esp + 0xa0], xmm0
movq qword [esp + 0xa8], xmm1
mov dword [esp + 0xb0], eax
je 0x57929f
mov eax, dword [esp + 0xb0]
movq xmm0, qword [esp + 0xa0]
movq xmm1, qword [esp + 0xa8]
mov dword [esp + 0x104], eax
movq qword [esp + 0xfc], xmm1
movq qword [esp + 0xf4], xmm0
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], ebx
push 0
call fcn.00549640
add esp, 4
test eax, eax
je 0x579510
mov dword [esp + 8], 0x6044b0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
test esi, esi
mov dword [eax + 4], ecx
movdqu xmmword [esp + 0x18], xmm0
mov eax, dword [esp + 0xf4]
movdqa xmm0, xmmword [edi]
mov dword [esp], eax
je 0x578d91
lea ecx, [esi + 1]
mov edx, 0x1c
xor ebx, ebx
mov eax, ecx
mul edx
jo 0x578d8b
add eax, 0xf
jb 0x578d8b
and eax, 0xfffffff0
add esi, 0x11
add esi, eax
jb 0x578d8b
cmp esi, 0x7ffffff1
jb 0x57946a
mov edx, edi
sub edx, eax
jmp 0x578d98
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], esi
mov esi, dword [esp]
pmovmskb eax, xmm0
add ecx, edi
lea ebx, [edi + 0x10]
mov dword [esp + 0x64], edi
not eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ecx
mov word [esp + 0x70], ax
test esi, esi
mov dword [esp + 0x74], esi
jne 0x578e06
xor esi, esi
jmp 0x579420
push dword [esp + 0xa0]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp]
mov edx, dword [esp + 4]
test esi, esi
mov eax, edx
je 0x579415
test ax, ax
je 0x578e20
lea edx, [eax - 1]
and edx, eax
jmp 0x578e44
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe40
add ebx, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x578e20
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov edx, eax
and edx, ecx
tzcnt eax, eax
dec esi
mov ecx, eax
neg ecx
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*2]
sub ecx, eax
mov eax, dword [edi + ecx - 0x1c]
test eax, eax
je 0x579417
lea ecx, [edi + ecx - 0x1c]
mov dword [esp + 4], edx
lea edx, [esp + 0xdc]
mov dword [esp], esi
movq xmm0, qword [ecx + 4]
movq xmm1, qword [ecx + 0xc]
movsd xmm2, qword [ecx + 0x14]
lea ecx, [esp + 0xc8]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], 0x42bbb0
movsd qword [ecx + 0x10], xmm2
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
lea ecx, [esp + 0xa0]
movq qword [esp + 0x108], xmm0
mov dword [esp + 0xc4], eax
movsd qword [esp + 0x118], xmm2
movq qword [esp + 0x110], xmm1
mov dword [esp + str..PhysicalDrive], 0x605668
mov dword [esp + 0x10c], 1
mov dword [esp + 0x118], 0
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], 1
lea esi, [esp + 0x108]
push esi
lea esi, [esp + 0x7c]
push esi
call fcn.0041acc0
add esp, 8
mov eax, dword [esp + 0x80]
movq xmm0, qword [esp + 0x78]
mov dword [esp + str._DEBUGSTORE__Found_physical_storage_device:], 0x6056f8
mov dword [esp + 0x10c], 1
mov dword [esp + 0x118], 0
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], 1
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa0]
movq qword [esp + 0xa0], xmm0
mov dword [esp + 0x78], eax
mov al, 1
mov dword [esp + 0x7c], 0x567700
mov dword [esp + 0x34], eax
lea eax, [esp + 0x108]
push eax
call fcn.0044fbf0
add esp, 4
mov eax, dword [esp + 0xdc]
movq xmm0, qword [esp + 0xd4]
movsd xmm2, qword [esp + 0xc4]
movq xmm1, qword [esp + 0xcc]
mov dword [esp + 0x34], 0
mov dword [esp + 0x90], eax
movq qword [esp + 0x88], xmm0
movq qword [esp + 0x80], xmm1
movsd qword [esp + 0x78], xmm2
push esi
lea eax, [esp + 0x10c]
push eax
call fcn.00577db0
add esp, 8
cmp byte [esp + 0x13d], 2
jne 0x5790a0
movq xmm0, qword [esp + 0x108]
lea eax, [esp + 0x3c]
mov dword [esp + 0x78], 0x605734
mov dword [esp + 0x7c], 1
mov dword [esp + 0x88], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], fcn.0052dbf0
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 1
movq qword [esp + 0x3c], xmm0
lea eax, [esp + 0x78]
push eax
call fcn.0044fbf0
add esp, 4
cmp byte [esp + 0x3c], 3
jne 0x57912e
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [esi]
mov dword [esp + 0x30], ecx
push ecx
call eax
add esp, 4
cmp dword [esi + 4], 0
je 0x579157
cmp dword [esi + 8], 9
jae 0x579141
mov eax, dword [esp + 0x30]
jmp 0x579148
movsd xmm2, qword [esp + 0x130]
movsd xmm1, qword [esp + 0x128]
movq xmm0, qword [esp + 0x138]
movsd qword [esp + 0x2c0], xmm2
movsd qword [esp + 0x2b8], xmm1
movsd xmm2, qword [esp + 0x120]
movsd xmm1, qword [esp + 0x118]
movq qword [esp + 0x2c8], xmm0
movsd qword [esp + 0x2b0], xmm2
movsd qword [esp + 0x2a8], xmm1
movsd xmm2, qword [esp + 0x108]
movq xmm1, qword [esp + 0x110]
movq qword [esp + 0x2a0], xmm1
movsd qword [esp + 0x298], xmm2
lea ecx, [esp + 8]
lea edx, [esp + 0x298]
call fcn.00569820
cmp dword [esp + 0xa4], 0
jne 0x578de0
jmp 0x578df5
mov eax, dword [esp + 0x30]
mov eax, dword [eax - 4]
push eax
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x34]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xa4], 0
jne 0x578de0
jmp 0x578df5
lea eax, [esp + 0x48]
mov dword [esp + str.error_on_device_enumeration:], 0x604cb8
mov dword [esp + 0x10c], 1
mov dword [esp + 0x118], 0
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], 0x42bbb0
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], 1
push esi
lea eax, [esp + 0xc]
push eax
call fcn.0041acc0
add esp, 8
mov eax, dword [esp + 0x10]
movq xmm0, qword [esp + 8]
mov dword [esp + 0x80], eax
mov dword [esp + 0x110], eax
mov eax, dword [0x6074b4]
movq qword [esp + 0x78], xmm0
movq qword [esp + 0x108], xmm0
movzx eax, byte [eax]
mov eax, dword [0x6074a0]
mov eax, dword [eax]
test eax, eax
jne 0x579220
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x579533
mov ecx, dword [0x6074a0]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x579533
mov esi, eax
mov eax, dword [esp + 0x80]
mov dword [esi + 8], eax
mov eax, dword [0x6074b4]
movq xmm0, qword [esp + 0x78]
movq qword [esi], xmm0
movzx eax, byte [eax]
mov eax, dword [0x6074a0]
mov eax, dword [eax]
test eax, eax
jne 0x579270
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x579541
mov ecx, dword [0x6074a0]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x579541
mov dword [eax], esi
mov ebx, eax
mov esi, 3
mov dword [eax + 4], 0x604510
mov byte [eax + 8], 0x27
lea ecx, [esp + 0x58]
call fcn.00562550
lea eax, [esp + 0x78]
mov dword [esp + str.failed_to_get_storage_devices:], 0x60575c
mov dword [esp + 0x10c], 1
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x118], 0
mov dword [esp + 8], eax
lea eax, [esp + 8]
mov dword [esp + 0xc], fcn.0052dbf0
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], 1
lea ebx, [esp + 0x108]
lea eax, [esp + 0x58]
push ebx
push eax
call fcn.0041acc0
add esp, 8
movq xmm0, qword [esp + 0x58]
mov eax, dword [esp + 0x60]
mov edi, dword [0x6074b4]
movq qword [esp + 8], xmm0
mov dword [esp + 0x10], eax
mov dword [esp + 0x110], eax
movq qword [esp + 0x108], xmm0
movzx eax, byte [edi]
mov eax, dword [0x6074a0]
mov eax, dword [eax]
test eax, eax
jne 0x579350
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5794e6
mov ecx, dword [0x6074a0]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5794e6
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esi + 8], eax
movq xmm0, qword [esp + 8]
movq qword [esi], xmm0
movzx eax, byte [edi]
mov eax, dword [0x6074a0]
mov eax, dword [eax]
test eax, eax
jne 0x579398
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5794f4
mov ecx, dword [0x6074a0]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5794f4
mov dword [eax], esi
mov dword [eax + 4], 0x604510
mov byte [eax + 8], 0x27
mov ecx, dword [ebp + 8]
cmp byte [esp + 0x78], 3
mov dword [ecx + 8], eax
mov dword [ecx + 4], 3
mov dword [ecx], 0
jne 0x57945f
mov esi, dword [esp + 0x7c]
mov ebx, dword [esi + 4]
mov edi, dword [esi]
mov eax, dword [ebx]
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x579404
cmp dword [ebx + 8], 9
jb 0x5793f5
mov edi, dword [edi - 4]
push edi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
push esi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x57945f
xor esi, esi
mov dword [esp + 0x68], ebx
mov word [esp + 0x70], dx
mov dword [esp + 0x74], esi
mov dword [esp + 0x64], edi
lea ecx, [esp + 0x58]
call fcn.00562070
mov eax, dword [ebp + 8]
movsd xmm1, qword [esp + 0x18]
movq xmm0, qword [esp + 0x20]
movsd xmm2, qword [esp + 8]
movsd qword [eax + 0x10], xmm1
movq xmm1, qword [esp + 0x10]
movq qword [eax + 0x18], xmm0
movsd qword [eax], xmm2
movq qword [eax + 8], xmm1
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, 0x10
jmp 0x578d8b
push edi
push 1
call fcn.0041a8c0
add esp, 8
jmp 0x57954d
call fcn.0041a880
jmp 0x57954d
push dword [esp + 0x30]
push 1
call fcn.0041a8c0
add esp, 8
jmp 0x57954d
call fcn.0041a880
jmp 0x57954d
push 0x60667c
push 0xc8
push eax
call fcn.004287f0
add esp, 0xc
jmp 0x57954d
lea eax, [esp + 0x108]
push 0x603ae0
push 0x6042b8
push eax
push 0x46
push str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_threadlocal.rs
call fcn.004254f0
add esp, 0x14
ud2
push 0xc
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x57954d
push 0xc
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x57954d
push 0xc
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x57954d
push 0x603ae0
push 0x6042b8
lea eax, [esp + 0x110]
push eax
push 0x46
push str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_threadlocal.rs
call fcn.004254f0
add esp, 0x14
jmp 0x57954d
push 0xc
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x57954d
push 0xc
push 4
call fcn.0041a8c0
add esp, 8
ud2