joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10076f40
Capabilities:
Decrypt data via sspi

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
lea eax, [edx + 0x58]
mov edi, edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
lea eax, [edx + 8]
mov edx, dword [edx + 0xc4]
mov dword [ebp - 0x18], eax
xor eax, eax
mov ecx, eax
test edx, edx
je 0x10077017
mov esi, dword [edi + 0x50]
mov dword [ebp - 0x20], ecx
lea eax, [esi + esi]
cmp eax, edx
cmova edx, eax
cmp edx, 0x401
jae 0x10076f87
mov edx, 0x400
mov eax, dword [edi + 0x60]
cmp eax, edx
jae 0x10076f99
mov ecx, dword [ebp - 0x14]
call sym.alloc::vec::Vec_LT_T_C_A_GT_::resize::hc24f1d85dcad35d4
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x5c]
mov edx, eax
push 0x101bcbe8
mov dword [ebp - 0x1c], esi
push esi
call sym.__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_core..ops..index..IndexMut_LT_I_GT__GT_::index_mut::hfeab3d94b54a5140
pop ecx
pop ecx
mov esi, dword [edi + 0x34]
test esi, esi
je 0x10077032
mov ebx, edx
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x28]
push ebx
push eax
push esi
call sym.__LT_tokio..net..tcp..stream..TcpStream_u20_as_u20_tokio..io..async_read..AsyncRead_GT_::poll_read::h7957d67cc38e5571
add esp, 0xc
cmp byte [ebp - 0x28], 5
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov edx, 0xd01
mov esi, 0
cmove ecx, edx
cmove eax, esi
cmp cl, 4
je 0x10076fec
cmp cl, 4
jne 0x10077028
mov ecx, dword [ebp - 0x1c]
and dword [edi + 0x54], 0
add ecx, eax
mov dword [edi + 0x50], ecx
mov ecx, dword [ebp - 0x20]
mov edx, dword [edi + 0xc4]
sub edx, eax
cmovb edx, esi
test eax, eax
lea eax, [eax + ecx]
mov dword [edi + 0xc4], edx
jne 0x10076f62
mov eax, dword [ebp - 0x10]
mov dword [eax + 4], ecx
mov byte [eax], 4
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [ebp - 0x10]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x10077020
push 0x29
pop edx
mov ecx, str.assertion_failed:__self.context.is_null__
push 0x101bcfb8
call dbg.panic
Function at 0x10077044
Capabilities:
Decrypt data via sspi

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
mov esi, ecx
mov edi, edx
mov ecx, dword [edx + 0x5c]
mov edx, dword [edx + 0x60]
push 0x101bcb18
push dword [edi + 0x50]
call sym.__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_core..ops..index..IndexMut_LT_I_GT__GT_::index_mut::he96423e20647fda7
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x44]
cmove edx, eax
and dword [ecx + 0x24], 0
and dword [ecx + 0x28], 0
and dword [ecx + 0x2c], 0
mov dword [ecx], edx
mov dword [ecx + 4], 1
mov dword [ecx + 8], eax
lea eax, [ebp - 0x50]
and dword [ecx + 0x10], 0
and dword [ecx + 0xc], 0
and dword [ecx + 0x18], 0
and dword [ecx + 0x14], 0
and dword [ecx + 0x20], 0
and dword [ecx + 0x1c], 0
and dword [eax], 0
mov dword [eax + 4], 4
mov dword [eax + 8], ecx
lea ecx, [edi + 0x98]
push 0
push 0
push eax
push ecx
call sub.secur32.dll_DecryptMessage
cmp eax, 0x80090318
je 0x1007718f
test eax, eax
je 0x10077118
cmp eax, 0x90317
je 0x10077188
cmp eax, 0x90321
jne 0x1007719a
mov dword [edi + 0x80], 0x10000
mov byte [edi + 0x84], 0
xor eax, eax
cmp dword [ebp - 0x1c], 5
mov edx, dword [edi + 0x50]
jne 0x10077103
mov eax, dword [ebp - 0x20]
sub edx, eax
mov ecx, edi
call sym.schannel::tls_stream::TlsStream_LT_S_GT_::consume_enc_in::hc207685a0e44aab6
and dword [edi + 0xc4], 0
jmp 0x100771ab
mov eax, dword [ebp - 0x30]
mov ecx, dword [edi + 0x5c]
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x38]
mov edx, dword [edi + 0x60]
and dword [edi + 0x48], 0
lea ebx, [edi + 0x40]
mov dword [ebp - 0x14], ebx
sub eax, ecx
add esi, eax
push esi
push eax
call sym.__LT_alloc..vec..Vec_LT_T_C_A_GT__u20_as_u20_core..ops..index..Index_LT_I_GT__GT_::index::ha7a8d5df23ad27c5
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
mov esi, edx
mov edx, eax
add esi, eax
push esi
call fcn.100e5b8b
pop eax
and dword [edi + 0x3c], 0
and dword [edi + 0x38], 0
xor eax, eax
cmp dword [ebp - 0x1c], 5
mov edx, dword [edi + 0x50]
jne 0x10077164
mov eax, dword [ebp - 0x20]
sub edx, eax
mov ecx, edi
call sym.schannel::tls_stream::TlsStream_LT_S_GT_::consume_enc_in::hc207685a0e44aab6
mov eax, dword [edi + 0x50]
xor ecx, ecx
or eax, dword [edi + 0x54]
mov eax, dword [ebp - 0x10]
sete cl
mov word [eax], 4
mov dword [edi + 0xc4], ecx
jmp 0x100771b0
mov word [esi], 0x104
jmp 0x100771b0
cmp dword [ebp - 0x34], 4
jne 0x100771a2
mov eax, dword [ebp - 0x38]
jmp 0x100771a5
and dword [esi], 0
mov dword [esi + 4], eax
jmp 0x100771b0
xor eax, eax
inc eax
mov dword [edi + 0xc4], eax
mov word [esi], 4
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1007cab1
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test ecx, ecx
je 0x1007cab8
mov eax, ecx
ret
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push dword [ebp + 0x10]
call dbg.expect_failed
Function at 0x1008d220
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov ebx, edx
mov edx, dword [ebp + 8]
lea edi, [ebp - 0x30]
mov dword [ebp - 0x14], ecx
mov ecx, edi
push 0xb
call sym.winreg::to_utf16::hec6b5c2dd0c3af2a
pop eax
lea eax, [ebp - 0x10]
mov ecx, 0x800
mov dword [eax], 0x800
lea eax, [ebp - 0x18]
and dword [eax], 0
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::allocate_in::h24ca61b25c7d0029
lea ecx, [ebp - 0x24]
mov edi, dword [edi + 4]
mov esi, edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
lea eax, [ebp - 0x10]
push eax
push esi
lea eax, [ebp - 0x18]
push eax
push 0
push edi
push ebx
call sub.ADVAPI32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x1008d291
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x24]
call sym.alloc::vec::Vec_LT_T_C_A_GT_::reserve::h052675b2f6c40ee3
mov esi, dword [ebp - 0x20]
jmp 0x1008d268
test eax, eax
jne 0x1008d2af
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
cmp eax, 0xb
jbe 0x1008d2cb
mov dword [edx + 8], 0xde
jmp 0x1008d2b5
mov edx, dword [ebp - 0x14]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x24]
and dword [edx + 4], 0
mov dword [edx], 0x80000000
mov edx, esi
call sym.__LT_alloc..raw_vec..RawVec_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_::drop::h1e3cb15a61af7b6e
jmp 0x1008d2dd
mov ecx, dword [ebp - 0x1c]
movsd xmm0, qword [ebp - 0x24]
mov dword [edx + 8], ecx
movsd qword [edx], xmm0
mov byte [edx + 0xc], al
mov ecx, dword [ebp - 0x30]
mov edx, edi
call sym.core::ptr::drop_in_place_LT_alloc..vec..Vec_LT_u16_GT__GT_::he4d1242e14ae2551
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1009908a
Capabilities:
Get client handle via schannel
Get outbound credentials handle via credssp

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
and dword [ebp - 0x1c], 0
and dword [ebp - 0x18], 0
and dword [ebp - 0x48], 0
and dword [ebp - 0x4c], 0
and dword [ebp - 0x40], 0
and dword [ebp - 0x44], 0
and dword [ebp - 0x38], 0
and dword [ebp - 0x3c], 0
and dword [ebp - 0x30], 0
and dword [ebp - 0x34], 0
and dword [ebp - 0x2c], 0
and dword [ebp - 0x24], 0
cmp dword [edx + 0xc], 0x80000000
mov dword [ebp - 0x58], 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], 0x400010
je 0x100990e9
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
cmp dword [edx + 0x18], 0x80000000
je 0x10099113
mov eax, dword [edx + 0x20]
test eax, eax
je 0x1009910e
mov esi, dword [edx + 0x1c]
xor ecx, ecx
movzx edi, byte [esi]
inc esi
or ecx, dword [edi*4 + 0x101eb230]
dec eax
jne 0x100990fe
jmp 0x10099110
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [edx + 8]
lea eax, [esi*4]
test esi, esi
mov dword [ebp - 0x10], eax
je 0x10099158
cmp esi, 0x20000000
jae 0x100991d5
mov edi, dword [edx + 4]
push 4
pop ecx
mov edx, eax
call sym.__ZN63__LT_alloc..alloc..Global_u20_as_u20_core..alloc..Allocator_GT_8allocate17h4d3fea93a7ca0a04E.1414
test eax, eax
je 0x100991da
mov ebx, eax
xor eax, eax
mov ecx, dword [edi + eax*4]
mov dword [ebx + eax*4], ecx
inc eax
cmp esi, eax
jne 0x10099149
mov eax, esi
jmp 0x1009915d
xor eax, eax
push 4
pop ebx
lea ecx, [ebp - 0x58]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x1c]
mov dword [ecx + 8], ebx
push 0
push eax
push 0
push 0
push ecx
push 0
push 2
push 0x101be767
push 0
call sub.secur32.dll_AcquireCredentialsHandleA
test eax, eax
je 0x10099190
mov ecx, dword [ebp - 0x14]
and dword [ecx], 0
mov dword [ecx + 4], eax
jmp 0x100991bb
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
push 0x10
pop ecx
call sym.__ZN5alloc5alloc15exchange_malloc17hb61fce2610a36b72E.872
xor ecx, ecx
mov edx, dword [ebp - 0x14]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov edi, dword [ebp - 0x20]
mov dword [eax + 0xc], edi
mov dword [edx + 4], eax
mov byte [edx], 4
test esi, esi
je 0x100991cd
push 4
pop edx
mov ecx, ebx
push dword [ebp - 0x10]
call sym.__LT_alloc..alloc..Global_u20_as_u20_core..alloc..Allocator_GT_::deallocate::hfbcbcf7f85fde04c
pop eax
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret
call sym.alloc::raw_vec::capacity_overflow::h7b8b81325d19d337
push 4
pop ecx
mov edx, dword [ebp - 0x10]
call dbg.handle_alloc_error

