Function at 0x101c7180
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.10185010
add esp, 4
test eax, eax
je 0x101c82c3
mov dword [esp + 0x58], 0x1043ee70
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 0x10441758
call sub.setupapi.dll_SetupDiGetClassDevsW
mov dword [esp], eax
cmp dword [esp], 0xffffffff
je 0x101c78fe
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 0x101c72a9
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.101af4a0
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 0x101c78dd
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 0x101c7320
xor eax, eax
nop word cs:[eax + eax]
cmp word [esp + eax*2 + 0x108], 0
je 0x101c7380
inc eax
cmp eax, 0xc8
jne 0x101c7300
mov eax, 0xc8
jmp 0x101c738b
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 8], 0x10440cac
mov dword [esp + 0xc], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], 0x1002e030
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.100748a0
add esp, 4
mov eax, dword [esp + 0x38]
inc eax
jmp 0x101c72a9
cmp eax, 0xc9
jae 0x101c82ab
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.101ae730
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 0x101c7429
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 4]
inc esi
lea eax, [esp + 0x78]
push eax
push esi
push 0x10441758
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x10]
call sub.setupapi.dll_SetupDiEnumDeviceInterfaces
test eax, eax
je 0x101c7780
mov dword [esp + 4], edi
mov edi, 0xc8
mov dword [esp + 0x34], esi
mov dword [esp + 0x94], 0xc8
jmp 0x101c7477
mov edi, dword [esp + 0x94]
test edi, edi
je 0x101c74d0
js 0x101c8284
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x101c74a9
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c8274
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c8274
mov esi, eax
mov eax, dword [esp + 0x94]
jmp 0x101c74d7
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 0x101c7580
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
mov dword [esp + 0x98], eax
jne 0x101c7650
lea eax, [esp + 0x94]
mov dword [esp + 8], 0x10440de4
mov dword [esp + 0xc], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], 0x1002e030
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.100748a0
add esp, 4
test edi, edi
je 0x101c7470
push esi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c7470
lea eax, [esi + 4]
mov ecx, 0xffffffff
nop dword [eax + eax]
cmp word [eax + ecx*2 + 2], 0
lea ecx, [ecx + 1]
jne 0x101c7590
push ecx
push eax
lea eax, [esp + 0x10]
push eax
call fcn.10169f90
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.101769e0
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 0x101c76a5
js 0x101c82a1
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
mov dword [esp + 0xe4], edx
test eax, eax
jne 0x101c7626
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c828e
mov ecx, dword [0x1044eff8]
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 0x101c76aa
jmp 0x101c828e
lea eax, [esp + 0x98]
mov dword [esp + 8], 0x10440dac
mov dword [esp + 0xc], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], 0x1002e030
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.100748a0
add esp, 4
test edi, edi
jne 0x101c7762
jmp 0x101c7420
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 0x101c76db
cmp dword [esp + 0xb4], 0
je 0x101c76db
push dword [esp + 0x2c]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xc], 0
je 0x101c76f4
push dword [esp + 8]
push 0
mov eax, dword [0x1044eff8]
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 0x101c7730
lea ecx, [esp + 0x3c]
call fcn.101aae70
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
jmp 0x101c7734
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 0x101c7420
push esi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c7420
call sub.KERNEL32.dll_GetLastError
lea esi, [esp + 0x108]
cmp eax, 0x103
mov dword [esp + 0x98], eax
je 0x101c7260
cmp dword [esp + 0x9c], 0
je 0x101c783d
lea eax, [esp + 0x98]
mov dword [esp + 8], 0x10440d68
mov dword [esp + 0xc], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], 0x1002e030
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
lea eax, [esp + 8]
push eax
call fcn.100748a0
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.101af4a0
jmp 0x101c72a4
lea eax, [esp + 0x98]
mov dword [esp + 8], 0x10440d00
mov dword [esp + 0xc], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x4c], 0x1002e030
mov dword [esp + 0x50], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x54], 0x101ab600
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 2
lea eax, [esp + 8]
push eax
call fcn.100748a0
add esp, 4
cmp dword [esp + 0x40], 0
je 0x101c78b1
push dword [esp + 0x3c]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xbc], 0
mov eax, dword [esp + 0x38]
je 0x101c72a8
push dword [esp + 0xb8]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c72a4
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x103
mov dword [esp + 0x48], eax
jne 0x101c7a13
push dword [esp]
call sub.setupapi.dll_SetupDiDestroyDeviceInfoList
jmp 0x101c7a76
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xc4]
mov dword [esp + str.Failed_to_get_device_info_set:], 0x10440e0c
mov dword [esp + 0x10c], 1
mov dword [esp + 0x118], 0
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], 0x1002e030
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], 1
lea ecx, [esp + 0x108]
lea eax, [esp + 8]
push ecx
push eax
call fcn.1001b0a0
add esp, 8
movq xmm0, qword [esp + 8]
mov eax, dword [esp + 0x10]
mov edi, dword [0x1044f00c]
mov ebx, dword [0x1044eff8]
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 0x101c79b4
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c8302
mov dword [ebx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c8302
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 0x101c79f0
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c7a02
mov dword [ebx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x101c8082
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c834d
push dword [esp]
call sub.setupapi.dll_SetupDiDestroyDeviceInfoList
cmp dword [esp + 0x64], 0
je 0x101c7f7c
lea eax, [esp + 0x48]
lea ecx, [esp + 8]
mov dword [esp + str._WARNINGDEVICES__Error_on_device_iteration:_._Using_available_devices], 0x10440c70
mov dword [esp + 0x10c], 2
mov dword [esp + 0x118], 0
mov dword [esp + 8], eax
mov dword [esp + 0x110], ecx
mov dword [esp + 0xc], 0x1002e030
mov dword [esp + 0x114], 1
push esi
call fcn.100748a0
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 0x101c809f
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.10185010
add esp, 4
test eax, eax
je 0x101c8310
mov dword [esp + 8], 0x1043ee70
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 0x101c7b91
lea ecx, [esi + 1]
mov edx, 0x1c
xor ebx, ebx
mov eax, ecx
mul edx
jo 0x101c7b8b
add eax, 0xf
jb 0x101c7b8b
and eax, 0xfffffff0
add esi, 0x11
add esi, eax
jb 0x101c7b8b
cmp esi, 0x7ffffff1
jb 0x101c826a
mov edx, edi
sub edx, eax
jmp 0x101c7b98
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 0x101c7c06
xor esi, esi
jmp 0x101c8220
push dword [esp + 0xa0]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp]
mov edx, dword [esp + 4]
test esi, esi
mov eax, edx
je 0x101c8215
test ax, ax
je 0x101c7c20
lea edx, [eax - 1]
and edx, eax
jmp 0x101c7c44
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe40
add ebx, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x101c7c20
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 0x101c8217
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], 0x1002e030
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], 0x10441708
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.1001b0a0
add esp, 8
mov eax, dword [esp + 0x80]
movq xmm0, qword [esp + 0x78]
mov dword [esp + str._DEBUGSTORE__Found_physical_storage_device:], 0x10441798
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], 0x101ab600
mov dword [esp + 0x34], eax
lea eax, [esp + 0x108]
push eax
call fcn.100748a0
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.101c6bb0
add esp, 8
cmp byte [esp + 0x13d], 2
jne 0x101c7ea0
movq xmm0, qword [esp + 0x108]
lea eax, [esp + 0x3c]
mov dword [esp + 0x78], 0x104417d4
mov dword [esp + 0x7c], 1
mov dword [esp + 0x88], 0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x4c], fcn.10167360
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 1
movq qword [esp + 0x3c], xmm0
lea eax, [esp + 0x78]
push eax
call fcn.100748a0
add esp, 4
cmp byte [esp + 0x3c], 3
jne 0x101c7f2e
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 0x101c7f57
cmp dword [esi + 8], 9
jae 0x101c7f41
mov eax, dword [esp + 0x30]
jmp 0x101c7f48
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.101afbe0
cmp dword [esp + 0xa4], 0
jne 0x101c7be0
jmp 0x101c7bf5
mov eax, dword [esp + 0x30]
mov eax, dword [eax - 4]
push eax
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x34]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xa4], 0
jne 0x101c7be0
jmp 0x101c7bf5
lea eax, [esp + 0x48]
mov dword [esp + str.error_on_device_enumeration:], 0x10440c20
mov dword [esp + 0x10c], 1
mov dword [esp + 0x118], 0
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], 0x1002e030
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], 1
push esi
lea eax, [esp + 0xc]
push eax
call fcn.1001b0a0
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 [0x1044f00c]
movq qword [esp + 0x78], xmm0
movq qword [esp + 0x108], xmm0
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x101c8020
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c8333
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c8333
mov esi, eax
mov eax, dword [esp + 0x80]
mov dword [esi + 8], eax
mov eax, dword [0x1044f00c]
movq xmm0, qword [esp + 0x78]
movq qword [esi], xmm0
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x101c8070
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c8341
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c8341
mov dword [eax], esi
mov ebx, eax
mov esi, 3
mov dword [eax + 4], 0x1043ef0c
mov byte [eax + 8], 0x27
lea ecx, [esp + 0x58]
call fcn.101a38d0
lea eax, [esp + 0x78]
mov dword [esp + str.failed_to_get_storage_devices:], 0x104417fc
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.10167360
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], 1
lea ebx, [esp + 0x108]
lea eax, [esp + 0x58]
push ebx
push eax
call fcn.1001b0a0
add esp, 8
movq xmm0, qword [esp + 0x58]
mov eax, dword [esp + 0x60]
mov edi, dword [0x1044f00c]
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 [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x101c8150
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c82e6
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c82e6
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 [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x101c8198
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c82f4
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c82f4
mov dword [eax], esi
mov dword [eax + 4], 0x1043ef0c
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 0x101c825f
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 0x101c8204
cmp dword [ebx + 8], 9
jb 0x101c81f5
mov edi, dword [edi - 4]
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
push esi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c825f
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.101a3400
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 0x101c7b8b
push edi
push 1
call fcn.1001ac80
add esp, 8
jmp 0x101c834d
call fcn.1001ac40
jmp 0x101c834d
push dword [esp + 0x30]
push 1
call fcn.1001ac80
add esp, 8
jmp 0x101c834d
call fcn.1001ac40
jmp 0x101c834d
push 0x10443618
push 0xc8
push eax
call fcn.1002ac30
add esp, 0xc
jmp 0x101c834d
lea eax, [esp + 0x108]
push 0x1043e43c
push 0x1043ec44
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.10027650
add esp, 0x14
ud2
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c834d
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c834d
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c834d
push 0x1043e43c
push 0x1043ec44
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.10027650
add esp, 0x14
jmp 0x101c834d
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c834d
push 0xc
push 4
call fcn.1001ac80
add esp, 8
ud2