Function at 0x100d2290
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x42c
lea eax, [ebp - 0x20]
mov ebx, 0x200
xor esi, esi
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x34], eax
cmp ebx, 0x201
jae 0x100d2310
jmp 0x100d22ee
jbe 0x100d2383
cmp ebx, 0x201
jae 0x100d2310
lea eax, [ebp - 0x438]
mov edi, ebx
mov dword [ebp - 0x18], 0x200
mov ebx, eax
jmp 0x100d2336
sub ebx, esi
je 0x100d232b
mov edx, esi
lea ecx, [ebp - 0x24]
push ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h761d50fc4b4e3c20
add esp, 4
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x14]
mov edi, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
push 0
call sub.kernel32.dll_SetLastError
push edi
mov dword [ebp - 0x10], ebx
push ebx
call sub.kernel32.dll_GetSystemDirectoryW
mov ebx, eax
test eax, eax
jne 0x100d2356
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x100d23c7
cmp ebx, edi
jne 0x100d22e0
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x100d25c8
lea ebx, [edi + edi]
test edi, edi
mov eax, 0xffffffff
cmovs ebx, eax
cmp ebx, 0x201
jb 0x100d22ee
jmp 0x100d2310
mov edx, dword [ebp - 0x18]
cmp ebx, edx
ja 0x100d25e1
test ebx, ebx
je 0x100d23f9
cmp ebx, 0x3fffffff
ja 0x100d25f2
movzx eax, byte [0x10237124]
mov esi, ebx
add esi, ebx
xor ecx, ecx
mov edx, esi
call dbg.process_heap_alloc
test eax, eax
jne 0x100d2400
mov ecx, 2
mov edx, esi
call dbg.handle_alloc_error
jmp 0x100d25f7
call sub.kernel32.dll_GetLastError
cmp dword [ebp - 0x24], 0
mov esi, eax
je 0x100d23e1
mov ecx, dword [ebp - 0x20]
mov edx, 2
call sym.___rust_dealloc
mov eax, dword [ebp - 0x38]
mov dword [eax + 4], 0
mov dword [eax + 8], esi
mov dword [eax], 0x80000000
jmp 0x100d25bd
mov eax, 2
xor esi, esi
push esi
push dword [ebp - 0x10]
mov esi, eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [ebp - 0x24], 0
je 0x100d2422
mov ecx, dword [ebp - 0x20]
mov edx, 2
call sym.___rust_dealloc
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], esi
mov edx, esi
mov esi, 0x101ce476
xor edi, edi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x34], eax
jmp 0x100d245d
mov edi, ecx
mov word [edx + ebx*2], si
mov esi, dword [ebp - 0x10]
inc ebx
mov dword [ebp - 0x28], ebx
test esi, esi
je 0x100d2510
test di, di
je 0x100d24a0
mov dword [ebp - 0x10], esi
xor ecx, ecx
mov esi, edi
cmp ebx, dword [ebp - 0x30]
jne 0x100d2450
mov eax, 0x101ce476
mov edx, 0xaaaaaaab
mov edi, dword [ebp - 0x18]
sub eax, dword [ebp - 0x10]
add eax, 0xa
mul edx
mov eax, edx
shr eax, 1
cmp cx, 1
adc edi, 0xffffffff
sub eax, edi
mov edi, ecx
inc eax
jmp 0x100d2538
mov dword [ebp - 0x10], edi
lea eax, [0x101ce47e]
mov edi, dword [ebp - 0x10]
cmp esi, eax
je 0x100d2510
movzx ecx, byte [esi]
test cl, cl
js 0x100d24c3
mov eax, esi
mov esi, ecx
xor ecx, ecx
inc eax
mov dword [ebp - 0x10], eax
jmp 0x100d2471
mov dword [ebp - 0x14], edx
movzx edx, byte [esi + 1]
mov eax, ecx
and eax, 0x1f
and edx, 0x3f
cmp cl, 0xdf
jbe 0x100d254f
mov edi, ecx
movzx ecx, byte [esi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov edx, edi
cmp dl, 0xf0
jb 0x100d2566
movzx edx, byte [esi + 3]
shl ecx, 6
and eax, 7
mov edi, dword [ebp - 0x10]
shl eax, 0x12
and edx, 0x3f
or edx, ecx
mov ecx, edx
mov edx, dword [ebp - 0x14]
or ecx, eax
cmp ecx, 0x110000
jne 0x100d2573
cmp dword [ebp - 0x18], 1
je 0x100d25ab
xor esi, esi
cmp ebx, dword [ebp - 0x30]
mov eax, 0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x10], 0
jne 0x100d2452
inc eax
mov edx, ebx
lea ecx, [ebp - 0x30]
push eax
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h761d50fc4b4e3c20
add esp, 4
mov edx, dword [ebp - 0x2c]
jmp 0x100d2452
shl eax, 6
add esi, 2
xor ecx, ecx
or eax, edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], esi
mov esi, eax
jmp 0x100d2471
mov edx, dword [ebp - 0x14]
shl eax, 0xc
add esi, 3
or ecx, eax
jmp 0x100d2576
add esi, 4
cmp ecx, 0xffff
mov dword [ebp - 0x10], esi
jbe 0x100d25a2
lea eax, [ecx + 0xff0000]
and ecx, 0x3ff
shr eax, 0xa
or ecx, 0xdc00
or eax, 0xd800
mov esi, eax
jmp 0x100d2471
mov esi, ecx
xor ecx, ecx
jmp 0x100d2471
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
movsd xmm0, qword [ebp - 0x30]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
add esp, 0x42c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 0x28
mov ecx, 0x101d00e6
push 0x101ce968
call dbg.panic
add esp, 4
jmp 0x100d25f7
mov ecx, ebx
push 0x101ce958
call dbg.slice_end_index_len_fail
add esp, 4
jmp 0x100d25f7
call sym.alloc::raw_vec::capacity_overflow::h5648a8ceafa88914
ud2