Function at 0x10099705
Capabilities:
Get remote cert context via schannel

Disassembly:
push ebp
mov ebp, esp
push esi
push eax
lea eax, [ebp - 8]
mov esi, ecx
and dword [eax], 0
push eax
push 0x53
push edx
call sub.secur32.dll_QueryContextAttributesW
test eax, eax
je 0x10099727
and dword [esi], 0
mov dword [esi + 4], eax
jmp 0x10099730
mov eax, dword [ebp - 8]
mov dword [esi + 4], eax
mov byte [esi], 4
add esp, 4
pop esi
pop ebp
ret
Function at 0x1009a49f
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov eax, ecx
mov ecx, dword [ebp + 8]
cmp edx, ecx
jbe 0x1009a4af
add eax, ecx
pop ebp
ret
push dword [ebp + 0xc]
call dbg.panic_bounds_check
Function at 0x100a1ec8
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov ebx, dword [ebp + 8]
mov esi, ecx
cmp dl, 4
jne 0x100a1f30
mov eax, dword [0x1022a0ec]
cmp eax, 3
jne 0x100a1ff7
cmp word [ebx], 0
push 2
pop eax
push 0x17
pop edi
cmove edi, eax
push 0x81
push 0
push 0
push 0
push 2
push edi
call sub.ws2_32.dll_WSASocketW
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x100a1f4b
cmp word [ebx], 0
je 0x100a1f8c
mov eax, dword [ebx + 0x18]
movups xmm0, xmmword [ebx + 4]
lea ecx, [ebx + 0x14]
add ebx, 0x1c
mov dword [ebp - 0x14], eax
push 0x1c
pop eax
mov di, 0x17
jmp 0x100a1f9c
mov eax, edx
shr eax, 8
mov word [esi + 1], ax
mov eax, edx
shr eax, 0x18
mov byte [esi + 3], al
mov byte [esi], dl
mov dword [esi + 4], ebx
jmp 0x100a201f
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x2739
je 0x100a1f62
cmp eax, 0x2726
jne 0x100a2010
push 1
push 0
push 0
push 0
push 2
push edi
call sub.ws2_32.dll_WSASocketW
cmp eax, 0xffffffff
je 0x100a1ff0
mov edi, eax
push 0
push 1
push eax
call sub.kernel32.dll_SetHandleInformation
test eax, eax
je 0x100a2001
mov dword [ebp - 0x10], edi
jmp 0x100a1f11
lea ecx, [ebx + 2]
add ebx, 6
push 0x10
pop eax
mov di, 2
xorps xmm0, xmm0
movzx ebx, word [ebx]
lea edx, [ebp - 0x30]
mov ecx, dword [ecx]
mov word [edx], di
rol bx, 8
mov word [edx + 2], bx
mov ebx, dword [ebp - 0x14]
mov dword [edx + 4], ecx
movups xmmword [edx + 8], xmm0
mov dword [edx + 0x18], ebx
push eax
push edx
mov edi, dword [ebp - 0x10]
push edi
call sub.ws2_32.dll_bind
cmp eax, 0xffffffff
je 0x100a1fd4
mov dword [esi + 4], edi
mov byte [esi], 4
jmp 0x100a201f
call sub.ws2_32.dll_WSAGetLastError
xor ecx, ecx
mov byte [esi], cl
and word [esi + 1], 0
mov byte [esi + 3], cl
mov dword [esi + 4], eax
push edi
call sub.ws2_32.dll_closesocket
jmp 0x100a201f
call sub.ws2_32.dll_WSAGetLastError
jmp 0x100a2010
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}>, !>
jmp 0x100a1ee9
call sub.kernel32.dll_GetLastError
mov ebx, eax
push edi
call sub.ws2_32.dll_closesocket
mov eax, ebx
and word [esi + 1], 0
xor ecx, ecx
mov byte [esi + 3], cl
mov byte [esi], cl
mov dword [esi + 4], eax
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x100a2ac0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
movzx eax, byte [0x1022a0f4]
test al, al
je 0x100a2c48
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100a2ae6
cmp eax, 3
jne 0x100a2c48
mov edi, dword [0x1022a0f8]
test edi, edi
je 0x100a2c48
mov dword [ebp - 0x10], 0
jmp 0x100a2b07
mov edi, dword [edi + 8]
test edi, edi
je 0x100a2b36
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x100a2c87
dec esi
push esi
call sub.kernel32.dll_TlsGetValue
test eax, eax
je 0x100a2b00
push 0
push esi
mov esi, eax
call sub.kernel32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x100a2b00
test byte [ebp - 0x10], 1
je 0x100a2c48
mov edi, dword [0x1022a0f8]
test edi, edi
je 0x100a2c48
mov dword [ebp - 0x10], 0
jmp 0x100a2b67
mov edi, dword [edi + 8]
test edi, edi
je 0x100a2b96
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x100a2c87
dec esi
push esi
call sub.kernel32.dll_TlsGetValue
test eax, eax
je 0x100a2b60
push 0
push esi
mov esi, eax
call sub.kernel32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x100a2b60
test byte [ebp - 0x10], 1
je 0x100a2c48
mov edi, dword [0x1022a0f8]
test edi, edi
je 0x100a2c48
mov dword [ebp - 0x10], 0
jmp 0x100a2bc7
mov edi, dword [edi + 8]
test edi, edi
je 0x100a2bf6
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x100a2c87
dec esi
push esi
call sub.kernel32.dll_TlsGetValue
test eax, eax
je 0x100a2bc0
push 0
push esi
mov esi, eax
call sub.kernel32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x100a2bc0
test byte [ebp - 0x10], 1
je 0x100a2c48
mov edi, dword [0x1022a0f8]
test edi, edi
je 0x100a2c48
mov dword [ebp - 0x10], 0
jmp 0x100a2c17
mov edi, dword [edi + 8]
test edi, edi
je 0x100a2c42
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x100a2c87
dec esi
push esi
call sub.kernel32.dll_TlsGetValue
test eax, eax
je 0x100a2c10
push 0
push esi
mov esi, eax
call sub.kernel32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x100a2c10
test byte [ebp - 0x10], 1
jne 0x100a2c52
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov edi, dword [0x1022a0f8]
jmp 0x100a2c5d
mov edi, dword [edi + 8]
test edi, edi
je 0x100a2c48
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x100a2c87
dec esi
push esi
call sub.kernel32.dll_TlsGetValue
test eax, eax
je 0x100a2c5a
push 0
push esi
mov esi, eax
call sub.kernel32.dll_TlsSetValue
push esi
call ebx
add esp, 4
jmp 0x100a2c5a
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value
push 0x101c2cfc
call dbg.panic
add esp, 4
ud2
Function at 0x100a34d0
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
cmp dword [ecx + 4], 0
mov esi, ecx
je 0x100a3540
lea ebx, [esi + 0xc]
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push 0
push eax
push 0
push ebx
call sub.kernel32.dll_InitOnceBeginInitialize
cmp eax, 1
mov dword [ebp - 0x10], eax
jne 0x100a357a
cmp dword [ebp - 0x14], 0
je 0x100a3561
call sub.kernel32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x100a3597
mov edi, eax
inc eax
mov dword [esi], eax
mov eax, dword [0x1022a0f8]
nop
mov dword [esi + 8], eax
lock cmpxchg dword [0x1022a0f8], esi
jne 0x100a3520
mov byte [0x1022a0f4], 1
push 0
push 0
push ebx
call sub.kernel32.dll_InitOnceComplete
jmp 0x100a3570
call sub.kernel32.dll_TlsAlloc
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x100a35d1
mov ecx, eax
xor eax, eax
inc ecx
lock cmpxchg dword [esi], ecx
jne 0x100a3565
mov edi, dword [ebp - 0x10]
jmp 0x100a3570
mov edi, dword [esi]
jmp 0x100a356f
mov edi, eax
push dword [ebp - 0x10]
call sub.kernel32.dll_TlsFree
dec edi
mov eax, edi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x2c], 0
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x10]
mov edx, 0x101c2c78
push 0x101c2cd8
push eax
call dbg.assert_failed<i32, i32>
push 0
push 4
push ebx
call sub.kernel32.dll_InitOnceComplete
lea ecx, [ebp - 0x2c]
mov edx, 0x101c2cc8
mov dword [ebp - 0x2c], 0x101c2c90
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srccharmethods.rs_
mov dword [ebp - 0x20], 0
call dbg.panic_fmt
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x101c2c90
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srccharmethods.rs_
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call dbg.assert_failed<u32, u32>
nop
Function at 0x100a3900
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [0x101631c8]
test eax, eax
je 0x100a39b9
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 2
jb 0x100a392e
cmp dword [eax + 4], 0
mov edi, eax
je 0x100a392e
add edi, 8
jmp 0x100a39b3
mov eax, dword [0x101631c8]
test eax, eax
je 0x100a39c8
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 1
je 0x100a39b1
mov esi, eax
test eax, eax
jne 0x100a3987
movzx eax, byte [0x1022a138]
mov ecx, 0xc
mov edx, 4
call sym.___rust_alloc
test eax, eax
je 0x100a39e3
mov dword [eax], 0x101631c8
mov dword [eax + 4], 0
mov esi, eax
mov eax, dword [0x101631c8]
test eax, eax
je 0x100a39d7
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 0x100a39b3
test ecx, ecx
je 0x100a39b3
lock dec dword [ecx]
jne 0x100a39b3
call dbg.drop_slow<std::thread::Inner, alloc::alloc::Global>
jmp 0x100a39b3
xor edi, edi
mov eax, edi
pop esi
pop edi
pop ebp
ret
mov ecx, 0x101631c8
call dbg.init
jmp 0x100a3913
mov ecx, 0x101631c8
call dbg.init
jmp 0x100a393c
mov ecx, 0x101631c8
call dbg.init
jmp 0x100a3980
mov ecx, 4
mov edx, 0xc
call dbg.handle_alloc_error
nop word cs:[eax + eax]
nop dword [eax]

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

