Function at 0x101c29c0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1b0
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
test eax, eax
je 0x101c2f66
mov ebx, dword [edi]
movzx edx, byte [ebx]
test dl, dl
js 0x101c29eb
lea edi, [ebx + 1]
jmp 0x101c2a4e
movzx esi, byte [ebx + 1]
mov ecx, edx
and ecx, 0x1f
and esi, 0x3f
cmp dl, 0xdf
jbe 0x101c2a3a
mov dword [esp + 4], edx
movzx edx, byte [ebx + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp byte [esp + 4], 0xf0
jb 0x101c2a46
movzx esi, byte [ebx + 3]
shl edx, 6
and ecx, 7
shl ecx, 0x12
and esi, 0x3f
or esi, edx
mov edx, esi
or edx, ecx
cmp edx, 0x110000
je 0x101c2f66
lea edi, [ebx + 4]
jmp 0x101c2a4e
shl ecx, 6
lea edi, [ebx + 2]
or ecx, esi
mov edx, ecx
jmp 0x101c2a4e
shl ecx, 0xc
lea edi, [ebx + 3]
or edx, ecx
add ebx, eax
mov ecx, 3
mov dword [esp + 0xc], edi
lea eax, [ebx + 3]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
sub eax, edi
shr eax, 2
cmp eax, 4
cmovae ecx, eax
xor ebx, ebx
cmp ecx, 0x1fffffff
setb al
jae 0x101c40ce
mov bl, al
lea esi, [ecx*4 + 4]
inc ecx
shl ebx, 2
test esi, esi
js 0x101c40ce
mov dword [esp + 4], ecx
je 0x101c2c8c
mov eax, dword [0x1044f00c]
mov edi, edx
movzx eax, byte [eax]
mov eax, dword [0x1044eff8]
mov eax, dword [eax]
test eax, eax
jne 0x101c2ac9
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c2c96
mov ecx, dword [0x1044eff8]
mov dword [ecx], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, eax
mov edx, edi
test ecx, ecx
je 0x101c2c96
mov eax, dword [esp + 0xc]
mov dword [ecx], edx
mov dword [esp + 8], ecx
cmp eax, dword [esp + 0x14]
je 0x101c2ca5
mov eax, dword [esp + 0xc]
mov esi, 1
mov edx, ecx
jmp 0x101c2b18
mov edi, eax
mov eax, dword [esp + 0xc]
mov dword [edx + esi*4], ebx
inc esi
mov dword [esp + 4], edi
cmp eax, dword [esp + 0x14]
je 0x101c2cb1
movzx ebx, byte [eax]
test bl, bl
js 0x101c2b40
inc eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
cmp esi, eax
jne 0x101c2b00
jmp 0x101c2be0
movzx edi, byte [eax + 1]
mov ecx, ebx
and ecx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x101c2b9d
mov dword [esp], edx
movzx edx, byte [eax + 2]
shl edi, 6
and edx, 0x3f
or edx, edi
cmp bl, 0xf0
jb 0x101c2bb8
movzx ebx, byte [eax + 3]
and ecx, 7
shl edx, 6
shl ecx, 0x12
and ebx, 0x3f
or ebx, edx
or ebx, ecx
cmp ebx, 0x110000
je 0x101c2cad
add eax, 4
mov dword [esp + 0xc], eax
mov edx, dword [esp]
mov eax, dword [esp + 4]
cmp esi, eax
jne 0x101c2b00
jmp 0x101c2be0
shl ecx, 6
add eax, 2
or ecx, edi
mov dword [esp + 0xc], eax
mov ebx, ecx
mov eax, dword [esp + 4]
cmp esi, eax
je 0x101c2be0
jmp 0x101c2b00
shl ecx, 0xc
add eax, 3
or edx, ecx
mov dword [esp + 0xc], eax
mov ebx, edx
mov edx, dword [esp]
mov eax, dword [esp + 4]
cmp esi, eax
jne 0x101c2b00
nop word cs:[eax + eax]
nop
mov edi, dword [esp + 0x10]
sub edi, dword [esp + 0xc]
shr edi, 2
inc edi
add edi, eax
jb 0x101c4090
add eax, eax
cmp eax, edi
cmova edi, eax
cmp edi, 5
jae 0x101c2c05
mov edi, 4
lea eax, [edi*4]
xor edx, edx
cmp edi, 0x20000000
mov dword [esp], eax
mov eax, dword [esp + 4]
setb dl
shl edx, 2
test eax, eax
je 0x101c2c42
lea ecx, [eax*4]
mov eax, dword [esp + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], ecx
jmp 0x101c2c4a
mov dword [esp + 0x1c], 0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x60]
push eax
push dword [esp + 4]
call fcn.101aa9c0
add esp, 8
cmp dword [esp + 0x60], 0
mov edx, dword [esp + 0x64]
je 0x101c2c83
cmp edx, 0x80000001
jne 0x101c408c
mov edi, dword [esp + 4]
mov edx, dword [esp + 8]
jmp 0x101c2b02
mov dword [esp + 8], edx
jmp 0x101c2b02
mov ecx, ebx
test ecx, ecx
jne 0x101c2ade
push esi
push ebx
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
mov edi, dword [ebp + 0xc]
jmp 0x101c2f54
mov edi, dword [esp + 4]
cmp esi, 5
jb 0x101c2f4d
mov eax, dword [esp + 8]
cmp dword [eax], 0x5c
jne 0x101c2f4d
mov eax, dword [esp + 8]
cmp dword [eax + 4], 0x5c
jne 0x101c2f4d
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0x3f
jne 0x101c2f4d
mov eax, dword [esp + 8]
cmp dword [eax + 0xc], 0x5c
jne 0x101c2f4d
mov eax, dword [esp + 8]
cmp dword [eax + esi*4 - 4], 0x5c
jne 0x101c2f4d
test edi, edi
je 0x101c2d16
mov eax, dword [0x1044eff8]
push dword [esp + 8]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
test eax, eax
je 0x101c2d31
mov ecx, dword [edi]
dec eax
cmp byte [ecx + eax], 0x5c
jne 0x101c2d31
mov dword [edi + 8], eax
add eax, 0xffffffff
jb 0x101c2d23
lea eax, [esp + 0xc8]
mov dword [esp + 0xc8], edi
mov dword [esp + 0x18], 0x10440e14
mov dword [esp + 0x1c], 2
mov dword [esp + 0x28], 0
mov dword [esp + 0xcc], 0x101ab600
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.1001b0a0
add esp, 8
movq xmm0, qword [esp + 0x60]
mov eax, dword [esp + 0x68]
mov edx, dword [edi + 8]
mov ecx, dword [edi]
movq qword [esp + 0x130], xmm0
mov dword [esp + 0x138], eax
call fcn.101d5730
test al, al
je 0x101c3098
lea eax, [esp + 0x140]
push edi
push eax
call fcn.1001bce0
add esp, 8
mov edx, dword [esp + 0x148]
mov ecx, dword [esp + 0x140]
call fcn.101d5580
mov dword [esp + 0xc], edx
mov esi, eax
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
push eax
mov dword [esp + 0x30], eax
call sub.KERNEL32.dll_CreateFileW
cmp eax, 0xffffffff
je 0x101c3160
lea ebx, [esp + 0x11c]
mov dword [esp + 4], eax
mov dword [esp + 0x104], 0x38
mov dword [esp + 0x11c], 0
lea eax, [esp + 0x104]
mov dword [esp + 0x18], 0x10441020
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x64], 0x1002e030
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
lea eax, [esp + 0x18]
push eax
call fcn.100748a0
add esp, 4
mov eax, dword [esp + 0x104]
test eax, eax
je 0x101c2e92
js 0x101c40d8
push 1
mov esi, eax
push eax
call fcn.10001630
add esp, 8
test eax, eax
je 0x101c40e2
mov edi, eax
mov eax, dword [esp + 0x104]
jmp 0x101c2e9b
mov esi, eax
mov edi, 1
xor eax, eax
push 0
push ebx
push eax
push edi
push 0
push 0
push 0x560000
push dword [esp + 0x20]
call sub.KERNEL32.dll_DeviceIoControl
test eax, eax
jne 0x101c323a
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
mov dword [esp + 0xb0], eax
jne 0x101c32b0
lea eax, [esp + 0x104]
mov dword [esp + 0x18], 0x104410bc
mov dword [esp + 0x1c], 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x64], 0x1002e030
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 0x1002e030
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 2
lea eax, [esp + 0x18]
push eax
call fcn.100748a0
add esp, 4
mov eax, dword [esp + 0x11c]
test esi, esi
mov dword [esp + 0x104], eax
je 0x101c2e19
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c2e19
test edi, edi
mov edi, dword [ebp + 0xc]
je 0x101c2f66
mov eax, dword [0x1044eff8]
push dword [esp + 8]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
lea eax, [esp + 0xc8]
mov dword [esp + 0xc8], edi
mov dword [esp + 0x18], 0x10440ee8
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0xcc], 0x101ab600
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x18]
lea eax, [esp + 0x60]
push ecx
push eax
call fcn.1001b0a0
add esp, 8
movq xmm0, qword [esp + 0x60]
mov eax, dword [esp + 0x68]
mov edi, dword [0x1044f00c]
mov ebx, dword [0x1044eff8]
movq qword [esp + 0xc8], xmm0
mov dword [esp + 0xd0], eax
mov dword [esp + 0x20], eax
movq qword [esp + 0x18], xmm0
movzx eax, byte [edi]
mov eax, dword [ebx]
test eax, eax
jne 0x101c2ffd
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101c40ac
mov dword [ebx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c40ac
mov esi, eax
mov eax, dword [esp + 0xd0]
mov dword [esi + 8], eax
movq xmm0, qword [esp + 0xc8]
movq qword [esi], xmm0
movzx eax, byte [edi]
mov eax, dword [ebx]
test eax, eax
je 0x101c3036
mov edi, dword [ebp + 0xc]
jmp 0x101c3048
call sub.KERNEL32.dll_GetProcessHeap
mov edi, dword [ebp + 0xc]
test eax, eax
je 0x101c40bd
mov dword [ebx], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101c40bd
mov ecx, dword [ebp + 8]
mov dword [eax], esi
mov dword [eax + 4], 0x1043ef0c
mov byte [eax + 8], 0x27
mov dword [ecx + 4], eax
mov dword [ecx], 3
mov byte [ecx + 0x54], 2
cmp dword [edi + 4], 0
je 0x101c308d
mov eax, dword [0x1044eff8]
push dword [edi]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0xc8]
mov dword [esp + 0xc8], edi
mov dword [esp + 0x18], 0x10440ec0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0xcc], 0x101ab600
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.1001b0a0
add esp, 8
mov eax, dword [esp + 0x68]
movq xmm0, qword [esp + 0x60]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x20], eax
mov eax, dword [0x1044f00c]
movq qword [esp + 0xc8], xmm0
movq qword [esp + 0x18], xmm0
movzx eax, byte [eax]
push 4
push 0xc
call fcn.10001510
add esp, 8
test eax, eax
je 0x101c4130
mov ecx, dword [esp + 0xd0]
mov dword [eax + 8], ecx
movq xmm0, qword [esp + 0xc8]
movq qword [eax], xmm0
push 0x1043ef0c
push eax
push 0x27
lea eax, [esp + 0x24]
push eax
call fcn.10166fa0
add esp, 0x10
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
jmp 0x101c375c
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0xb0], eax
push 0xffffffffffffffff
call sub.KERNEL32.dll_CloseHandle
lea eax, [esp + 0xb0]
mov dword [esp + 0x18], 0x1044113c
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0xcc], 0x1002e030
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.1001b0a0
add esp, 8
mov eax, dword [esp + 0x68]
movq xmm0, qword [esp + 0x60]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x20], eax
mov eax, dword [0x1044f00c]
movq qword [esp + 0xc8], xmm0
movq qword [esp + 0x18], xmm0
movzx eax, byte [eax]
push 4
push 0xc
call fcn.10001510
add esp, 8
test eax, eax
je 0x101c4152
mov ecx, dword [esp + 0xd0]
mov dword [eax + 8], ecx
movq xmm0, qword [esp + 0xc8]
movq qword [eax], xmm0
push 0x1043ef0c
push eax
push 0x27
lea eax, [esp + 0x24]
push eax
call fcn.10166fa0
add esp, 0x10
jmp 0x101c3431
test esi, esi
je 0x101c33a5
mov ebx, dword [edi]
test ebx, ebx
je 0x101c3fad
xor edx, edx
cmp ebx, 0x5555556
setb al
jae 0x101c418e
lea ecx, [ebx*8]
mov dl, al
lea ecx, [ecx + ecx*2]
shl edx, 3
test ecx, ecx
js 0x101c418e
mov dword [esp + 8], edx
je 0x101c3296
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
push edx
push ecx
mov dword [esp + 8], ecx
call fcn.10001510
mov ecx, dword [esp + 8]
add esp, 8
mov edx, eax
test edx, edx
jne 0x101c3fb4
push ecx
push dword [esp + 0xc]
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
push dword [esp + 4]
call sub.KERNEL32.dll_CloseHandle
lea eax, [esp + 0xb0]
mov dword [esp + 0x18], 0x10441114
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0xcc], 0x1002e030
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.1001b0a0
add esp, 8
mov eax, dword [esp + 0x68]
movq xmm0, qword [esp + 0x60]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x20], eax
mov eax, dword [0x1044f00c]
movq qword [esp + 0xc8], xmm0
movq qword [esp + 0x18], xmm0
movzx eax, byte [eax]
push 4
push 0xc
call fcn.10001510
add esp, 8
test eax, eax
je 0x101c4180
mov ecx, dword [esp + 0xd0]
mov dword [eax + 8], ecx
movq xmm0, qword [esp + 0xc8]
movq qword [eax], xmm0
push 0x1043ef0c
push eax
push 0x27
lea eax, [esp + 0x24]
push eax
call fcn.10166fa0
add esp, 0x10
xor ebx, ebx
test esi, esi
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 4], eax
je 0x101c343f
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c343f
push dword [esp + 4]
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
push 1
push 0x24
call fcn.10001510
add esp, 8
test eax, eax
je 0x101c4195
mov ebx, eax
push 0x24
push str.No_extents_found._Should_not_happen._DEBUGVOLUME__Found_Volume__disk_extents:
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x1044f00c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], 0x24
mov dword [esp + 0x20], 0x24
movzx eax, byte [eax]
push 4
push 0xc
call fcn.10001510
add esp, 8
test eax, eax
je 0x101c41a3
mov dword [eax], ebx
mov dword [eax + 4], 0x24
mov dword [eax + 8], 0x24
push 0x1043ef0c
push eax
push 0x27
lea eax, [esp + 0x24]
push eax
call fcn.10166fa0
add esp, 0x10
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0xc], 0
mov word [ecx], 0
je 0x101c345e
mov eax, dword [0x1044eff8]
push ecx
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x144], 0
je 0x101c347d
mov eax, dword [0x1044eff8]
push dword [esp + 0x140]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
test ebx, ebx
je 0x101c36e5
mov eax, dword [esp + 4]
mov dword [esp + 0x164], edi
mov dword [esp + 0x168], ebx
mov dword [esp + 0x170], esi
mov dword [esp + 0x16c], eax
mov esi, dword [ebp + 0xc]
lea edi, [esp + 0x174]
push esi
push edi
call fcn.1001bce0
add esp, 8
lea eax, [esp + 0x130]
lea ecx, [esp + 0x180]
push eax
push ecx
call fcn.1001bce0
add esp, 8
movq xmm0, qword [esp + 0x164]
movq xmm1, qword [esp + 0x16c]
movq qword [esp + 0x1a0], xmm1
movq qword [esp + 0x198], xmm0
lea edi, [esp + 0x18c]
push esi
push edi
call fcn.1001bce0
add esp, 8
lea eax, [esp + 0xa4]
push edi
push eax
call fcn.1001bce0
add esp, 8
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa4]
test edx, edx
je 0x101c3530
cmp byte [edx + ecx - 1], 0x5c
je 0x101c3566
cmp edx, dword [esp + 0xa8]
jne 0x101c3553
lea ecx, [esp + 0xa4]
call fcn.101aafc0
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xac]
mov byte [ecx + edx], 0x5c
inc edx
mov dword [esp + 0xac], edx
mov ecx, dword [esp + 0xa4]
call fcn.101d5580
mov dword [esp + 4], eax
mov dword [esp + 0x12c], edx
lea edi, [esp + 0x98]
mov dword [esp + 0x98], 5
mov dword [esp + 0x100], 0
lea eax, [esp + 0x60]
mov dword [esp + 0x60], edi
mov dword [esp + 0x18], 0x10441170
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x64], 0x1002e030
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
lea eax, [esp + 0x18]
push eax
call fcn.100748a0
add esp, 4
mov esi, dword [esp + 0x98]
test esi, esi
je 0x101c360e
xor ebx, ebx
cmp esi, 0x40000000
setb al
jae 0x101c40f2
mov bl, al
mov edi, esi
add esi, esi
add ebx, ebx
test esi, esi
js 0x101c40f2
je 0x101c3617
push ebx
push esi
call fcn.10001630
add esp, 8
jmp 0x101c3619
mov ebx, 2
xor eax, eax
jmp 0x101c3635
mov eax, ebx
test eax, eax
je 0x101c40fc
mov ecx, eax
mov eax, dword [esp + 0x98]
mov esi, edi
lea edi, [esp + 0x98]
mov ebx, ecx
lea ecx, [esp + 0x100]
push ecx
push eax
push ebx
push dword [esp + 0x10]
call sub.KERNEL32.dll_GetVolumePathNamesForVolumeNameW
test eax, eax
jne 0x101c3790
call sub.KERNEL32.dll_GetLastError
cmp eax, 0xea
mov dword [esp + 0xc8], eax
jne 0x101c3d9d
lea eax, [esp + 0x100]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], 0x1002e030
mov dword [esp + 0x18], 0x104412e8
mov dword [esp + 0x1c], 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x68], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x6c], 0x1002e030
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 2
lea eax, [esp + 0x18]
push eax
call fcn.100748a0
add esp, 4
mov eax, dword [esp + 0x100]
test esi, esi
mov dword [esp + 0x98], eax
je 0x101c3593
push ebx
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c3593
mov eax, dword [esp + 4]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xcc], esi
lea esi, [esp + 0xc8]
mov dword [esp + 0x18], 0x10440e6c
mov dword [esp + 0x1c], 3
mov dword [esp + 0x28], 0
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], 0x101ab600
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], fcn.10167360
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 2
lea eax, [esp + 0x18]
push eax
call fcn.100748a0
add esp, 4
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov edx, dword [ebp + 8]
cmp dword [esp + 0x134], 0
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 0x54], 2
je 0x101c3077
mov eax, dword [0x1044eff8]
push dword [esp + 0x130]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c3077
push 0
call fcn.10185010
add esp, 4
test eax, eax
je 0x101c4160
mov dword [esp + 0x140], 0x1043ee70
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
test esi, esi
mov dword [eax], edx
mov dword [eax + 4], ecx
movdqu xmmword [esp + 0x150], xmm0
je 0x101c3d5f
lea eax, [esi + esi]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x101c3819
inc edi
cmp esi, edi
mov eax, edi
jbe 0x101c3d5f
mov edi, dword [esp + 0x14]
sub esi, eax
lea ecx, [ebx + eax*2]
sub edi, eax
sub edi, eax
xor edx, edx
cmp word [ecx + edx*2], 0
je 0x101c3837
inc edx
add edi, 0xfffffffe
jne 0x101c3828
mov edx, esi
mov esi, dword [esp + 0xc]
test edx, edx
je 0x101c3d5f
mov edi, edx
add edi, eax
jb 0x101c411f
cmp edi, esi
ja 0x101c410b
push edx
push ecx
lea eax, [esp + 0x10c]
push eax
call fcn.10169f90
add esp, 0xc
push dword [esp + 0x10c]
push dword [esp + 0x108]
lea eax, [esp + 0x68]
push eax
call fcn.1002ad90
add esp, 0xc
cmp dword [esp + 0x60], 0
jne 0x101c3890
mov eax, dword [esp + 0x68]
mov dword [esp], eax
jne 0x101c3976
mov eax, dword [esp + 0x64]
test eax, eax
je 0x101c3976
mov dword [esp + 0x114], eax
mov eax, dword [esp]
mov dword [esp + 0x60], 0x104411e0
mov dword [esp + 0x64], 2
mov dword [esp + 0x70], 0
mov dword [esp + 0x118], eax
lea eax, [esp + 0xa4]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x114]
mov dword [esp + 0xb4], 0x101ab600
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0xbc], 0x101a2960
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 2
lea eax, [esp + 0x60]
push eax
call fcn.100748a0
add esp, 4
mov esi, dword [esp + 0x118]
cmp esi, 4
jae 0x101c39ef
test esi, esi
je 0x101c3bb3
mov ecx, dword [esp + 0x114]
mov esi, dword [esp + 0xc]
movzx eax, byte [ecx]
test al, al
jns 0x101c3bc4
movzx edx, byte [ecx + 1]
mov ebx, eax
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x101c3bbb
movzx ecx, byte [ecx + 2]
shl edx, 6
shl eax, 0xc
and ecx, 0x3f
or ecx, edx
or eax, ecx
jmp 0x101c3bc0
lea eax, [esp + 0x104]
mov dword [esp + 0x60], 0x104412bc
mov dword [esp + 0x64], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0xb4], 0x1016c1c0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 1
lea eax, [esp + 0x60]
push eax
call fcn.100748a0
add esp, 4
cmp dword [esp + 0x108], 0
je 0x101c380e
push dword [esp + 0x104]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c380e
test esi, esi
js 0x101c413e
mov eax, dword [esp + 0x114]
mov dword [esp + 8], eax
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
push 1
push esi
call fcn.10001510
add esp, 8
test eax, eax
je 0x101c4145
mov ebx, eax
push esi
push dword [esp + 0xc]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], esi
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x64]
push eax
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
call fcn.101c55f0
add esp, 8
cmp dword [esp + 0x60], 0x110001
jne 0x101c3b41
movq xmm0, qword [esp + 0x64]
lea eax, [esp + 0x114]
mov dword [esp + 0xb0], 0x1044122c
mov dword [esp + 0xb4], 2
mov dword [esp + 0xc0], 0
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x9c]
mov dword [esp + 0x120], 0x101a2960
mov dword [esp + 0x124], eax
lea eax, [esp + 0x11c]
mov dword [esp + 0x128], fcn.10167360
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 2
movq qword [esp + 0x9c], xmm0
lea eax, [esp + 0xb0]
push eax
call fcn.100748a0
add esp, 4
cmp byte [esp + 0x9c], 3
jne 0x101c39c7
mov eax, dword [esp + 0xa0]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esi]
push ebx
call eax
add esp, 4
cmp dword [esi + 4], 0
je 0x101c3b3c
cmp dword [esi + 8], 9
jb 0x101c3b2d
mov ebx, dword [ebx - 4]
push ebx
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101c3cb6
movsd xmm2, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x80]
movq xmm0, qword [esp + 0x90]
movsd qword [esp + 0x40], xmm2
movsd qword [esp + 0x38], xmm1
movsd xmm2, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x70]
movq qword [esp + 0x48], xmm0
movsd qword [esp + 0x30], xmm2
movsd qword [esp + 0x28], xmm1
movsd xmm2, qword [esp + 0x60]
movq xmm1, qword [esp + 0x68]
movq qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm2
lea ecx, [esp + 0x140]
lea edx, [esp + 0x18]
call fcn.101af740
jmp 0x101c39c7
mov esi, dword [esp + 0xc]
xor eax, eax
jmp 0x101c3bc4
shl eax, 6
or eax, edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x160], eax
push eax
lea eax, [esp + 0x64]
push eax
call fcn.101c5100
add esp, 8
cmp dword [esp + 0x60], 0x110001
jne 0x101c3cd5
movq xmm0, qword [esp + 0x64]
lea eax, [esp + 0x160]
mov dword [esp + 0xb0], 0x10441278
mov dword [esp + 0xb4], 2
mov dword [esp + 0xc0], 0
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x9c]
mov dword [esp + 0x120], fcn.1002a840
mov dword [esp + 0x124], eax
lea eax, [esp + 0x11c]
mov dword [esp + 0x128], fcn.10167360
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 2
movq qword [esp + 0x9c], xmm0
lea eax, [esp + 0xb0]
push eax
call fcn.100748a0
add esp, 4
cmp byte [esp + 0x9c], 3
jne 0x101c39c7
mov eax, dword [esp + 0xa0]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esi]
push ebx
call eax
add esp, 4
cmp dword [esi + 4], 0
je 0x101c3cb6
cmp dword [esi + 8], 9
jb 0x101c3ca7
mov ebx, dword [ebx - 4]
push ebx
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 8]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
jmp 0x101c39c7
movsd xmm2, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x80]
movq xmm0, qword [esp + 0x90]
movsd qword [esp + 0xf0], xmm2
movsd qword [esp + 0xe8], xmm1
movsd xmm2, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x70]
movq qword [esp + 0xf8], xmm0
movsd qword [esp + 0xe0], xmm2
movsd qword [esp + 0xd8], xmm1
movsd xmm2, qword [esp + 0x60]
movq xmm1, qword [esp + 0x68]
movq qword [esp + 0xd0], xmm1
movsd qword [esp + 0xc8], xmm2
lea ecx, [esp + 0x140]
lea edx, [esp + 0xc8]
call fcn.101af740
jmp 0x101c39c7
movsd xmm1, qword [esp + 0x150]
movq xmm0, qword [esp + 0x158]
movsd xmm2, qword [esp + 0x140]
movsd qword [esp + 0x70], xmm1
movq xmm1, qword [esp + 0x148]
movq qword [esp + 0x78], xmm0
movsd qword [esp + 0x60], xmm2
movq qword [esp + 0x68], xmm1
jmp 0x101c3e00
lea eax, [esp + 0xa4]
mov dword [esp + 0x18], 0x10441344
mov dword [esp + 0x1c], 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0x64], 0x101ab600
mov dword [esp + 0x68], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x6c], 0x1002e030
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 2
lea eax, [esp + 0x18]
push eax
call fcn.100748a0
add esp, 4
mov dword [esp + 0x60], 0
test esi, esi
je 0x101c3e13
push ebx
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 4]
cmp dword [esp + 0x12c], 0
mov word [eax], 0
je 0x101c3e35
push eax
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xa8], 0
je 0x101c3e54
push dword [esp + 0xa4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x190], 0
je 0x101c3e73
push dword [esp + 0x18c]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 0x18], str._ERRORSTORAGE__is_system_volume_is_not_implemented
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], str.called__Option::unwrap____on_a__None__valueIndex_out_of_bounds
mov dword [esp + 0x24], 0
lea esi, [esp + 0x18]
push esi
call fcn.100748a0
add esp, 4
push esi
call fcn.101d0850
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, 1
test eax, eax
je 0x101c3ece
mov edx, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
jmp 0x101c3ed2
mov dword [esp + 4], eax
movsd xmm0, qword [esp + 0x174]
mov ecx, dword [esp + 0x17c]
movsd xmm1, qword [esp + 0x180]
movsd xmm3, qword [esp + 0x198]
movsd xmm2, qword [esp + 0x78]
mov ebx, dword [ebp + 8]
lea esi, [esp + 0x18]
mov dword [esp + 0x50], ecx
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x54], xmm1
mov ecx, dword [esp + 0x188]
movsd xmm1, qword [esp + 0x1a0]
mov edi, ebx
mov dword [esp + 0x5c], ecx
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [esp + 0x70]
movsd qword [esp + 0x18], xmm3
movsd qword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0x60]
mov ecx, 0x12
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0x68]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x30], xmm1
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x48], edx
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 4]
cmp dword [esp + 0x134], 0
movzx edx, word [esp + 0x60]
movzx ecx, byte [esp + 0x62]
mov dword [ebx + 0x50], eax
mov byte [ebx + 0x54], 0
mov word [ebx + 0x55], dx
mov byte [ebx + 0x57], cl
je 0x101c3fa5
push dword [esp + 0x130]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [ebp + 0xc]
jmp 0x101c3077
mov edx, 8
xor ecx, ecx
lea eax, [edi + 8]
push ecx
push eax
push edx
mov esi, edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
push edi
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 4]
call sub.KERNEL32.dll_CloseHandle
lea eax, [esp + 0x140]
mov dword [esp + 0x18], 0x1044107c
mov dword [esp + 0x1c], 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0x64], 0x101ab600
mov dword [esp + 0x68], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x6c], 0x101c4ea0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 2
lea eax, [esp + 0x18]
push eax
call fcn.100748a0
add esp, 4
mov eax, dword [esp + 0xd0]
mov edi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xcc]
mov esi, dword [esp + 0xd4]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0xc], 0
mov word [ecx], 0
jne 0x101c344f
jmp 0x101c345e
test edx, edx
jne 0x101c409a
call fcn.1001ac40
jmp 0x101c41af
push dword [esp + 0x68]
push edx
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
call fcn.1001ac40
jmp 0x101c41af
call fcn.1001ac40
jmp 0x101c41af
push esi
push 1
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
call fcn.1001ac40
jmp 0x101c41af
push esi
push ebx
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
push 0x104411a0
push esi
push edi
call fcn.1002ac30
add esp, 0xc
jmp 0x101c41af
push 0x104411a0
push edi
push eax
call fcn.1002ac90
add esp, 0xc
jmp 0x101c41af
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
call fcn.1001ac40
jmp 0x101c41af
push esi
push 1
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
push 0x1043e43c
push 0x1043ec44
lea eax, [esp + 0x20]
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 0x101c41af
push 0xc
push 4
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
call fcn.1001ac40
jmp 0x101c41af
push 0x24
push 1
call fcn.1001ac80
add esp, 8
jmp 0x101c41af
push 0xc
push 4
call fcn.1001ac80
add esp, 8
ud2