joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100a6d40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x430
mov edi, 0x200
xor esi, esi
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 2
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x20], 0
cmp edi, 0x201
jae 0x100a6dc0
jmp 0x100a6da1
mov esi, dword [ebp - 0x10]
jbe 0x100a6e45
cmp edi, 0x201
jae 0x100a6dc0
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], 0x200
lea ebx, [ebp - 0x43c]
mov esi, edi
jmp 0x100a6df1
mov eax, dword [ebp - 0x20]
sub edi, esi
sub eax, esi
cmp eax, edi
jae 0x100a6de2
mov edx, esi
lea ecx, [ebp - 0x2c]
push edi
call dbg.do_reserve_and_handle<core::mem::maybe_uninit::MaybeUninit<u16>, alloc::alloc::Global>
add esp, 4
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], esi
push 0
call sub.kernel32.dll_SetLastError
push ebx
push esi
call sub.kernel32.dll_GetCurrentDirectoryW
mov edi, eax
test eax, eax
jne 0x100a6e0e
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x100a6e8c
cmp edi, esi
jne 0x100a6d90
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x100a6eaa
lea edi, [esi + esi]
test esi, esi
mov esi, dword [ebp - 0x10]
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jb 0x100a6da1
jmp 0x100a6dc0
mov edx, dword [ebp - 0x1c]
cmp edi, edx
ja 0x100a6ec3
mov edx, ebx
lea ecx, [ebp - 0x3c]
push edi
call dbg.from_wide
add esp, 4
movsd xmm0, qword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
movsd xmm1, qword [ebp - 0x34]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
test esi, esi
je 0x100a6e81
mov ecx, dword [ebp - 0x14]
mov edx, 2
call sym.___rust_dealloc
add esp, 0x430
pop esi
pop edi
pop ebx
pop ebp
ret
call sub.kernel32.dll_GetLastError
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
mov byte [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [ecx], 0x80000000
test esi, esi
jne 0x100a6e74
jmp 0x100a6e81
mov edx, 0x28
mov ecx, 0x101c43f6
push 0x101c2e3c
call dbg.panic
add esp, 4
jmp 0x100a6ed2
mov ecx, edi
push 0x101c2e2c
call dbg.slice_end_index_len_fail
add esp, 4
ud2

Function at 0x100a8b80
Capabilities:
Enumerate process modules
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push eax
call sym.std::panicking::panic_count::LOCAL_PANIC_COUNT::__getit::h8a9f3e08a683d9f3
test eax, eax
je 0x100a8b98
cmp dword [eax], 0
sete al
add esp, 4
pop ebp
ret
lea eax, [ebp - 1]
mov ecx, 0x101c40bc
mov edx, 0x46
push 0x101c19cc
push 0x101c0ea0
push eax
call dbg.unwrap_failed
nop word cs:[eax + eax]
nop
Function at 0x100aa950
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov eax, dword [ebp + 8]
mov edi, ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 7
mov dword [esp + 0x32], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x36], 0
mov byte [esp + 0x34], 1
lea esi, [esp + 0x18]
lea ecx, [esp + 0x10]
push esi
push eax
call dbg.open
add esp, 8
cmp byte [esp + 0x10], 4
jne 0x100aa9c5
mov esi, dword [esp + 0x14]
jmp 0x100aa9e0
movzx eax, byte [esp + 0x10]
mov esi, dword [esp + 0x14]
cmp eax, 3
je 0x100aaa86
cmp eax, 4
jne 0x100aaab5
lea ebx, [esp + 0x18]
mov edx, esi
mov ecx, ebx
call dbg.file_attr
mov eax, dword [esp + 0x18]
xor eax, 2
or eax, dword [esp + 0x1c]
jne 0x100aaa3e
cmp byte [esp + 0x20], 3
jne 0x100aaa7b
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], edi
mov edi, dword [ebx + 4]
mov ecx, dword [ebx]
mov eax, dword [edi]
mov dword [esp + 8], ecx
push ecx
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x100aaa2c
mov edx, dword [edi + 8]
mov ecx, dword [esp + 8]
call sym.___rust_dealloc
mov ecx, ebx
mov edx, 4
call sym.___rust_dealloc
mov edi, dword [esp + 4]
jmp 0x100aaa7b
cmp dword [esp + 0x54], 0
jne 0x100aaa7b
mov eax, dword [esp + 0x50]
test esi, esi
mov dword [esp + 4], eax
je 0x100aaabd
mov dword [esp + 0x18], 0
call sub.kernel32.dll_GetCurrentProcess
push 2
push 0
push 0
push ebx
push eax
push esi
push eax
call sub.kernel32.dll_DuplicateHandle
test eax, eax
je 0x100aab25
mov eax, dword [esp + 0x18]
jmp 0x100aaabf
mov dword [edi], 0
jmp 0x100aab30
mov ebx, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [ebx]
mov dword [esp + 4], ecx
push ecx
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x100aaaa9
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 4]
call sym.___rust_dealloc
mov ecx, esi
mov edx, 4
call sym.___rust_dealloc
mov dword [edi], 0
jmp 0x100aab36
xor eax, eax
push 0
push 0
push 0
push 2
push 0
mov dword [esp + 0x1c], eax
push eax
call sub.kernel32.dll_CreateFileMappingA
test eax, eax
je 0x100aab14
mov ebx, eax
push dword [esp + 4]
push 0
push 0
push 4
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [esp + 0xc], eax
push ebx
call sub.kernel32.dll_CloseHandle
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x100aab14
mov eax, dword [esp + 8]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov ecx, dword [esp + 4]
mov dword [edi + 0xc], ecx
mov dword [edi], 1
jmp 0x100aab30
mov dword [edi], 0
push dword [esp + 8]
call sub.kernel32.dll_CloseHandle
jmp 0x100aab30
call sub.kernel32.dll_GetLastError
mov dword [edi], 0
push esi
call sub.kernel32.dll_CloseHandle
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x100be610
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov dword [esp], ecx
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
mov ebx, dword [edx]
mov esi, edx
mov dword [esp + 0x3c], eax
call sym.__LT_gimli..read..abbrev..Attributes_u20_as_u20_core..ops..deref..Deref_GT_::deref::h109475173ca4458f
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov eax, ebx
test edx, edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
je 0x100be71a
mov ebx, edx
nop dword [eax + eax]
add edi, 0x10
dec ebx
cmp ebx, 0xffffffff
je 0x100be72e
lea eax, [edi - 0x10]
lea ecx, [esp + 0x20]
lea esi, [esp + 0x40]
lea edx, [esp + 0xc]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x1c]
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x40], xmm0
mov eax, dword [eax + 0xc]
push esi
push dword [eax + 0x20]
call dbg.parse_attribute<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
add esp, 8
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x100be75a
lea esi, [esp + 0x32]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
mov esi, dword [esi]
mov dword [esp + 4], esi
lea esi, [esp + 0x32]
movzx esi, word [esi + 4]
mov word [esp + 8], si
movzx esi, word [esp + 0x30]
cmp si, word [ebp + 8]
mov esi, dword [esp + 0x2c]
jne 0x100be660
movzx edi, word [esp + 8]
mov ebx, dword [esp]
mov word [ebx + 0x16], di
mov edi, dword [esp + 4]
mov dword [ebx + 0x12], edi
mov dword [ebx + 4], ecx
movzx ecx, word [ebp + 8]
mov dword [ebx], eax
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], esi
mov word [ebx + 0x10], cx
jmp 0x100be79b
cmp dword [esi + 0x14], 0
jne 0x100be748
sub eax, dword [esi]
mov dword [esi + 0x14], 1
mov dword [esi + 0x18], eax
jmp 0x100be748
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x14], 0
jne 0x100be748
mov ecx, dword [esp + 0xc]
sub ecx, dword [eax]
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], ecx
mov eax, dword [esp]
mov dword [eax + 4], 0
mov dword [eax], 0x2e
jmp 0x100be79b
lea edx, [esp + 0x32]
mov ecx, dword [esp]
mov edi, dword [esp + 0x2c]
mov esi, dword [edx]
movzx eax, word [edx + 4]
movzx edx, word [esp + 0x30]
mov dword [esp + 4], esi
mov dword [ecx + 0x12], esi
mov esi, dword [esp + 0x28]
mov word [ecx + 0x16], ax
mov word [esp + 8], ax
mov dword [ecx + 0xc], edi
mov dword [ecx + 8], esi
mov word [ecx + 0x10], dx
mov dword [ecx + 4], 0
mov dword [ecx], 0x2f
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x100c7610
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
xorps xmm0, xmm0
call 0x100c7621
pop eax
mov ebx, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
movups xmmword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
lea edi, [ebp - 0x40]
lea ecx, [ebp - 0x14]
push edi
call dbg.read
add esp, 4
movzx eax, byte [ebp - 0x14]
cmp al, 4
jne 0x100c768d
mov esi, dword [ebp - 0x10]
cmp esi, 0x21
jae 0x100c7745
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ebx, dword [edi + 8]
sub eax, ebx
cmp eax, esi
jb 0x100c7730
mov eax, dword [edi + 4]
add eax, ebx
push esi
lea ecx, [ebp - 0x40]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x1c]
add ebx, esi
mov dword [edi + 8], ebx
mov dword [eax + 4], esi
mov byte [eax], 4
jmp 0x100c7728
mov dword [ebp - 0x20], ebx
jmp 0x100c76c8
movzx ecx, al
mov ecx, dword [ecx*4 + 0x100c7780]
add ecx, dword [ebp - 0x18]
jmp ecx
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
mov edx, ebx
push esi
call dbg.do_reserve_and_handle<u8, alloc::alloc::Global>
add esp, 4
mov ebx, dword [edi + 8]
jmp 0x100c7667
mov ecx, esi
mov edx, 0x20
push 0x101c1a44
call dbg.slice_end_index_len_fail
cmp dword [edi + 4], 0
mov dword [ebp - 0x18], eax
je 0x100c7769
mov edx, dword [edi + 8]
mov ecx, ebx
call sym.___rust_dealloc
mov ecx, esi
mov edx, 4
call sym.___rust_dealloc
push dword [ebp - 0x18]
call sym.__Unwind_Resume
nop dword [eax]
sti
add byte [eax], al
add bh, cl
add byte [eax], al
add byte [esi - 0x4a000000], dh
add byte [eax], al
add byte [ebp - 0x77], dl
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x1c], edx
call 0x100c77a7
pop ebx
mov edx, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov eax, edx
sub eax, edi
jb 0x100c785f
mov esi, dword [ecx]
add esi, edi
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
push eax
push esi
call dbg.synchronous_read
add esp, 8
movzx esi, byte [ebp - 0x18]
cmp esi, 4
jne 0x100c77f1
add edi, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], edi
mov eax, dword [ecx + 0xc]
cmp eax, edi
cmova edi, eax
mov dword [ecx + 0xc], edi
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 4
jmp 0x100c7857
add ebx, dword [esi*4 + 0x100c7894]
jmp ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
push 0x101c0ae8
call dbg.slice_start_index_len_fail
cmp dword [ebx + 4], 0
mov dword [ebp - 0x10], eax
je 0x100c787e
mov edx, dword [ebx + 8]
mov ecx, edi
call sym.___rust_dealloc
mov ecx, esi
mov edx, 4
call sym.___rust_dealloc
push dword [ebp - 0x10]
call sym.__Unwind_Resume
nop
pop esp
add byte [eax], al
add byte [esi], ah
add byte [eax], al
push ebx
add byte [eax], al
add byte [ebx], dl
add byte [eax], al
nop word cs:[eax + eax]
nop
Function at 0x100c7790
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
xorps xmm0, xmm0
call 0x100c7621
pop eax
mov ebx, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
movups xmmword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
lea edi, [ebp - 0x40]
lea ecx, [ebp - 0x14]
push edi
call dbg.read
add esp, 4
movzx eax, byte [ebp - 0x14]
cmp al, 4
jne 0x100c768d
mov esi, dword [ebp - 0x10]
cmp esi, 0x21
jae 0x100c7745
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ebx, dword [edi + 8]
sub eax, ebx
cmp eax, esi
jb 0x100c7730
mov eax, dword [edi + 4]
add eax, ebx
push esi
lea ecx, [ebp - 0x40]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x1c]
add ebx, esi
mov dword [edi + 8], ebx
mov dword [eax + 4], esi
mov byte [eax], 4
jmp 0x100c7728
mov dword [ebp - 0x20], ebx
jmp 0x100c76c8
movzx ecx, al
mov ecx, dword [ecx*4 + 0x100c7780]
add ecx, dword [ebp - 0x18]
jmp ecx
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
mov edx, ebx
push esi
call dbg.do_reserve_and_handle<u8, alloc::alloc::Global>
add esp, 4
mov ebx, dword [edi + 8]
jmp 0x100c7667
mov ecx, esi
mov edx, 0x20
push 0x101c1a44
call dbg.slice_end_index_len_fail
cmp dword [edi + 4], 0
mov dword [ebp - 0x18], eax
je 0x100c7769
mov edx, dword [edi + 8]
mov ecx, ebx
call sym.___rust_dealloc
mov ecx, esi
mov edx, 4
call sym.___rust_dealloc
push dword [ebp - 0x18]
call sym.__Unwind_Resume
nop dword [eax]
sti
add byte [eax], al
add bh, cl
add byte [eax], al
add byte [esi - 0x4a000000], dh
add byte [eax], al
add byte [ebp - 0x77], dl
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x1c], edx
call 0x100c77a7
pop ebx
mov edx, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov eax, edx
sub eax, edi
jb 0x100c785f
mov esi, dword [ecx]
add esi, edi
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
push eax
push esi
call dbg.synchronous_read
add esp, 8
movzx esi, byte [ebp - 0x18]
cmp esi, 4
jne 0x100c77f1
add edi, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], edi
mov eax, dword [ecx + 0xc]
cmp eax, edi
cmova edi, eax
mov dword [ecx + 0xc], edi
mov ecx, dword [ebp - 0x10]
mov byte [ecx], 4
jmp 0x100c7857
add ebx, dword [esi*4 + 0x100c7894]
jmp ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
push 0x101c0ae8
call dbg.slice_start_index_len_fail
cmp dword [ebx + 4], 0
mov dword [ebp - 0x10], eax
je 0x100c787e
mov edx, dword [ebx + 8]
mov ecx, edi
call sym.___rust_dealloc
mov ecx, esi
mov edx, 4
call sym.___rust_dealloc
push dword [ebp - 0x10]
call sym.__Unwind_Resume
nop
pop esp
add byte [eax], al
add byte [esi], ah
add byte [eax], al
push ebx
add byte [eax], al
add byte [ebx], dl
add byte [eax], al
nop word cs:[eax + eax]
nop
Function at 0x100c78b0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x34
mov eax, dword [ebp + 8]
mov esi, ecx
mov ecx, dword [ebp + 0xc]
mov edi, edx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0x103
lea edx, [ebp - 0x14]
push 0
push 0
push ecx
push eax
push edx
push 0
push 0
push 0
push edi
call sub.ntdll.dll_NtReadFile
cmp eax, 0x103
jne 0x100c78f8
push 0xffffffffffffffff
push edi
call sub.kernel32.dll_WaitForSingleObject
mov eax, dword [ebp - 0x14]
cmp eax, 0xc0000011
jne 0x100c7908
mov dword [esi + 4], 0
jmp 0x100c7919
cmp eax, 0x103
je 0x100c7931
test eax, eax
js 0x100c7923
mov eax, dword [ebp - 0x10]
mov dword [esi + 4], eax
mov byte [esi], 4
add esp, 0x34
pop esi
pop edi
pop ebp
ret
push eax
call sub.ntdll.dll_RtlNtStatusToDosError
mov byte [esi], 0
mov dword [esi + 4], eax
jmp 0x100c791c
lea eax, [ebp - 0xc]
mov dword [ebp - 0x3c], 0x101c272c
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x24]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x30], 0
push eax
push ecx
push edx
call dbg.write_fmt<std::sys::windows::stdio::Stderr>
add esp, 0xc
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
call dbg.drop_in_place<core::option::Option<std::io::error::Error>>
mov ecx, 7
int 0x29
ud2

