Function at 0x44ff40
Capabilities:
Create process on windows
Encode data using base64
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x520
mov eax, dword [ebp + 8]
mov edi, dword [edx + 0x28]
mov dword [ebp - 0x78], ecx
mov esi, edx
call 0x44ff5c
pop ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x10c], eax
movzx eax, byte [edx + 0x2c]
test al, al
sete cl
test edi, edi
sete dl
and dl, cl
je 0x44ff9a
lea eax, [ebp - 0x118]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x60], eax
jmp 0x45084a
test al, al
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0x10], dl
mov dword [ebp - 0xec], 0
jne 0x450114
mov dword [ebp - 0x14], edi
call sub.KERNEL32.dll_GetEnvironmentStringsW
test eax, eax
je 0x452ef6
lea ebx, [ebp - 0x51c]
lea esi, [ebp - 0xdc]
lea edi, [ebp - 0xa4]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
nop word [eax + eax]
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x52c]
push eax
call sym.__LT_std..sys..windows..os..Env_u20_as_u20_core..iter..traits..iterator..Iterator_GT_::next::hfaa7d984ef661a86
add esp, 8
cmp byte [ebp - 0x520], 2
je 0x450103
movsd xmm0, qword [ebp - 0x52c]
movsd xmm1, qword [ebp - 0x524]
movsd qword [ebp - 0xb0], xmm1
movsd qword [ebp - 0xb8], xmm0
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
movsd qword [ebp - 0x6c], xmm1
movsd qword [ebp - 0x74], xmm0
add ecx, eax
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xa0], eax
mov word [ebp - 0x9c], 0
mov ecx, esi
mov edx, edi
call sym.__ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17h7cc955dd7
movsd xmm1, qword [ebp - 0x524]
movsd xmm0, qword [ebp - 0x52c]
lea ecx, [ebp - 0x4c]
mov eax, dword [ebp - 0xd4]
movsd xmm2, qword [ebx]
movsd qword [ebp - 0x54], xmm1
movsd xmm1, qword [ebp - 0xdc]
movsd qword [ebp - 0x5c], xmm0
mov dword [ecx + 8], eax
movsd qword [ebp - 0xa4], xmm2
movsd qword [ecx], xmm1
movsd xmm1, qword [ebx + 8]
movsd qword [ebp - 0x9c], xmm1
lea edx, [ebp - 0xf4]
mov ecx, esi
push edi
lea eax, [ebp - 0x5c]
push eax
call sym.alloc::collections::btree::map::BTreeMap_LT_K_C_V_C_A_GT_::insert::h335f67a185aba8dc
add esp, 8
cmp byte [ebp - 0xd0], 2
je 0x44fff0
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x44fff0
push 1
push eax
push dword [ebp - 0xd8]
call sym.___rust_dealloc
add esp, 0xc
jmp 0x44fff0
push dword [ebp - 0xe8]
call sub.KERNEL32.dll_FreeEnvironmentStringsW
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x14]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
xor edx, edx
test ecx, ecx
sete dl
cmove edi, ecx
add edx, edx
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xbc], edi
lea ecx, [ebp - 0xdc]
call sym.__ZN108__LT_alloc..collections..btree..map..Iter_LT_K_C_V_GT__u20_as_u20_core..iter..traits..iterator..Iterator_GT_4next17ha17
mov dword [ebp - 0x14], edx
mov edi, eax
test eax, eax
je 0x450666
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0xc], 2
jne 0x4502d0
mov esi, dword [ebp - 0xf0]
test esi, esi
je 0x450150
mov ebx, dword [ebp - 0xf4]
mov edx, ebx
lea ecx, [ebp - 0x74]
push dword [edi + 0x18]
push dword [edi + 0x14]
push esi
call sym.__ZN5alloc11collections5btree6search142__LT_impl_u20_alloc..collections..btree..node..NodeRef_LT_BorrowType_C_K_C_V_C_alloc..c
add esp, 0xc
cmp dword [ebp - 0x74], 0
jne 0x450150
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x68]
mov byte [ebp - 0x104], 0
test ecx, ecx
jne 0x4501e7
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x104]
lea ecx, [ebp - 0x52c]
push eax
call fcn.00417e10
add esp, 4
jmp 0x450569
movzx edx, word [eax + 0x1ea]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
jne 0x4501e0
movzx ecx, word [eax + 0x1ea]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], eax
dec ecx
mov dword [ebp - 0xe0], ecx
lea edx, [ebp - 0xe8]
lea eax, [ebp - 0x104]
lea ecx, [ebp - 0x52c]
push eax
call fcn.00417e10
add esp, 4
movsd xmm2, qword [ebp - 0x514]
movsd xmm1, qword [ebp - 0x51c]
mov eax, dword [ebp - 0x504]
movsd xmm0, qword [ebp - 0x50c]
mov edx, dword [ebp - 0x4fc]
mov ecx, dword [ebp - 0x4f8]
movsd qword [ebp - 0x8c], xmm2
movsd qword [ebp - 0x94], xmm1
movsd xmm2, qword [ebp - 0x52c]
movsd xmm1, qword [ebp - 0x524]
mov dword [ebp - 0x7c], eax
movsd qword [ebp - 0x84], xmm0
movsd qword [ebp - 0x9c], xmm1
movsd qword [ebp - 0xa4], xmm2
movzx eax, word [edx + 0x1ea]
cmp ecx, eax
mov eax, edx
jb 0x45044f
mov eax, dword [edx + 0xb0]
test eax, eax
je 0x45044d
movzx ecx, word [edx + 0x1e8]
mov edx, eax
cmp cx, word [eax + 0x1ea]
jae 0x4502a0
jmp 0x45044f
mov ebx, dword [edi + 8]
mov eax, dword [edi + 4]
test ebx, ebx
je 0x4502fc
mov dword [ebp - 0x1c], eax
js 0x452e04
push 1
push ebx
call sym.___rust_alloc
add esp, 8
mov esi, eax
test eax, eax
mov eax, dword [ebp - 0x1c]
jne 0x450301
jmp 0x452e0e
mov esi, 1
push ebx
push eax
push esi
call sym._memcpy
add esp, 0xc
movzx eax, byte [edi + 0xc]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], al
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x14]
test ecx, ecx
mov dword [ebp - 0x1c], ecx
je 0x450364
xor ebx, ebx
cmp ecx, 0x40000000
setb al
jae 0x452e1e
mov bl, al
lea esi, [ecx + ecx]
add ebx, ebx
test esi, esi
js 0x452e1e
je 0x45036d
push ebx
push esi
mov edi, edx
call sym.___rust_alloc
mov edx, edi
add esp, 8
mov edi, eax
test edi, edi
jne 0x450377
jmp 0x452e28
mov edi, 2
xor esi, esi
jmp 0x450377
mov edi, ebx
test edi, edi
je 0x452e28
push esi
push edx
push edi
call sym._memcpy
add esp, 0xc
movsd xmm0, qword [ebp - 0x5c]
movsd xmm1, qword [ebp - 0x54]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
movsd qword [ebp - 0x52c], xmm0
movsd qword [ebp - 0x524], xmm1
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x518], edi
mov dword [ebp - 0x514], eax
mov edi, dword [ecx + 8]
mov ebx, dword [ecx + 4]
test edi, edi
je 0x4503da
js 0x452e37
push 1
push edi
call sym.___rust_alloc
add esp, 8
mov esi, eax
test eax, eax
jne 0x4503df
jmp 0x452df4
mov esi, 1
push edi
push ebx
push esi
call sym._memcpy
add esp, 0xc
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + 0xc]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], edi
mov byte [ebp - 0x50], al
lea edx, [ebp - 0xf4]
lea eax, [ebp - 0x5c]
lea ecx, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x52c]
push eax
call sym.alloc::collections::btree::map::BTreeMap_LT_K_C_V_C_A_GT_::insert::h335f67a185aba8dc
add esp, 8
cmp byte [ebp - 0x98], 2
je 0x450150
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x450150
push 1
push eax
push dword [ebp - 0xa0]
call sym.___rust_dealloc
add esp, 0xc
jmp 0x450150
mov eax, edx
lea edx, [ebp - 0x88]
movsd xmm2, qword [ebp - 0x9c]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
shl ecx, 4
movsd qword [ebp - 0x524], xmm1
movsd qword [ebp - 0x52c], xmm0
mov edi, dword [eax + edx + 0xcc]
mov dword [ebp - 0x44], edi
mov edi, dword [ebp - 0x8c]
movsd xmm0, qword [eax + edx + 0xc4]
movsd qword [ebp - 0x4c], xmm0
movsd xmm0, qword [eax + edx + 0xb4]
movsd xmm1, qword [eax + edx + 0xbc]
movsd qword [ebp - 0x54], xmm1
movsd qword [ebp - 0x5c], xmm0
movsd xmm0, qword [ebp - 0x94]
movsd xmm1, qword [ebp - 0xa4]
mov dword [eax + edx + 0xcc], edi
movsd qword [eax + edx + 0xbc], xmm2
movsd qword [eax + edx + 0xb4], xmm1
movsd qword [eax + edx + 0xc4], xmm0
lea edx, [ebp - 0x40]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [ebp - 0x52c]
movsd xmm1, qword [ebp - 0x524]
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
movsd xmm1, qword [ebp - 0x54]
mov eax, dword [ebp - 0x34]
movsd xmm0, qword [ebp - 0x5c]
movsd xmm2, qword [ebp - 0x44]
movsd qword [ebp - 0x524], xmm1
movsd xmm1, qword [ebp - 0x4c]
mov dword [ebp - 0x504], eax
movsd qword [ebp - 0x52c], xmm0
movsd qword [ebp - 0x514], xmm2
movsd qword [ebp - 0x51c], xmm1
movsd xmm1, qword [ebp - 0x3c]
movsd qword [ebp - 0x50c], xmm1
movsd xmm2, qword [ebp - 0x514]
movsd xmm1, qword [ebp - 0x51c]
mov eax, dword [ebp - 0x504]
movsd xmm0, qword [ebp - 0x50c]
dec dword [ebp - 0xec]
cmp byte [ebp - 0x104], 0
movsd qword [ebp - 0x44], xmm2
movsd qword [ebp - 0x4c], xmm1
movsd xmm2, qword [ebp - 0x52c]
movsd xmm1, qword [ebp - 0x524]
mov dword [ebp - 0x34], eax
movsd qword [ebp - 0x3c], xmm0
movsd qword [ebp - 0x54], xmm1
movsd qword [ebp - 0x5c], xmm2
je 0x4505f7
test ebx, ebx
je 0x452ea7
mov eax, dword [esi + 0x1ec]
dec ebx
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xf4], ebx
mov dword [eax + 0xb0], 0
push 4
push 0x21c
push esi
call sym.___rust_dealloc
add esp, 0xc
cmp byte [ebp - 0x50], 2
je 0x450150
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x40]
movzx ebx, byte [ebp - 0x34]
test eax, eax
mov dword [ebp - 0x14], ecx
je 0x450638
push 1
push eax
push dword [ebp - 0x58]
mov byte [ebp - 0x1c], bl
mov ebx, esi
mov esi, edx
call sym.___rust_dealloc
mov edx, esi
mov esi, ebx
movzx ebx, byte [ebp - 0x1c]
add esp, 0xc
test edi, edi
je 0x45064a
add edi, edi
push 2
push edi
push edx
call sym.___rust_dealloc
add esp, 0xc
cmp bl, 2
je 0x450150
test esi, esi
je 0x450150
push 1
push esi
push dword [ebp - 0x14]
jmp 0x450440
movsd xmm0, qword [ebp - 0xf4]
mov ecx, dword [ebp - 0xec]
cmp byte [ebp - 0x10], 0
mov esi, dword [ebp - 0x28]
lea eax, [ebp - 0x118]
mov dword [ebp - 0x60], eax
movsd qword [ebp - 0x118], xmm0
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x11c], 1
je 0x4506aa
mov dword [ebp - 0x18], 0
jmp 0x45084a
push 1
push 4
call sym.___rust_alloc
add esp, 8
test eax, eax
je 0x452ed9
mov ecx, eax
mov dword [ebp - 0x5c], 4
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 4
mov dword [eax], 0x48544150
mov byte [ebp - 0x50], 0
add ecx, 4
mov dword [ebp - 0x52c], ecx
mov dword [ebp - 0x528], eax
mov word [ebp - 0x524], 0
lea ecx, [ebp - 0xa4]
lea edx, [ebp - 0x52c]
call sym.__ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17h7cc955dd7
movsd xmm1, qword [ebp - 0x54]
movsd xmm0, qword [ebp - 0x5c]
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x114]
movsd qword [ebp - 0x524], xmm1
movsd xmm1, qword [ebp - 0xa4]
movsd qword [ebp - 0x52c], xmm0
mov dword [ebp - 0x514], eax
mov dword [ebp - 0x10], eax
test edx, edx
movsd qword [ebp - 0x51c], xmm1
mov eax, dword [ebp - 0x518]
mov dword [ebp - 0x1c], eax
je 0x45080e
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], eax
movzx edi, word [edx + 0x1ea]
lea ecx, [edx + 0xb4]
mov ebx, 0xffffffff
mov dword [ebp - 0x24], edx
lea eax, [edi + edi*8]
mov dword [ebp - 0x2c], edi
lea esi, [eax + eax*2]
add esi, edi
lea edi, [edx - 8]
nop word [eax + eax]
test esi, esi
je 0x4507c3
lea eax, [ecx + 0x1c]
mov dword [ebp - 0x14], eax
push 1
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push dword [ebp - 0x10]
push dword [ebp - 0x1c]
call sub.KERNEL32.dll_CompareStringOrdinal
mov ecx, dword [ebp - 0x14]
add esi, 0xffffffe4
add edi, 0x10
inc ebx
cmp eax, 3
je 0x450790
cmp eax, 1
jne 0x4507e1
jmp 0x4507c6
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
sub eax, 1
jb 0x45103a
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov edx, dword [edx + ebx*4 + 0x1ec]
jmp 0x450764
cmp eax, 2
jne 0x452e41
cmp dword [ebp - 0x24], 0
mov esi, dword [ebp - 0x28]
je 0x45103d
mov eax, dword [edi - 4]
mov ecx, dword [edi]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x52c]
test eax, eax
jne 0x45081f
jmp 0x450830
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x52c]
test eax, eax
je 0x450830
push 1
push eax
push dword [ebp - 0x528]
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0x51c]
test eax, eax
je 0x45084a
add eax, eax
push 2
push eax
push dword [ebp - 0x1c]
call sym.___rust_dealloc
add esp, 0xc
mov esi, dword [esi + 0x18]
test esi, esi
je 0x45088a
mov eax, dword [ebp - 0x28]
mov ecx, sym.std::sys::windows::path::is_sep_byte::h47d53bf321b8bd3e
cmp esi, 4
mov dword [ebp - 0x14], esi
mov edx, dword [eax + 0x14]
jb 0x450872
cmp dword [edx], 0x5c3f5c5c
mov eax, sym.std::sys::windows::path::is_verbatim_sep::h82557e9a9e38d400
cmove ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
movzx ebx, byte [eax + edx - 1]
push ebx
call ecx
add esp, 4
mov edi, dword [ebp - 0x14]
test al, al
je 0x450900
mov eax, 0x4c3df4
mov dword [ebp - 0xb4], 2
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0x11c], 0
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xb0]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [edx + 8], 2
je 0x4509a1
mov ecx, dword [ebp - 0x114]
test ecx, ecx
je 0x45097d
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x528], edx
mov dword [ebp - 0x524], ecx
mov dword [ebp - 0x518], edx
mov dword [ebp - 0x514], ecx
xor ecx, ecx
jmp 0x450984
xor eax, eax
cmp edi, 3
mov ecx, 0
jbe 0x4509c9
mov esi, dword [ebp - 0x1c]
movzx ecx, byte [edi + esi - 4]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x2e
jne 0x4509c0
movzx ecx, byte [esi + edi - 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x4509c0
movzx ecx, byte [esi + edi - 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x78
jne 0x4509c4
mov ecx, ebx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, bl
cmp cl, 0x65
sete cl
jmp 0x4509c6
xor eax, eax
mov ecx, 2
mov dword [ebp - 0x52c], ecx
mov dword [ebp - 0x51c], ecx
mov dword [ebp - 0x50c], eax
lea ecx, [ebp - 0x52c]
call sym.__ZN4core3ptr132drop_in_place_LT_alloc..collections..btree..map..IntoIter_LT_std..sys..windows..process..EnvKey_C_std..ffi..os
cmp dword [ebp - 0x10c], 3
jb 0x4509b5
push dword [ebp - 0x108]
call sub.KERNEL32.dll_CloseHandle
add esp, 0x520
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
jmp 0x4509c9
xor ecx, ecx
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
add edx, edi
mov dword [ebp - 0x10], edx
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp dword [ebp - 0x14], eax
je 0x450a18
mov edx, dword [ebp - 0x1c]
movzx edx, byte [edx + eax]
cmp edx, 0x2f
je 0x4509f7
inc eax
cmp edx, 0x5c
jne 0x4509e0
test cl, cl
je 0x450abd
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0xb8]
push dword [ebp - 0x14]
call sym.std::sys::windows::args::to_user_path::h4df442d050149542
add esp, 4
jmp 0x4512b0
mov eax, dword [ebp - 0x1c]
xor esi, esi
jmp 0x450a2b
xor esi, esi
test cx, cx
je 0x450b92
mov cx, 1
test si, si
jne 0x450a20
cmp eax, dword [ebp - 0x10]
je 0x450bd6
movzx ebx, byte [eax]
test bl, bl
js 0x450a49
inc eax
mov edx, ebx
jmp 0x450a94
movzx edi, byte [eax + 1]
mov edx, ebx
and edx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x450a8c
movzx esi, byte [eax + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp bl, 0xf0
jb 0x450a9a
movzx edi, byte [eax + 3]
and edx, 7
shl esi, 6
add eax, 4
shl edx, 0x12
and edi, 0x3f
or edi, esi
or edx, edi
cmp edx, 0xffff
jbe 0x450a94
jmp 0x450aaa
shl edx, 6
add eax, 2
or edx, edi
xor esi, esi
mov ecx, edx
jmp 0x450a22
shl edx, 0xc
add eax, 3
or edx, esi
cmp edx, 0xffff
jbe 0x450a94
and edx, 0x3ff
or edx, 0xdc00
mov esi, edx
jmp 0x450a22
mov ebx, dword [ebp - 0x14]
test ebx, ebx
js 0x452f7e
mov edi, ebx
not edi
shr edi, 0x1f
push edi
push ebx
call sym.___rust_alloc
add esp, 8
test eax, eax
je 0x452ee5
mov esi, eax
push ebx
push dword [ebp - 0x1c]
push eax
call sym._memcpy
add esp, 0xc
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], 0
movsd xmm0, qword [ebp - 0x54]
movsd xmm1, qword [ebp - 0x5c]
movsd qword [ebp - 0x524], xmm0
movsd qword [ebp - 0x52c], xmm1
lea esi, [ebp - 0x52c]
push 4
push str..exeprogram_not_found
push esi
call sym.std::sys::windows::os_str::Buf::push_slice::hc42a579c220c4fd2
add esp, 0xc
movsd xmm0, qword [ebp - 0x52c]
movsd xmm1, qword [ebp - 0x524]
movsd qword [ebp - 0x54], xmm1
movsd qword [ebp - 0x5c], xmm0
mov esi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x54]
mov edx, esi
lea ecx, [ebp - 0x52c]
push ebx
call sym.std::sys::windows::process::program_exists::hec97a75245bd3c3b
add esp, 4
cmp dword [ebp - 0x528], 0
je 0x450ba6
mov eax, dword [ebp - 0x524]
movsd xmm0, qword [ebp - 0x52c]
mov dword [ebp - 0xac], eax
movsd qword [ebp - 0xb4], xmm0
mov dword [ebp - 0xb8], 0
jmp 0x45129d
mov dword [ebp - 0xb4], 2
mov eax, 0x4c3dc8
jmp 0x450899
push ebx
push esi
call sym.std::path::Path::file_name::h6985881757191b11
add esp, 8
test eax, eax
je 0x45128c
mov edi, edx
cmp edx, 2
jne 0x450c06
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x450c06
mov edi, 2
xor ecx, ecx
jmp 0x451271
mov eax, dword [ebp - 0x14]
cmp eax, 7
ja 0x450c48
mov ecx, dword [ebp - 0x1c]
dec eax
nop word cs:[eax + eax]
nop dword [eax]
sub eax, 1
setb dl
cmp byte [ecx], 0x2e
sete byte [ebp - 0x64]
je 0x450c5d
inc ecx
test dl, dl
je 0x450bf0
jmp 0x450c5d
mov dword [ebp - 0x18], ebx
xor ebx, ebx
mov ecx, eax
mov dword [ebp - 0x14], esi
cmp edi, ebx
je 0x451050
cmp byte [ecx + edi - 1], 0x2e
lea esi, [ecx - 1]
mov edx, ebx
lea ebx, [ebx + 1]
mov ecx, esi
jne 0x450c10
mov ecx, edi
sub ecx, ebx
mov dword [ebp - 0x24], ecx
inc ecx
cmp edi, ecx
jb 0x452faf
cmp edi, ebx
jne 0x451264
xor ecx, ecx
jmp 0x451056
push eax
push dword [ebp - 0x1c]
push 0x2e
call sym.core::slice::memchr::memchr_aligned::h704070fb681b6140
add esp, 0xc
cmp eax, 1
sete byte [ebp - 0x64]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x450d95
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xa0], eax
mov word [ebp - 0x9c], 0
mov byte [ebp - 0x98], 1
lea ebx, [ebp - 0xa4]
lea esi, [ebp - 0x52c]
push ebx
push esi
call sym.__LT_std..sys..windows..os..SplitPaths_u20_as_u20_core..iter..traits..iterator..Iterator_GT_::next::h725d1197528f12cd
add esp, 8
jmp 0x450cba
push ebx
push esi
call sym.__LT_std..sys..windows..os..SplitPaths_u20_as_u20_core..iter..traits..iterator..Iterator_GT_::next::h725d1197528f12cd
add esp, 8
movzx eax, byte [ebp - 0x520]
cmp al, 2
je 0x450d95
mov edi, dword [ebp - 0x524]
mov edx, dword [ebp - 0x52c]
mov ecx, dword [ebp - 0x528]
test edi, edi
jne 0x450cf1
test edx, edx
je 0x450cb0
push 1
push edx
push ecx
call sym.___rust_dealloc
add esp, 0xc
jmp 0x450cb0
lea ebx, [ebp - 0x51f]
lea esi, [ebp - 0x4f]
movzx ebx, word [ebx]
mov word [esi], bx
lea ebx, [ebp - 0x51f]
mov ah, byte [ebx + 2]
mov byte [esi + 2], ah
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edi
mov byte [ebp - 0x50], al
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x5c]
push eax
call sym.std::path::PathBuf::_push::hbc3c0e01fa08c7d5
add esp, 0xc
cmp byte [ebp - 0x64], 0
jne 0x450d43
push 3
push str.exeNULexit_code:
lea eax, [ebp - 0x5c]
push eax
call sym.std::path::PathBuf::_set_extension::h5e8a769efcc22bbb
add esp, 0xc
mov edi, dword [ebp - 0x58]
mov edx, edi
lea ecx, [ebp - 0x52c]
push dword [ebp - 0x54]
call sym.std::sys::windows::process::program_exists::hec97a75245bd3c3b
add esp, 4
mov eax, dword [ebp - 0x5c]
lea ebx, [ebp - 0xa4]
test eax, eax
je 0x450d72
push 1
push eax
push edi
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0x528]
lea esi, [ebp - 0x52c]
test eax, eax
jne 0x45238d
push ebx
push esi
call sym.__LT_std..sys..windows..os..SplitPaths_u20_as_u20_core..iter..traits..iterator..Iterator_GT_::next::h725d1197528f12cd
add esp, 8
jmp 0x450cba
lea ecx, [ebp - 0xa4]
call sym.std::sys::windows::os::current_exe::h97ba6ddc9c2d78cf
cmp byte [ebp - 0x98], 2
jne 0x450df2
cmp byte [ebp - 0xa4], 3
jne 0x450eb8
mov esi, dword [ebp - 0xa0]
mov eax, dword [esi + 4]
mov eax, dword [eax]
push dword [esi]
call eax
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x450de0
push dword [eax + 8]
push ecx
push dword [esi]
call sym.___rust_dealloc
add esp, 0xc
push 4
push 0xc
push esi
call sym.___rust_dealloc
add esp, 0xc
jmp 0x450eb8
movsd xmm0, qword [ebp - 0xa4]
movsd xmm1, qword [ebp - 0x9c]
movsd qword [ebp - 0x5c], xmm0
movsd qword [ebp - 0x54], xmm1
mov esi, dword [ebp - 0x54]
push esi
push dword [ebp - 0x58]
call sym.std::path::Path::parent::hb3622430265295ea
add esp, 8
test eax, eax
je 0x450e26
cmp esi, edx
jb 0x450e26
mov dword [ebp - 0x54], edx
movsd xmm0, qword [ebp - 0x5c]
movsd xmm1, qword [ebp - 0x54]
movsd qword [ebp - 0x524], xmm1
movsd qword [ebp - 0x52c], xmm0
lea edi, [ebp - 0x52c]
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
push edi
call sym.std::path::PathBuf::_push::hbc3c0e01fa08c7d5
add esp, 0xc
cmp byte [ebp - 0x64], 0
jne 0x450e6b
push 3
push str.exeNULexit_code:
push edi
call sym.std::path::PathBuf::_set_extension::h5e8a769efcc22bbb
add esp, 0xc
mov esi, dword [ebp - 0x528]
mov edx, esi
lea ecx, [ebp - 0xdc]
push dword [ebp - 0x524]
call sym.std::sys::windows::process::program_exists::hec97a75245bd3c3b
add esp, 4
mov eax, dword [ebp - 0x52c]
test eax, eax
je 0x450e9d
push 1
push eax
push esi
call sym.___rust_dealloc
add esp, 0xc
mov esi, dword [ebp - 0xd8]
test esi, esi
je 0x450eb8
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0xd4]
jmp 0x451330
mov edi, 0x200
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 2
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x24], 0
cmp edi, 0x201
jb 0x450f0e
jmp 0x450f20
jbe 0x450fb5
cmp edi, 0x201
jae 0x450f20
lea ebx, [ebp - 0x52c]
mov dword [ebp - 0x20], 0x200
mov esi, edi
jmp 0x450f60
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
sub edi, esi
sub eax, esi
cmp eax, edi
jae 0x450f4e
mov edx, esi
lea ecx, [ebp - 0xdc]
push edi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h3de3c257bacc48ea
add esp, 4
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
push 0
call sub.KERNEL32.dll_SetLastError
push esi
push ebx
call sub.KERNEL32.dll_GetSystemDirectoryW
mov edi, eax
test eax, eax
jne 0x450f81
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x451061
cmp edi, esi
jne 0x450f00
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x452ec0
lea edi, [esi + esi]
test esi, esi
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x450f20
jmp 0x450f0e
mov eax, dword [ebp - 0x20]
cmp edi, eax
ja 0x452f9e
lea esi, [ebp - 0x5c]
push edi
push ebx
push esi
call sym.__LT_std..ffi..os_str..OsString_u20_as_u20_std..os..windows..ffi..OsStringExt_GT_::from_wide::hb6f6a97bb780d583
add esp, 0xc
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
push esi
call sym.std::path::PathBuf::_push::hbc3c0e01fa08c7d5
add esp, 0xc
cmp byte [ebp - 0x64], 0
jne 0x450ff3
push 3
push str.exeNULexit_code:
push esi
call sym.std::path::PathBuf::_set_extension::h5e8a769efcc22bbb
add esp, 0xc
mov edi, dword [ebp - 0x58]
mov edx, edi
lea ecx, [ebp - 0xa4]
push dword [ebp - 0x54]
call sym.std::sys::windows::process::program_exists::hec97a75245bd3c3b
add esp, 4
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x45101c
push 1
push eax
push edi
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0xa0]
xor ebx, ebx
mov dword [ebp - 0x24], eax
mov al, 1
mov dword [ebp - 0x20], eax
jmp 0x451073
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x52c]
test eax, eax
jne 0x45081f
jmp 0x450830
mov ecx, eax
mov edx, edi
xor eax, eax
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
jmp 0x451271
mov dword [ebp - 0x20], 0
mov bl, 1
call sub.KERNEL32.dll_GetLastError
mov esi, eax
xor ecx, ecx
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x45108e
add eax, eax
push 2
push eax
push dword [ebp - 0x2c]
mov edi, ecx
call sym.___rust_dealloc
mov ecx, edi
add esp, 0xc
test esi, esi
sete al
or bl, al
cmp bl, 1
jne 0x451325
cmp byte [ebp - 0x20], 0
je 0x4510b3
test esi, esi
je 0x4510e9
test ecx, ecx
je 0x4510e9
add ecx, ecx
push 2
push ecx
jmp 0x4510e0
cmp cl, 3
jne 0x4510e9
mov eax, dword [esi + 4]
mov eax, dword [eax]
push dword [esi]
call eax
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4510dc
push dword [eax + 8]
push ecx
push dword [esi]
call sym.___rust_dealloc
add esp, 0xc
push 4
push 0xc
push esi
call sym.___rust_dealloc
add esp, 0xc
mov edi, 0x200
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 2
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x24], 0
cmp edi, 0x201
jb 0x451139
jmp 0x45114a
jbe 0x4511df
cmp edi, 0x201
jae 0x45114a
lea esi, [ebp - 0x52c]
mov dword [ebp - 0x20], 0x200
mov ebx, edi
jmp 0x45118a
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
sub edi, ebx
sub eax, ebx
cmp eax, edi
jae 0x451178
mov edx, ebx
lea ecx, [ebp - 0xdc]
push edi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h3de3c257bacc48ea
add esp, 4
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
push 0
call sub.KERNEL32.dll_SetLastError
push ebx
push esi
call sub.KERNEL32.dll_GetWindowsDirectoryW
mov edi, eax
test eax, eax
jne 0x4511ab
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x4512c2
cmp edi, ebx
jne 0x45112b
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x452f65
lea edi, [ebx + ebx]
test ebx, ebx
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x45114a
jmp 0x451139
mov eax, dword [ebp - 0x20]
cmp edi, eax
ja 0x452fc0
lea ebx, [ebp - 0x5c]
push edi
push esi
push ebx
call sym.__LT_std..ffi..os_str..OsString_u20_as_u20_std..os..windows..ffi..OsStringExt_GT_::from_wide::hb6f6a97bb780d583
add esp, 0xc
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
push ebx
call sym.std::path::PathBuf::_push::hbc3c0e01fa08c7d5
add esp, 0xc
cmp byte [ebp - 0x64], 0
jne 0x45121d
push 3
push str.exeNULexit_code:
push ebx
call sym.std::path::PathBuf::_set_extension::h5e8a769efcc22bbb
add esp, 0xc
mov edi, dword [ebp - 0x58]
mov edx, edi
lea ecx, [ebp - 0xa4]
push dword [ebp - 0x54]
call sym.std::sys::windows::process::program_exists::hec97a75245bd3c3b
add esp, 4
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x451246
push 1
push eax
push edi
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0xa0]
xor ebx, ebx
mov dword [ebp - 0x24], eax
mov al, 1
mov dword [ebp - 0x20], eax
jmp 0x4512d4
lea ecx, [esi + edi + 1]
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
test eax, eax
cmovne ecx, eax
test ecx, ecx
je 0x45128c
test eax, eax
cmove edi, edx
add ecx, edi
sub ecx, esi
cmp ebx, ecx
jb 0x45128c
mov ebx, ecx
mov dword [ebp - 0x54], ecx
mov edx, esi
lea ecx, [ebp - 0xb8]
push ebx
call sym.std::sys::windows::args::to_user_path::h4df442d050149542
add esp, 4
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x4512b0
push 1
push eax
push esi
call sym.___rust_dealloc
add esp, 0xc
cmp dword [ebp - 0xb8], 0
jne 0x45089f
jmp 0x451342
mov dword [ebp - 0x20], 0
mov bl, 1
call sub.KERNEL32.dll_GetLastError
mov esi, eax
xor ecx, ecx
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4512ef
add eax, eax
push 2
push eax
push dword [ebp - 0x2c]
mov edi, ecx
call sym.___rust_dealloc
mov ecx, edi
add esp, 0xc
test esi, esi
sete al
or bl, al
cmp bl, 1
jne 0x451325
cmp byte [ebp - 0x20], 0
je 0x451cf8
test esi, esi
lea ebx, [ebp - 0xa4]
je 0x451d34
test ecx, ecx
je 0x451d34
add ecx, ecx
push 2
push ecx
jmp 0x451d2b
mov ebx, dword [ebp - 0x24]
test esi, esi
je 0x451e9f
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xac], ebx
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb0]
mov ebx, dword [ebp - 0x28]
cmp ecx, 5
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x104], edx
mov dword [ebp - 0xfc], ecx
jb 0x451382
cmp word [eax + ecx*2 - 0xa], 0x2e
jne 0x451382
cmp word [eax + ecx*2 - 2], 0
je 0x451ad8
movzx eax, byte [ebx + 0x59]
mov esi, dword [ebx + 0x50]
mov edi, dword [ebx + 0x54]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 2
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x14], al
lea ecx, [ebp - 0x5c]
xor edx, edx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x1c]
mov word [eax + ecx*2], 0x22
mov eax, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0x528], ebx
mov word [ebp - 0x524], 0
lea ecx, [ebp - 0x5c]
lea edx, [ebp - 0x52c]
call sym.__ZN97__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_alloc..vec..spec_extend..SpecExtend_LT_T_C_I_GT__GT_11spec_extend17h64a0c0f
mov edx, dword [ebp - 0x54]
cmp edx, dword [ebp - 0x5c]
jne 0x4513fa
lea ecx, [ebp - 0x5c]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
mov word [eax + edx*2], 0x22
inc edx
test edi, edi
mov dword [ebp - 0x54], edx
je 0x451470
movzx eax, byte [ebp - 0x14]
shl edi, 2
lea edi, [edi + edi*4]
mov dword [ebp - 0x14], eax
nop dword [eax + eax]
mov edx, dword [ebp - 0x54]
cmp edx, dword [ebp - 0x5c]
jne 0x451433
lea ecx, [ebp - 0x5c]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
mov word [eax + edx*2], 0x20
inc edx
mov dword [ebp - 0x54], edx
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0xa4]
push dword [ebp - 0x14]
push esi
call sym.std::sys::windows::args::append_arg::hdb220ef5e6aaf1a4
add esp, 8
movzx ebx, byte [ebp - 0xa4]
cmp bl, 4
jne 0x45155d
add esi, 0x14
add edi, 0xffffffec
jne 0x451420
mov edx, dword [ebp - 0x54]
movsd xmm0, qword [ebp - 0x104]
mov esi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov bl, 1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], ebx
movsd qword [ebp - 0x74], xmm0
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x6c]
movsd xmm0, qword [ebp - 0x74]
cmp edx, ecx
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xec], esi
movsd qword [ebp - 0xf4], xmm0
jne 0x4514e0
lea ecx, [ebp - 0xe8]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xe0]
jmp 0x4514e3
mov esi, dword [ebp - 0x28]
mov word [eax + edx*2], 0
inc edx
mov eax, 0x400
mov ecx, 0x608
cmp byte [esi + 0x58], 0
mov dword [ebp - 0xe0], edx
cmove ecx, eax
or ecx, dword [esi + 0x48]
cmp dword [ebp - 0x11c], 0
mov dword [ebp - 0x24], ecx
je 0x4515af
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 2
mov dword [ebp - 0x6c], 0
mov esi, dword [eax + 8]
movsd xmm0, qword [eax]
test esi, esi
mov dword [ebp - 0xb0], esi
movsd qword [ebp - 0xb8], xmm0
je 0x4515fa
mov edi, 2
mov dword [ebp - 0xa8], 0
jmp 0x45161c
movzx eax, byte [ebp - 0x9d]
movzx esi, word [ebp - 0x9f]
mov edi, dword [ebp - 0xa3]
shl eax, 0x10
or esi, eax
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x45158d
add eax, eax
push 2
push eax
push dword [ebp - 0x58]
call sym.___rust_dealloc
add esp, 0xc
mov ecx, dword [ebp - 0x78]
shld esi, edi, 8
shl edi, 8
movzx eax, bl
or eax, edi
mov dword [ecx + 4], esi
mov dword [ecx], eax
mov dword [ecx + 8], 2
xor ebx, ebx
jmp 0x4524c5
xor eax, eax
mov ecx, 2
xor esi, esi
xor edi, edi
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], ecx
cmp byte [eax + 0xc], 2
jne 0x451a08
xor edx, edx
mov ebx, 2
xor ecx, ecx
mov dword [ebp - 0x120], 0
jmp 0x451ec7
mov bl, 1
lea ecx, [ebp - 0x74]
xor edx, edx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov edi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
mov word [edi + eax*2], 0
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb8]
xor edx, edx
lea ebx, [ebp - 0x52c]
test ecx, ecx
sete dl
cmove esi, ecx
add edx, edx
mov dword [ebp - 0x52c], edx
mov dword [ebp - 0x528], eax
mov dword [ebp - 0x524], ecx
mov dword [ebp - 0x51c], edx
mov dword [ebp - 0x518], eax
mov dword [ebp - 0x514], ecx
mov dword [ebp - 0x50c], esi
lea esi, [ebp - 0x5c]
mov ecx, esi
mov edx, ebx
call sym.alloc::collections::btree::map::IntoIter_LT_K_C_V_C_A_GT_::dying_next::h92d67a925fc6acbc
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x10], edi
test eax, eax
je 0x451cb1
mov ecx, dword [ebp - 0x54]
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
cmp byte [eax + edx + 0xc0], 2
je 0x451cb1
shl ecx, 4
mov esi, dword [eax + edx + 0xb4]
mov edi, dword [eax + edx + 0xbc]
xor ebx, ebx
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
mov ecx, dword [eax + edx + 0xc4]
mov dword [ebp - 0x30], esi
mov esi, dword [eax + edx + 0xb8]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + edx + 0xc8]
mov eax, dword [eax + edx + 0xcc]
mov edx, edi
movsd qword [ebp - 0x9c], xmm1
movsd qword [ebp - 0xa4], xmm0
add edx, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x64], eax
mov eax, esi
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x14], edx
jmp 0x45170b
xor ebx, ebx
test cx, cx
je 0x4519b5
mov cx, 1
test bx, bx
jne 0x451700
cmp eax, edx
je 0x4517a5
movzx ebx, byte [eax]
test bl, bl
js 0x451728
inc eax
mov edi, ebx
jmp 0x451779
movzx edx, byte [eax + 1]
mov edi, ebx
and edi, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x45176e
movzx esi, byte [eax + 2]
shl edx, 6
and esi, 0x3f
or esi, edx
cmp bl, 0xf0
jb 0x45177f
movzx edx, byte [eax + 3]
and edi, 7
shl esi, 6
add eax, 4
shl edi, 0x12
and edx, 0x3f
or edx, esi
or edi, edx
mov edx, dword [ebp - 0x14]
cmp edi, 0xffff
jbe 0x451779
jmp 0x451792
shl edi, 6
add eax, 2
or edi, edx
mov edx, dword [ebp - 0x14]
xor ebx, ebx
mov ecx, edi
jmp 0x451702
shl edi, 0xc
add eax, 3
or edi, esi
mov edx, dword [ebp - 0x14]
cmp edi, 0xffff
jbe 0x451779
and edi, 0x3ff
or edi, 0xdc00
mov ebx, edi
jmp 0x451702
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4517ba
push 1
push eax
push dword [ebp - 0x20]
call sym.___rust_dealloc
add esp, 0xc
mov ebx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x74]
lea eax, [ebx + esi*2]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], eax
sub ecx, edi
cmp ecx, esi
mov ecx, dword [ebp - 0x10]
jae 0x4517fb
mov edx, edi
lea ecx, [ebp - 0x74]
push esi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h3de3c257bacc48ea
add esp, 4
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x64]
lea eax, [esi + esi]
mov dword [ebp - 0x10], ecx
lea ecx, [ecx + edi*2]
push eax
push ebx
push ecx
call sym._memcpy
add esp, 0xc
mov eax, dword [ebp - 0x18]
add edi, esi
mov dword [ebp - 0x6c], edi
test eax, eax
je 0x451829
add eax, eax
push 2
push eax
push ebx
call sym.___rust_dealloc
add esp, 0xc
cmp edi, dword [ebp - 0x74]
jne 0x451840
lea ecx, [ebp - 0x74]
mov edx, edi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov eax, dword [ebp - 0x70]
mov edi, dword [ebp - 0x6c]
jmp 0x451843
mov eax, dword [ebp - 0x10]
mov word [eax + edi*2], 0x3d
inc edi
mov ebx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa4]
movzx edx, byte [ebp - 0x98]
mov dword [ebp - 0x6c], edi
lea edi, [ebx + ecx]
mov dword [ebp - 0x30], ecx
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x60], dl
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jmp 0x451887
xor ecx, ecx
test ax, ax
je 0x451c13
mov ax, 1
test cx, cx
jne 0x45187c
cmp ebx, edi
je 0x451911
movzx ecx, byte [ebx]
test cl, cl
js 0x4518a0
inc ebx
mov esi, ecx
jmp 0x4518f8
movzx edx, byte [ebx + 1]
mov esi, ecx
and esi, 0x1f
and edx, 0x3f
cmp cl, 0xdf
jbe 0x4518db
movzx edi, byte [ebx + 2]
shl edx, 6
and edi, 0x3f
or edi, edx
cmp cl, 0xf0
jb 0x4518e5
movzx ecx, byte [ebx + 3]
and esi, 7
shl edi, 6
add ebx, 4
shl esi, 0x12
and ecx, 0x3f
or ecx, edi
or esi, ecx
jmp 0x4518ed
shl esi, 6
add ebx, 2
or esi, edx
jmp 0x4518f8
shl esi, 0xc
add ebx, 3
or esi, edi
mov edi, dword [ebp - 0x14]
cmp esi, 0xffff
ja 0x4518fe
xor ecx, ecx
mov eax, esi
jmp 0x45187e
and esi, 0x3ff
or esi, 0xdc00
mov ecx, esi
jmp 0x45187e
movzx ebx, byte [ebp - 0x60]
cmp bl, 2
je 0x452d81
lea ecx, [ebp - 0x97]
lea edx, [ebp - 0x4f]
mov edi, dword [ebp - 0x10]
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
mov ecx, dword [ebp - 0x30]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 0x50], bl
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], eax
mov word [ebp - 0xd4], 0
lea ecx, [ebp - 0x74]
lea edx, [ebp - 0xdc]
lea esi, [ebp - 0x5c]
call sym.__ZN97__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_alloc..vec..spec_extend..SpecExtend_LT_T_C_I_GT__GT_11spec_extend17h64a0c0f
lea ebx, [ebp - 0x52c]
test edi, edi
je 0x45198a
push 1
push edi
push dword [ebp - 0x18]
call sym.___rust_dealloc
add esp, 0xc
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x74]
jne 0x45199d
lea ecx, [ebp - 0x74]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov edx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x70]
mov word [edi + edx*2], 0
inc edx
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0x6c], edx
jmp 0x451667
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4519ca
push 1
push eax
push dword [ebp - 0x20]
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0x60]
test eax, eax
je 0x4519e8
push 1
push eax
push dword [ebp - 0xa0]
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov edi, 0x4c3dc8
mov esi, 2
test eax, eax
je 0x451c32
add eax, eax
push 2
push eax
push ebx
jmp 0x451c2a
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
xor ebx, ebx
add eax, edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x60], eax
jmp 0x451a25
xor ebx, ebx
test si, si
je 0x451ab6
mov si, 1
test bx, bx
jne 0x451a1a
cmp edx, eax
je 0x451c6a
movzx ebx, byte [edx]
test bl, bl
js 0x451a42
inc edx
mov edi, ebx
jmp 0x451a9a
movzx ecx, byte [edx + 1]
mov edi, ebx
and edi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x451a7d
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
cmp bl, 0xf0
jb 0x451a87
movzx ecx, byte [edx + 3]
and edi, 7
shl eax, 6
add edx, 4
shl edi, 0x12
and ecx, 0x3f
or ecx, eax
or edi, ecx
jmp 0x451a8f
shl edi, 6
add edx, 2
or edi, ecx
jmp 0x451a9a
shl edi, 0xc
add edx, 3
or edi, eax
mov eax, dword [ebp - 0x60]
cmp edi, 0xffff
ja 0x451aa3
xor ebx, ebx
mov esi, edi
jmp 0x451a1c
and edi, 0x3ff
or edi, 0xdc00
mov ebx, edi
jmp 0x451a1c
mov eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov dword [eax], 2
mov dword [eax + 4], 0x4c3dc8
mov dword [eax + 8], 2
jmp 0x45246d
movzx edx, word [eax + ecx*2 - 8]
lea esi, [edx - 0x42]
cmp esi, 0x21
ja 0x451382
mov edi, dword [ebp - 0x30]
add edi, dword [esi*4 + 0x4533e0]
jmp edi
mov eax, dword [ebp - 0x10]
mov esi, 2
mov edi, 0x4c3dc8
test eax, eax
je 0x451c32
push 1
push eax
push dword [ebp - 0x18]
call sym.___rust_dealloc
add esp, 0xc
xor ebx, ebx
lea ecx, [ebp - 0x52c]
call sym.__ZN4core3ptr132drop_in_place_LT_alloc..collections..btree..map..IntoIter_LT_std..sys..windows..process..EnvKey_C_std..ffi..os
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x451c56
add eax, eax
push 2
push eax
push dword [ebp - 0x70]
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], 2
jmp 0x45247f
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0x528], esi
mov word [ebp - 0x524], 0
lea ecx, [ebp - 0x5c]
lea edx, [ebp - 0x52c]
call sym.__ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17h7cc955dd7
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x54]
cmp edx, eax
jne 0x451eb3
lea ecx, [ebp - 0x5c]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x54]
jmp 0x451eb5
xor ebx, ebx
lea ecx, [ebp - 0x52c]
call sym.__ZN4core3ptr132drop_in_place_LT_alloc..collections..btree..map..IntoIter_LT_std..sys..windows..process..EnvKey_C_std..ffi..os
mov eax, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x74]
jne 0x451cde
mov edx, eax
xor ebx, ebx
lea ecx, [ebp - 0x74]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h2070ab1e8c13ff54
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
mov word [esi + eax*2], 0
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x74]
test ecx, ecx
je 0x451c56
inc eax
jmp 0x4515ba
cmp cl, 3
lea ebx, [ebp - 0xa4]
jne 0x451d34
mov eax, dword [esi + 4]
mov eax, dword [eax]
push dword [esi]
call eax
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x451d27
push dword [eax + 8]
push ecx
push dword [esi]
call sym.___rust_dealloc
add esp, 0xc
push 4
push 0xc
push esi
call sym.___rust_dealloc
add esp, 0xc
lea eax, [ebp - 0x74]
push 4
push str.PATHlibrary_std_src_sys_commonprocess.rs
push eax
call sym.std::env::_var_os::hf8496a5912da13ca
add esp, 0xc
cmp byte [ebp - 0x68], 2
je 0x451e9f
movsd xmm0, qword [ebp - 0x74]
movsd xmm1, qword [ebp - 0x6c]
lea esi, [ebp - 0x52c]
movsd qword [ebp - 0xdc], xmm0
movsd qword [ebp - 0xd4], xmm1
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xd4]
add eax, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], ecx
mov word [ebp - 0x9c], 0
mov byte [ebp - 0x98], 1
jmp 0x451db4
mov eax, dword [ebp - 0x528]
lea ebx, [ebp - 0xa4]
test eax, eax
jne 0x4529de
push ebx
push esi
call sym.__LT_std..sys..windows..os..SplitPaths_u20_as_u20_core..iter..traits..iterator..Iterator_GT_::next::h725d1197528f12cd
add esp, 8
jmp 0x451dca
push ebx
push esi
call sym.__LT_std..sys..windows..os..SplitPaths_u20_as_u20_core..iter..traits..iterator..Iterator_GT_::next::h725d1197528f12cd
add esp, 8
movzx eax, byte [ebp - 0x520]
cmp al, 2
je 0x451e87
mov edi, dword [ebp - 0x524]
mov edx, dword [ebp - 0x52c]
mov ecx, dword [ebp - 0x528]
test edi, edi
jne 0x451e01
test edx, edx
je 0x451dc0
push 1
push edx
push ecx
call sym.___rust_dealloc
add esp, 0xc
jmp 0x451dc0
lea ebx, [ebp - 0x51f]
lea esi, [ebp - 0x4f]
movzx ebx, word [ebx]
mov word [esi], bx
lea ebx, [ebp - 0x51f]
mov ah, byte [ebx + 2]
mov byte [esi + 2], ah
lea esi, [ebp - 0x52c]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edi
mov byte [ebp - 0x50], al
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x5c]
push eax
call sym.std::path::PathBuf::_push::hbc3c0e01fa08c7d5
add esp, 0xc
cmp byte [ebp - 0x64], 0
jne 0x451e59
push 3
push str.exeNULexit_code:
lea eax, [ebp - 0x5c]
push eax
call sym.std::path::PathBuf::_set_extension::h5e8a769efcc22bbb
add esp, 0xc
mov edi, dword [ebp - 0x58]
mov edx, edi
mov ecx, esi
push dword [ebp - 0x54]
call sym.std::sys::windows::process::program_exists::hec97a75245bd3c3b
add esp, 4
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x451da0
push 1
push eax
push edi
call sym.___rust_dealloc
add esp, 0xc
jmp 0x451da0
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x451e9f
push 1
push eax
push dword [ebp - 0x18]
call sym.___rust_dealloc
add esp, 0xc
mov dword [ebp - 0xb4], 2
mov eax, 0x4c3e18
jmp 0x450899
mov ecx, eax
mov ebx, dword [ebp - 0x58]
mov word [ebx + edx*2], 0
inc edx
mov eax, ebx
mov dword [ebp - 0x120], ebx
xorps xmm0, xmm0
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x6c], edx
movups xmmword [ebp - 0xa4], xmm0
push 0x501120
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov eax, dword [0x5010f8]
test eax, 0x7fffffff
je 0x451eff
call sym.std::panicking::panic_count::is_zero_slow_path::h8d097b02a6a6896f
xor al, 1
jmp 0x451f01
xor eax, eax
movzx ecx, byte [0x501124]
test cl, cl
mov byte [ebp - 0x20], cl
je 0x451f20
mov ecx, 1
mov dword [ebp - 0xd8], 0x501120
jmp 0x451f2c
mov dword [ebp - 0xd8], 0x501120
xor ecx, ecx
mov ebx, dword [ebp - 0x28]
mov byte [ebp - 0xd4], al
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xdc], ecx
xor ecx, ecx
mov edi, dword [ebp - 0x10c]
mov edx, 1
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x12c], 1
mov esi, dword [ebx + 0x30]
lea eax, [ebx + 0x30]
mov dword [ebp - 0xa8], edi
cmp esi, 5
cmove eax, ecx
cmp byte [ebp + 0xc], 0
lea ecx, [ebp - 0x108]
cmovne edx, edi
lea edi, [ebp - 0x128]
cmovne edi, ecx
add eax, 4
cmp esi, 5
mov ecx, 0
cmovne edx, esi
mov esi, dword [ebx + 0x38]
cmove eax, edi
mov edi, ebx
add ebx, 0x38
cmp esi, 5
cmove ebx, ecx
mov ecx, dword [edi + 0x40]
add edi, 0x40
mov dword [ebp - 0x124], ecx
cmp ecx, 5
mov ecx, 0
cmove edi, ecx
mov dword [ebp - 0x28], edi
lea edi, [ebp - 0x5c]
lea ecx, [ebp - 0x52c]
push edi
push 0xfffffffffffffff6
push dword [eax]
call sym.std::sys::windows::process::Stdio::to_handle::h27f7a9a03c98e2a2
add esp, 0xc
movzx eax, byte [ebp - 0x52c]
cmp al, 4
jne 0x452292
mov ecx, dword [ebp - 0x528]
mov edi, dword [ebp - 0xa8]
lea eax, [ebp - 0x54]
add ebx, 4
cmp esi, 5
mov dword [ebp - 0xf8], ecx
lea ecx, [ebp - 0x108]
cmove esi, edi
cmove ebx, ecx
mov edx, esi
lea ecx, [ebp - 0x52c]
push eax
push 0xfffffffffffffff5
push dword [ebx]
call sym.std::sys::windows::process::Stdio::to_handle::h27f7a9a03c98e2a2
add esp, 0xc
movzx eax, byte [ebp - 0x52c]
mov esi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x10]
cmp al, 4
jne 0x4522ca
mov edx, dword [ebp - 0x124]
add esi, 4
lea ecx, [ebp - 0x108]
lea eax, [ebp - 0x4c]
cmp edx, 5
cmove esi, ecx
mov ecx, dword [ebp - 0x528]
cmove edx, edi
mov dword [ebp - 0x28], ecx
lea edi, [ebp - 0x52c]
mov ecx, edi
push eax
push 0xfffffffffffffff4
push dword [esi]
call sym.std::sys::windows::process::Stdio::to_handle::h27f7a9a03c98e2a2
add esp, 0xc
movzx eax, byte [ebp - 0x52c]
cmp al, 4
jne 0x4522ff
mov esi, dword [ebp - 0x528]
cmp dword [ebp - 0xf8], 0
mov edx, edi
mov dword [ebp - 0x524], 0
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x51c], 0
mov dword [ebp - 0x520], 0
mov dword [ebp - 0x514], 0
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x50c], 0
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x504], 0
mov dword [ebp - 0x508], 0
mov dword [ebp - 0x4fc], 0
mov dword [ebp - 0x500], 0
mov dword [ebp - 0x4f4], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4ec], 0
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x52c], 0x44
jne 0x45214e
cmp dword [ebp - 0x28], 0
jne 0x45214e
test esi, esi
je 0x452173
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x500], 0x100
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0x4f0], ecx
mov dword [ebp - 0x4ec], esi
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xf0]
lea eax, [ebp - 0xa4]
push eax
push edx
push dword [ebp - 0x120]
push ebx
push dword [ebp - 0x24]
push 1
push 0
push 0
push edi
mov dword [ebp - 0x10], ecx
push ecx
call sub.KERNEL32.dll_CreateProcessW
test eax, eax
je 0x4523a0
mov eax, dword [ebp - 0x78]
movsd xmm1, qword [ebp - 0x54]
movsd xmm0, qword [ebp - 0x4c]
movsd xmm2, qword [ebp - 0x5c]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [ebp - 0xa4]
movsd qword [eax + 0x18], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
push esi
call sub.KERNEL32.dll_CloseHandle
push dword [ebp - 0x28]
call sub.KERNEL32.dll_CloseHandle
push dword [ebp - 0xf8]
call sub.KERNEL32.dll_CloseHandle
lea ecx, [ebp - 0xdc]
call sym.__ZN4core3ptr178drop_in_place_LT_core..result..Result_LT_std..sync..mutex..MutexGuard_LT__LP__RP__GT__C_std..sync..poison..Poi
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x452217
add eax, eax
push 2
push eax
push dword [ebp - 0x64]
call sym.___rust_dealloc
add esp, 0xc
test esi, esi
je 0x452229
add esi, esi
push 2
push esi
push ebx
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x452241
add eax, eax
push 2
push eax
push edi
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x45225b
add eax, eax
push 2
push eax
push dword [ebp - 0x10]
call sym.___rust_dealloc
add esp, 0xc
cmp byte [ebp - 0x2c], 0
mov esi, dword [ebp - 0xa8]
je 0x452284
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x452284
add eax, eax
push 2
push eax
push dword [ebp - 0x100]
call sym.___rust_dealloc
add esp, 0xc
cmp esi, 3
jae 0x4509aa
jmp 0x4509b5
movzx ecx, byte [ebp - 0x529]
mov edx, dword [ebp - 0x78]
movzx edi, word [ebp - 0x52b]
mov esi, dword [ebp - 0x528]
mov ebx, dword [ebp - 0x60]
mov word [edx + 1], di
mov byte [edx + 3], cl
mov byte [edx], al
mov dword [edx + 4], esi
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov dword [edx + 8], 2
jmp 0x4523e1
movzx ecx, byte [ebp - 0x529]
mov edx, dword [ebp - 0x78]
movzx edi, word [ebp - 0x52b]
mov esi, dword [ebp - 0x528]
mov word [edx + 1], di
mov byte [edx + 3], cl
mov byte [edx], al
mov dword [edx + 4], esi
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov dword [edx + 8], 2
jmp 0x4523d3
movzx ecx, byte [ebp - 0x529]
mov edx, dword [ebp - 0x78]
movzx edi, word [ebp - 0x52b]
mov esi, dword [ebp - 0x528]
mov byte [edx + 3], cl
mov word [edx + 1], di
mov byte [edx], al
mov dword [edx + 4], esi
mov dword [edx + 8], 2
jmp 0x4523c5
mov ecx, dword [ebp - 0x52c]
mov ebx, dword [ebp - 0x524]
mov esi, eax
jmp 0x451330
call sub.KERNEL32.dll_GetLastError
mov ecx, dword [ebp - 0x78]
mov byte [ecx], 0
mov byte [ecx + 3], 0
mov word [ecx + 1], 0
mov dword [ecx + 4], eax
mov dword [ecx + 8], 2
push esi
call sub.KERNEL32.dll_CloseHandle
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
push dword [ebp - 0x28]
call sub.KERNEL32.dll_CloseHandle
mov ebx, dword [ebp - 0x60]
push dword [ebp - 0xf8]
call sub.KERNEL32.dll_CloseHandle
cmp dword [ebp - 0x5c], 0
je 0x4523ef
push dword [ebp - 0x58]
call sub.KERNEL32.dll_CloseHandle
cmp dword [ebp - 0x54], 0
je 0x4523fd
push dword [ebp - 0x50]
call sub.KERNEL32.dll_CloseHandle
cmp dword [ebp - 0x4c], 0
je 0x45240b
push dword [ebp - 0x48]
call sub.KERNEL32.dll_CloseHandle
cmp byte [ebp - 0x20], 0
je 0x45242a
cmp byte [ebp - 0x30], 0
jne 0x45244f
mov eax, dword [0x5010f8]
test eax, 0x7fffffff
je 0x45244f
call sym.std::panicking::panic_count::is_zero_slow_path::h8d097b02a6a6896f
jmp 0x452441
cmp byte [ebp - 0x30], 0
jne 0x45244f
mov eax, dword [0x5010f8]
test eax, 0x7fffffff
je 0x45244f
call sym.std::panicking::panic_count::is_zero_slow_path::h8d097b02a6a6896f
mov ebx, dword [ebp - 0x60]
test al, al
jne 0x45244f
mov byte [0x501124], 1
push 0x501120
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
test ebx, ebx
je 0x45246d
add ebx, ebx
push 2
push ebx
push dword [ebp - 0x64]
call sym.___rust_dealloc
add esp, 0xc
test esi, esi
je 0x45247f
add esi, esi
push 2
push esi
push edi
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x45249c
add eax, eax
push 2
push eax
push dword [ebp - 0xe4]
call sym.___rust_dealloc
add esp, 0xc
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x4524b9
add eax, eax
push 2
push eax
push dword [ebp - 0xf0]
call sym.___rust_dealloc
add esp, 0xc
cmp byte [ebp - 0x1c], 0
mov bl, 1
jne 0x4509a1
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x4524e2
add eax, eax
push 2
push eax
push dword [ebp - 0x100]
call sym.___rust_dealloc
add esp, 0xc
cmp dword [ebp - 0x11c], 0
sete al
or bl, al
je 0x4508c7
jmp 0x4509a1
mov esi, eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x52c]
mov ebx, dword [ebp - 0x524]
test eax, eax
je 0x451330
push 1
push eax
push dword [ebp - 0x18]
mov edi, ecx
call sym.___rust_dealloc
mov ecx, edi
add esp, 0xc
jmp 0x451330
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
jmp 0x451c32
push 1
push edi
call sym.alloc::alloc::handle_alloc_error::h1460775c4f8d05ce
add esp, 8
jmp 0x45300b
call sym.alloc::raw_vec::capacity_overflow::he71b25d1f8f09560
jmp 0x45300b
push 1
push ebx
call sym.alloc::alloc::handle_alloc_error::h1460775c4f8d05ce
add esp, 8
jmp 0x45300b
call sym.alloc::raw_vec::capacity_overflow::he71b25d1f8f09560
jmp 0x45300b
push ebx
push esi
call sym.alloc::alloc::handle_alloc_error::h1460775c4f8d05ce
add esp, 8
jmp 0x45300b
call sym.alloc::raw_vec::capacity_overflow::he71b25d1f8f09560
jmp 0x45300b
call sub.KERNEL32.dll_GetLastError
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x54], 0x4c3d68
mov dword [ebp - 0x50], 1
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xd8], sym.__LT_std..io..error..Error_u20_as_u20_core..fmt..Display_GT_::fmt::h3b8d78eac86fb792
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], 1
push 0x4c3d98
lea eax, [ebp - 0x5c]
push eax
call sym.core::panicking::panic_fmt::h1507d830b31d322e
add esp, 8
jmp 0x45300b
push 0x4c0638
push 0x21
push str.assertion_failed:_self.height___0
call sym.core::panicking::panic::h77c9b6f606fdbf34
add esp, 0xc
jmp 0x45300b
push 0x4c4450
push 0x28
push str.internal_error:_entered_unreachable_code_b
call sym.core::panicking::panic::h77c9b6f606fdbf34
add esp, 0xc
jmp 0x45300b
mov edi, 1
mov dword [ebp - 0x14], 4
push edi
push dword [ebp - 0x14]
call sym.alloc::alloc::handle_alloc_error::h1460775c4f8d05ce
add esp, 8
jmp 0x45300b
call sub.KERNEL32.dll_GetLastError
mov dword [ebp - 0x58], eax
lea esi, [ebp - 0x5c]
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x524], 0x4c3bb4
mov dword [ebp - 0x520], 1
mov dword [ebp - 0x52c], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0xa0], sym.__LT_std..io..error..Error_u20_as_u20_core..fmt..Display_GT_::fmt::h3b8d78eac86fb792
mov dword [ebp - 0x518], 1
lea eax, [ebp - 0x52c]
push 0x4c3bbc
push eax
call sym.core::panicking::panic_fmt::h1507d830b31d322e
add esp, 8
jmp 0x45300b
push 0x4c4450
push 0x28
push str.internal_error:_entered_unreachable_code_b
call sym.core::panicking::panic::h77c9b6f606fdbf34
add esp, 0xc
jmp 0x45300b
call sym.alloc::raw_vec::capacity_overflow::he71b25d1f8f09560
jmp 0x45300b
push 0x4c4460
push eax
push edi
call sym.core::slice::index::slice_end_index_len_fail::ha90cccd5bd71ac96
add esp, 0xc
jmp 0x45300b
push 0x4bfdfc
push edi
push ecx
call sym.core::slice::index::slice_start_index_len_fail::h66d26830f9e36ca4
add esp, 0xc
jmp 0x45300b
push 0x4c4460
push eax
push edi
call sym.core::slice::index::slice_end_index_len_fail::ha90cccd5bd71ac96
add esp, 0xc
jmp 0x45300b
ud2