Disassembly:
push ebp
mov ebp, esp
push esi
mov eax, dword [0x101631d8]
test eax, eax
je 0x100a3cb5
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 2
jb 0x100a3c51
cmp byte [eax + 4], 0
mov esi, eax
jne 0x100a3ca9
mov eax, dword [0x101631d8]
test eax, eax
je 0x100a3cc4
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 1
je 0x100a3cae
mov esi, eax
test eax, eax
jne 0x100a3ca3
movzx eax, byte [0x1022a138]
mov ecx, 8
mov edx, 4
call sym.___rust_alloc
test eax, eax
je 0x100a3cdc
mov dword [eax], 0x101631d8
mov byte [eax + 4], 0
mov esi, eax
mov eax, dword [0x101631d8]
test eax, eax
je 0x100a3cd0
dec eax
push esi
push eax
call sub.kernel32.dll_TlsSetValue
mov word [esi + 4], 1
add esi, 5
jmp 0x100a3cb0
xor esi, esi
mov eax, esi
pop esi
pop ebp
ret
mov ecx, 0x101631d8
call dbg.init
jmp 0x100a3c3e
mov ecx, 0x101631d8
call dbg.init
jmp 0x100a3c5b
mov ecx, 0x101631d8
call dbg.init
jmp 0x100a3c9c
mov ecx, 4
mov edx, 8
call dbg.handle_alloc_error
nop dword [eax + eax]
Function at 0x100a3ee0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, edx
call 0x100a3d00
pop edx
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 8]
test edx, edx
je 0x100a3df7
mov dword [ebp - 0x18], ecx
lea ecx, [eax + 0xd]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
xor ecx, ecx
jmp 0x100a3d43
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
cmp ecx, edx
jae 0x100a3dfc
mov ebx, edx
mov byte [eax + 0xc], 1
sub ebx, ecx
jb 0x100a3e66
mov eax, dword [eax + 4]
mov esi, ecx
add eax, ecx
mov edx, 0xfffffff5
lea ecx, [ebp - 0x28]
push dword [ebp - 0x14]
push ebx
push eax
call dbg.write
add esp, 0xc
movzx eax, byte [ebp - 0x28]
mov edi, dword [ebp - 0x24]
cmp al, 4
jne 0x100a3da0
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
mov byte [ecx + 0xc], 0
movzx ecx, al
mov ecx, dword [ecx*4 + 0x100a3ecc]
add ecx, dword [ebp - 0x20]
jmp ecx
test al, al
jne 0x100a3d78
cmp edi, 6
jne 0x100a3d78
mov eax, dword [ebp - 0x10]
mov edi, ebx
mov byte [eax + 0xc], 0
test edi, edi
je 0x100a3e20
mov ecx, esi
add ecx, edi
jmp 0x100a3d35
mov byte [ecx], 4
jmp 0x100a3e5e
mov eax, dword [ebp - 0x18]
test ecx, ecx
mov byte [eax], 4
je 0x100a3e5e
cmp edx, ecx
jb 0x100a3e81
mov eax, dword [ebp - 0x10]
mov dword [eax + 8], 0
jmp 0x100a3e5e
mov eax, dword [ebp - 0x18]
mov byte [eax], 2
mov dword [eax + 4], 0x101c1574
mov ecx, esi
test esi, esi
je 0x100a3e5e
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
mov edi, edx
sub edi, ecx
jb 0x100a3e77
mov dword [eax + 8], 0
je 0x100a3e5e
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 4]
add ecx, eax
push edi
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov dword [esi + 8], edi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, ecx
push 0x101c15a8
call dbg.slice_start_index_len_fail
add esp, 4
ud2
push 0x101e96c0
call dbg.slice_end_index_len_fail
push 0x101e96c0
call dbg.slice_end_index_len_fail
cmp dword [ebx + 4], 0
mov dword [ebp - 0x14], eax
je 0x100a3e9f
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x1c]
call sym.___rust_dealloc
mov ecx, edi
mov edx, 4
call sym.___rust_dealloc
jmp 0x100a3eb2
mov ecx, dword [ebp - 0x10]
mov edx, esi
call sym.core::ptr::drop_in_place_LT_std..io..buffered..bufwriter..BufWriter_LT_W_GT_..flush_buf..BufGuard_GT_::h04202d1e86fe16a6
push dword [ebp - 0x14]
call sym.__Unwind_Resume
call dbg.panic_in_cleanup
nop dword [eax]
push ss
add dword [eax], eax
add byte [edi], bl
add byte [eax], al
add byte [ecx - 0x41000000], dl
add byte [eax], al
add byte [edx + 0x55000000], dh
push ebp
mov ebp, esp
push edi
push esi
test edx, edx
je 0x100a3f10
mov eax, dword [ecx + 8]
mov esi, ecx
mov edi, eax
sub edi, edx
jb 0x100a3f14
mov dword [esi + 8], 0
je 0x100a3f10
mov eax, dword [esi + 4]
add edx, eax
push edi
push edx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov dword [esi + 8], edi
pop esi
pop edi
pop ebp
ret
mov ecx, edx
mov edx, eax
push 0x101e96c0
call dbg.slice_end_index_len_fail
nop word cs:[eax + eax]
nop dword [eax]
Function at 0x100a4770
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov eax, dword [0x101631b8]
test eax, eax
je 0x100a4809
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 2
jb 0x100a4798
cmp dword [eax + 4], 0
je 0x100a4798
add eax, 8
jmp 0x100a4806
mov eax, dword [0x101631b8]
test eax, eax
je 0x100a4818
dec eax
push eax
call sub.kernel32.dll_TlsGetValue
cmp eax, 1
je 0x100a4804
mov esi, eax
test eax, eax
jne 0x100a47ed
movzx eax, byte [0x1022a138]
mov ecx, 0x10
mov edx, 4
call sym.___rust_alloc
test eax, eax
je 0x100a4833
mov dword [eax], 0x101631b8
mov dword [eax + 4], 0
mov esi, eax
mov eax, dword [0x101631b8]
test eax, eax
je 0x100a4827
dec eax
push esi
push eax
call sub.kernel32.dll_TlsSetValue
lea eax, [esi + 8]
mov dword [esi + 4], 1
mov dword [esi + 8], 0
mov byte [esi + 0xc], 0
jmp 0x100a4806
xor eax, eax
pop esi
pop ebp
ret
mov ecx, 0x101631b8
call dbg.init
jmp 0x100a4782
mov ecx, 0x101631b8
call dbg.init
jmp 0x100a47a2
mov ecx, 0x101631b8
call dbg.init
jmp 0x100a47e6
mov ecx, 4
mov edx, 0x10
call dbg.handle_alloc_error
nop word cs:[eax + eax]
nop dword [eax]