Function at 0x100c8bd0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, ecx
lea ecx, [ebp - 0x18]
push dword [ebp + 8]
call dbg.inner
add esp, 4
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
cmp ecx, 0x80000000
je 0x100c8c1f
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x18]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], eax
call dbg.get_long_path
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
cmp ebx, 0x80000000
jne 0x100c8c2c
mov eax, dword [ebp - 0x1c]
mov dword [esi + 4], eax
mov dword [esi], edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
push edi
call sub.kernel32.dll_CreateDirectoryW
test eax, eax
je 0x100c8c41
mov byte [esi], 4
test ebx, ebx
jne 0x100c8c50
jmp 0x100c8c24
call sub.kernel32.dll_GetLastError
mov byte [esi], 0
mov dword [esi + 4], eax
test ebx, ebx
je 0x100c8c24
mov ecx, edi
mov edx, 2
call sym.___rust_dealloc
jmp 0x100c8c24
Function at 0x100ca1f0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push eax
mov esi, ecx
test ecx, ecx
jne 0x100ca207
movzx eax, byte [0x1022a074]
test al, al
je 0x100ca224
mov byte [0x1022a074], 1
call sym.std::io::stdio::OUTPUT_CAPTURE::__getit::h6acbd9f82718a852
test eax, eax
je 0x100ca228
mov ecx, dword [eax]
mov dword [eax], esi
mov eax, ecx
add esp, 4
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
jmp 0x100ca21b
test esi, esi
je 0x100ca238
lock dec dword [esi]
jne 0x100ca238
mov ecx, esi
call dbg.drop_slow<std::sync::mutex::Mutex<alloc::vec::Vec<u8, alloc::alloc::Global>>, alloc::alloc::Global>
lea eax, [ebp - 9]
mov ecx, 0x101c40bc
mov edx, 0x46
push 0x101c19cc
push 0x101c0ea0
push eax
call dbg.unwrap_failed
mov edi, eax
test esi, esi
je 0x100ca267
lock dec dword [esi]
jne 0x100ca267
mov ecx, esi
call dbg.drop_slow<std::sync::mutex::Mutex<alloc::vec::Vec<u8, alloc::alloc::Global>>, alloc::alloc::Global>
push edi
call sym.__Unwind_Resume
nop dword [eax]

Function at 0x100ca270
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [0x101631e8]
test eax, eax
je 0x100ca329
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 2
jb 0x100ca29e
cmp dword [eax + 4], 0
mov edi, eax
je 0x100ca29e
add edi, 8
jmp 0x100ca323
mov eax, dword [0x101631e8]
test eax, eax
je 0x100ca338
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 1
je 0x100ca321
mov esi, eax
test eax, eax
jne 0x100ca2f7
movzx eax, byte [0x1022a138]
mov ecx, 0xc
mov edx, 4
call sym.___rust_alloc
test eax, eax
je 0x100ca353
mov dword [eax], 0x101631e8
mov dword [eax + 4], 0
mov esi, eax
mov eax, dword [0x101631e8]
test eax, eax
je 0x100ca347
dec eax
push esi
push eax
call sub.kernel32.dll_TlsSetValue
mov ecx, dword [esi + 8]
cmp dword [esi + 4], 0
lea edi, [esi + 8]
mov dword [esi + 4], 1
mov dword [esi + 8], 0
je 0x100ca323
test ecx, ecx
je 0x100ca323
lock dec dword [ecx]
jne 0x100ca323
call dbg.drop_slow<std::sync::mutex::Mutex<alloc::vec::Vec<u8, alloc::alloc::Global>>, alloc::alloc::Global>
jmp 0x100ca323
xor edi, edi
mov eax, edi
pop esi
pop edi
pop ebp
ret
mov ecx, 0x101631e8
call dbg.init
jmp 0x100ca283
mov ecx, 0x101631e8
call dbg.init
jmp 0x100ca2ac
mov ecx, 0x101631e8
call dbg.init
jmp 0x100ca2f0
mov ecx, 4
mov edx, 0xc
call dbg.handle_alloc_error
nop word cs:[eax + eax]
nop dword [eax]
Function at 0x100ca690
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1ac
movzx eax, word [edx + 8]
mov esi, ecx
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [0x1022a0ec]
cmp eax, 3
jne 0x100ca85e
cmp ebx, 0x17f
ja 0x100ca873
lea eax, [ebp - 0x1b8]
mov edi, ebx
push ebx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [ebx + 1]
cmp ebx, 6
mov byte [ebp + ebx - 0x1b8], 0
ja 0x100ca708
xor edx, edx
nop dword [eax]
cmp byte [ebp + edx - 0x1b8], 0
je 0x100ca7d0
inc edx
cmp eax, edx
jne 0x100ca6f0
jmp 0x100ca826
lea ecx, [ebp - 0x1b5]
lea edx, [ebp - 0x1b8]
mov dword [ebp - 0x10], esi
and ecx, 0xfffffffc
sub ecx, edx
je 0x100ca74c
je 0x100ca74c
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [ebp + edx - 0x1b8], 0
je 0x100ca7cd
inc edx
cmp ecx, edx
jne 0x100ca730
lea edx, [ebx - 7]
cmp ecx, edx
jbe 0x100ca751
jmp 0x100ca7a1
lea edx, [ebx - 7]
xor ecx, ecx
movdqa xmm0, xmmword [0x10166550]
movdqa xmm1, xmmword [0x10166560]
nop word cs:[eax + eax]
nop dword [eax + eax]
movq xmm2, qword [ebp + ecx - 0x1b8]
movdqa xmm3, xmm2
paddd xmm3, xmm0
pandn xmm2, xmm3
pand xmm2, xmm1
movd edi, xmm2
pshufd xmm2, xmm2, 0x55
movd esi, xmm2
or esi, edi
jne 0x100ca7a1
add ecx, 8
cmp ecx, edx
jbe 0x100ca770
mov esi, dword [ebp - 0x10]
sub eax, ecx
je 0x100ca826
lea edi, [ebp + ecx - 0x1b8]
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp byte [edi + edx], 0
je 0x100ca820
inc edx
cmp eax, edx
jne 0x100ca7c0
jmp 0x100ca826
mov esi, dword [ebp - 0x10]
cmp edx, ebx
jne 0x100ca826
pxor xmm0, xmm0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x38]
movdqu xmmword [ebp - 0x38], xmm0
movdqu xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x30], 1
push eax
push ecx
push 0
lea eax, [ebp - 0x1b8]
push eax
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x100ca83f
call sub.ws2_32.dll_WSAGetLastError
mov dword [esi + 8], eax
mov dword [esi + 4], 0
mov eax, 1
jmp 0x100ca851
add edx, ecx
cmp edx, ebx
je 0x100ca7d4
mov eax, dword [0x101c1e08]
mov ecx, dword [0x101c1e0c]
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
mov dword [esi], 1
jmp 0x100ca853
mov eax, dword [ebp - 0x18]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x14]
mov word [esi + 0xc], ax
xor eax, eax
mov dword [esi], eax
add esp, 0x1ac
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, ecx
call dbg.initialize<unsafe extern "system" fn() -> i32, std::sync::once_lock::{impl#0}::get_or_init::{closure_env#0}<unsafe extern "system" fn() -> i32, std::sys::windows::net::init::{closure_env#0}>, !>
mov ecx, edi
cmp ebx, 0x17f
jbe 0x100ca6c4
mov edx, ecx
mov ecx, esi
push dword [ebp - 0x14]
push ebx
call dbg.run_with_cstr_allocating<std::sys_common::net::LookupHost, std::sys_common::net::{impl#6}::try_from::{closure_env#0}>
add esp, 0x1b4
jmp 0x100ca859