joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4506f4
Capabilities:
Get keyboard layout
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffda0
push ebx
xor edx, edx
mov dword [ebp - 0x260], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x45089f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
jne 0x450880
mov dl, 1
mov eax, dword [0x412760]
call fcn.00403cb8
mov edx, dword [ebp - 4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 4]
add eax, 0x38
call fcn.00404a38
lea eax, [ebp - 0x114]
push eax
push 0x40
call sub.user32.dll_GetKeyboardLayoutList
dec eax
test eax, eax
jl 0x45086f
inc eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x114]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call fcn.0043e728
test al, al
je 0x450862
lea eax, [ebp - 0xc]
push eax
push 0x20019
push 0
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x25c], eax
mov byte [ebp - 0x258], 0
lea ecx, [ebp - 0x25c]
mov edx, 0x4508b0
lea eax, [ebp - 0x254]
call fcn.00409630
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x450862
xor eax, eax
push ebp
push 0x45085b
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 8], pe_nt_image_headers32
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x214]
push eax
push 0
push 0
push 0x4508e8
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x450844
lea eax, [ebp - 0x260]
lea edx, [ebp - 0x214]
mov ecx, pe_nt_image_headers32
call fcn.00404ca8
mov edx, dword [ebp - 0x260]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x3c]
jne 0x450844
mov eax, dword [ebp - 4]
add eax, 0x38
lea edx, [ebp - 0x214]
mov ecx, pe_nt_image_headers32
call fcn.00404ca8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x450862
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret
add dword [ebp - 0x14], 4
dec dword [ebp - 0x10]
jne 0x450765
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov byte [eax + 0x1d], 0
mov dl, 1
call fcn.0041623c
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4508a6
lea eax, [ebp - 0x260]
call fcn.00404a38
ret

Function at 0x4511d4
Capabilities:
Create thread
Set global application hook

Disassembly:
push ecx
mov eax, dword [0x45abdc]
cmp byte [eax + 0xa5], 0
jne 0x451245
cmp dword [0x45abf4], 0
jne 0x451206
call sub.kernel32.dll_GetCurrentThreadId_1
push eax
push 0
mov eax, 0x451190
push eax
push 3
call sub.user32.dll_SetWindowsHookExA
mov dword [0x45abf4], eax
cmp dword [0x45abf0], 0
jne 0x451221
push 0
push 0
push 0
push 0
call sub.kernel32.dll_CreateEventA
mov dword [0x45abf0], eax
cmp dword [0x45abf8], 0
jne 0x451245
push esp
push 0
push 0
push 0x451134
push 0x3e8
push 0
call sub.kernel32.dll_CreateThread
mov dword [0x45abf8], eax
pop edx
ret
Function at 0x45133c
Capabilities:
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffefc
push ebx
push esi
test dl, dl
je 0x451353
add esp, 0xfffffff0
call fcn.0040400c
mov byte [ebp - 1], dl
mov ebx, eax
xor edx, edx
mov eax, ebx
call fcn.0041a04c
mov eax, dword [0x459064]
cmp word [eax + 2], 0
jne 0x45137b
mov eax, dword [0x459064]
mov dword [eax + 4], ebx
mov dword [eax], fcn.00452a2c
mov eax, dword [0x45911c]
cmp word [eax + 2], 0
jne 0x451395
mov eax, dword [0x45911c]
mov dword [eax + 4], ebx
mov dword [eax], fcn.00452c24
mov byte [ebx + 0x34], 0
mov dl, 1
mov eax, dword [0x412344]
call fcn.00403cb8
mov dword [ebx + 0x90], eax
mov dl, 1
mov eax, dword [0x412344]
call fcn.00403cb8
mov dword [ebx + 0xa8], eax
xor eax, eax
mov dword [ebx + 0x60], eax
xor eax, eax
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x5c], 0xff000018
mov dword [ebx + 0x78], 0x1f4
mov byte [ebx + 0x7c], 1
xor eax, eax
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x74], 0x9c4
mov byte [ebx + 0x88], 0
mov byte [ebx + 0x9d], 1
mov byte [ebx + 0xb4], 1
mov dl, 1
mov eax, dword [0x41c580]
call fcn.004238f8
mov esi, eax
mov dword [ebx + 0x98], esi
push 0x45151c
mov eax, dword [0x458f8c]
mov eax, dword [eax]
push eax
call sub.user32.dll_LoadIconA
mov edx, eax
mov eax, esi
call fcn.00423cc8
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], 0x4531c4
push pe_nt_image_headers32
lea eax, [ebp - 0x101]
push eax
mov eax, dword [0x458f8c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetModuleFileNameA_1
lea eax, [ebp - 0x101]
push eax
lea eax, [ebp - 0x101]
push eax
call sub.user32.dll_OemToCharA
lea eax, [ebp - 0x101]
mov dl, 0x5c
call fcn.0040cdb4
test eax, eax
je 0x45148a
lea edx, [eax + 1]
lea eax, [ebp - 0x101]
call fcn.00409010
lea eax, [ebp - 0x101]
mov dl, 0x2e
call fcn.0040cddc
test eax, eax
je 0x45149e
mov byte [eax], 0
lea eax, [ebp - 0x101]
inc eax
push eax
call sub.user32.dll_CharLowerA
lea eax, [ebx + 0x8c]
lea edx, [ebp - 0x101]
mov ecx, pe_nt_image_headers32
call fcn.00404ca8
mov eax, dword [0x458e78]
cmp byte [eax], 0
jne 0x4514d2
mov eax, ebx
call fcn.00451644
mov byte [ebx + 0x59], 1
mov byte [ebx + 0x5a], 1
mov byte [ebx + 0x5b], 1
mov byte [ebx + 0x9e], 1
xor eax, eax
mov dword [ebx + 0xa0], eax
mov eax, ebx
call fcn.004533a0
mov eax, ebx
call fcn.00453d64
mov eax, ebx
cmp byte [ebp - 1], 0
je 0x451512
call fcn.00404064
pop dword fs:[0]
add esp, 0xc
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4518c4
Capabilities:
Enumerate gui resources

Disassembly:
push ebx
push esi
add esp, 0xfffffff8
mov ebx, eax
mov eax, dword [0x45abdc]
cmp dword [eax + 0x30], 0
je 0x45196e
cmp dword [ebx + 0x94], 0
jne 0x451968
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
mov byte [esp + 4], dl
mov eax, esp
push eax
push 0x451854
call sub.user32.dll_EnumWindows
mov eax, dword [ebx + 0x90]
cmp dword [eax + 8], 0
je 0x451968
push 3
mov eax, dword [esp + 4]
push eax
call sub.user32.dll_GetWindow
mov esi, eax
mov dword [esp], esi
push 0xffffffffffffffec
push esi
call sub.user32.dll_GetWindowLongA
test al, 8
je 0x45192e
mov dword [esp], 0xfffffffe
mov eax, dword [ebx + 0x90]
mov esi, dword [eax + 8]
dec esi
cmp esi, 0
jl 0x451968
push 0x213
push 0
push 0
push 0
push 0
mov eax, dword [esp + 0x14]
push eax
mov edx, esi
mov eax, dword [ebx + 0x90]
call fcn.004146ac
push eax
call sub.user32.dll_SetWindowPos
dec esi
cmp esi, 0xffffffff
jne 0x45193d
inc dword [ebx + 0x94]
pop ecx
pop edx
pop esi
pop ebx
ret

Function at 0x4524d0
Capabilities:
Get graphical window text

Disassembly:
push ebx
push esi
add esp, 0xffffff00
mov esi, edx
mov ebx, eax
cmp byte [ebx + 0xa4], 0
je 0x452505
push pe_nt_image_headers32
lea eax, [esp + 4]
push eax
mov eax, dword [ebx + 0x30]
push eax
call sub.user32.dll_GetWindowTextA
mov ecx, eax
mov edx, esp
mov eax, esi
call fcn.00404b28
jmp 0x452512
mov eax, esi
mov edx, dword [ebx + 0x8c]
call fcn.00404a8c
add esp, 0x100
pop esi
pop ebx
ret

Function at 0x45357c
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
mov ebx, eax
mov esi, dword [ebx + 0x84]
test esi, esi
je 0x4535bd
mov eax, esi
call fcn.00439de8
test al, al
je 0x4535bd
mov eax, dword [ebx + 0x84]
call fcn.00439b10
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x4535bd
push 0
mov eax, dword [ebx + 0x84]
call fcn.00439b10
push eax
call sub.user32.dll_ShowWindow
pop esi
pop ebx
ret
Function at 0x409820
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov dword [0x432410], eax
mov ecx, 1
sub ecx, 1
lea esi, [esi]
add ecx, 1
mov edx, dword [ecx*4 + 0x43240c]
mov eax, edx
shr eax, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
lea eax, [eax + ecx]
mov dword [ecx*4 + 0x432410], eax
cmp ecx, 0x26f
jl 0x409830
mov dword [0x428920], 0x270
ret

Function at 0x409870
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebx
mov eax, dword [0x431010]
cmp eax, dword [0x428440]
je 0x409888
mov dword [0x428920], 0x271
cmp dword [0x428920], 0x270
jl 0x4099a7
cmp dword [0x428920], 0x271
jne 0x4098bf
mov eax, dword [0x431010]
call fcn.00409820
mov eax, dword [0x431010]
not eax
mov dword [0x431010], eax
mov dword [0x428440], eax
mov ebx, 0
sub ebx, 1
nop
add ebx, 1
mov eax, dword [ebx*4 + 0x432414]
and eax, 0x7fffffff
mov edx, dword [ebx*4 + 0x432410]
and edx, 0x80000000
or edx, eax
mov ecx, edx
mov eax, ecx
shr eax, 1
mov edx, dword [ebx*4 + 0x432a44]
xor eax, edx
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x428930]
xor edx, eax
mov dword [ebx*4 + 0x432410], edx
cmp ebx, 0xe2
jl 0x4098c8
mov ebx, 0xe3
sub ebx, 1
mov esi, esi
add ebx, 1
mov eax, dword [ebx*4 + 0x432414]
and eax, 0x7fffffff
mov edx, dword [ebx*4 + 0x432410]
and edx, 0x80000000
or edx, eax
mov ecx, edx
mov eax, ecx
shr eax, 1
mov edx, dword [ebx*4 + 0x432084]
xor eax, edx
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x428930]
xor edx, eax
mov dword [ebx*4 + 0x432410], edx
cmp ebx, 0x26e
jl 0x40991c
mov eax, dword [0x432dcc]
and eax, 0x80000000
mov edx, dword [0x432410]
and edx, 0x7fffffff
or edx, eax
mov ecx, edx
mov eax, ecx
shr eax, 1
mov edx, dword [0x432a40]
xor edx, eax
and ecx, 1
mov eax, dword [ecx*4 + 0x428930]
xor eax, edx
mov dword [0x432dcc], eax
mov dword [0x428920], 0
mov eax, dword [0x428920]
mov eax, dword [eax*4 + 0x432410]
add dword [0x428920], 1
mov edx, eax
shr edx, 0xb
xor eax, edx
mov edx, eax
shl edx, 7
and edx, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor eax, edx
mov edx, eax
shr edx, 0x12
xor eax, edx
pop ebx
ret
Function at 0x40b3b0
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
push esi
push edi
mov ax, word [0x4281b0]
cmp ax, 0xcb
je 0x40b4ac
cmp ax, 0xcc
je 0x40b4ac
mov edx, dword [0x433020]
test edx, edx
je 0x40b3e2
mov eax, dword [0x432ec0]
call edx
mov ebx, eax
jmp 0x40b3e7
mov ebx, 0x432ec4
cmp word [0x432eb0], 0
jle 0x40b40a
mov eax, 0x432e90
call fcn.0040b630
mov eax, ebx
call fcn.0040af90
mov eax, ebx
call fcn.0040b000
mov edi, dword [ebx]
jmp 0x40b42a
mov esi, dword [edi + 4]
mov eax, dword [edi]
and eax, 1
jne 0x40b425
mov edx, edi
mov eax, ebx
call fcn.0040a450
jmp 0x40b428
and dword [edi], 0xfffffffe
mov edi, esi
test edi, edi
jne 0x40b410
mov dword [ebx], 0
mov dword [ebx + 0x88], 0
cmp word [0x432eb0], 0
jle 0x40b4ac
mov edx, 0x432dd0
mov eax, ebx
call fcn.0040a580
mov edi, eax
test edi, edi
je 0x40b47f
mov eax, dword [0x432e64]
mov dword [edi + 0xc], eax
cmp dword [0x432e64], 0
je 0x40b474
mov eax, dword [0x432e64]
mov dword [eax + 8], edi
mov eax, dword [ebx + 0x94]
mov dword [0x432e64], eax
sub word [0x432eb0], 1
cmp word [0x432eb0], 0
sete bl
mov eax, 0x432e90
call fcn.0040b640
test bl, bl
je 0x40b4ac
mov eax, 0x432e90
call fcn.0040b620
pop edi
pop esi
pop ebx
ret
Function at 0x4153e0
Capabilities:
Encode data using xor

Disassembly:
pop eax
cli
or ecx, dword [eax + 0xf8f9308]
or eax, 0x1f9e8672
xor dh, ch
and al, 0xfb
wait
mov ah, 0xf2
invalid
Function at 0x40bd80
Capabilities:
Decompress data using quicklz

Disassembly:
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x40bf4b
sub esp, 0x38
mov eax, dword [esp + 0x3c]
cmp eax, 0x7000000
jle 0x40bda9
mov eax, 0x7000000
jmp 0x40bdb1
test eax, eax
je 0x40bf26
mov dword [esp + 0x14], eax
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x18]
mov edx, dword [ecx + 0x94]
mov ebx, dword [ecx + 0x98]
mov ebp, edx
shl edx, 0x11
xor edx, ebp
mov ebp, ebx
xor ebx, edx
shr edx, 7
xor edx, ebx
mov ebx, ebp
shr ebp, 0x10
xor ebp, edx
lea edx, [ebp + ebx]
shr edx, 6
inc edx
mov dword [ecx + 0x94], ebx
mov dword [ecx + 0x98], ebp
mov dword [esp], edx
call sym.runtime.uint32tofloat64
movsd xmm0, qword [esp + 4]
movsd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
mov edx, eax
shr edx, 0xf
and edx, 0x1f
shl eax, 5
mov ebx, dword [esp + 0x28]
shr ebx, 0x1b
or ebx, eax
lea eax, [0x59b160]
movsd xmm0, qword [eax + edx*8]
mov ebp, ecx
add ecx, 0xfffffc01
add edx, 1
mov esi, 0
adc esi, 0
test esi, esi
jne 0x40bf3e
cmp edx, 0x21
jae 0x40bf32
movsd qword [esp + 0x18], xmm0
add ebp, 0xfffffc01
mov ebp, 0xffffffff
adc ebp, 0
and ebx, 0xfffff
mov dword [esp + 0x10], ebx
movsd xmm0, qword [eax + edx*8]
movsd qword [esp + 0x20], xmm0
mov dword [esp + 4], ebp
mov dword [esp], ecx
call sym.runtime.int64tofloat64
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x30], xmm0
mov dword [esp + 4], 0
mov eax, dword [esp + 0x10]
mov dword [esp], eax
call sym.runtime.uint64tofloat64
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x18]
addsd xmm0, xmm1
movsd xmm2, qword [esp + 0x20]
subsd xmm2, xmm1
movsd xmm1, qword [esp + 8]
mulsd xmm1, xmm2
movsd xmm2, qword [0x5142d8]
mulsd xmm2, xmm1
addsd xmm0, xmm2
movsd xmm1, qword [0x514340]
subsd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jbe 0x40bf01
xorps xmm0, xmm0
mov eax, dword [esp + 0x14]
cvtsi2sd xmm1, eax
movsd xmm2, qword [0x514390]
mulsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
inc eax
mov dword [esp + 0x40], eax
add esp, 0x38
ret
mov dword [esp + 0x40], 0
add esp, 0x38
ret
mov eax, edx
mov ecx, 0x21
call sym.runtime.panicIndexU
mov eax, edx
mov ecx, 0x21
call sym.runtime.panicExtendIndexU
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime.fastexprand
Function at 0x4157f0
Capabilities:
Check for software breakpoints

Disassembly:
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4159fe
sub esp, 0x18
mov eax, dword [0x5ce004]
test eax, eax
jne 0x4159e7
nop
nop
lea eax, [0x5cdff4]
mov dword [esp], eax
call sym.runtime.lock2
mov eax, dword [0x5cdff8]
test eax, eax
je 0x415838
cmp dword [eax + 8], 0xcc
jne 0x4158ae
mov edx, dword [0x5cdffc]
test edx, edx
jne 0x415890
mov dword [esp], 0x1000
mov dword [esp + 4], 0
lea eax, [0x5d27d0]
mov dword [esp + 8], eax
call sym.runtime.persistentalloc
mov eax, dword [esp + 0xc]
mov dword [0x5cdffc], eax
mov ecx, dword [0x5ce000]
mov dword [eax], ecx
mov eax, dword [0x5cdffc]
mov dword [0x5ce000], eax
movzx eax, byte [0x5ce4a0]
test al, al
jne 0x415890
xor eax, eax
jmp 0x4159b8
mov edx, dword [0x5cdffc]
mov ebx, dword [edx + 4]
mov dword [0x5cdffc], ebx
mov ebx, dword [0x5cdff8]
mov dword [edx + 4], ebx
mov dword [0x5cdff8], edx
mov edx, dword [0x5cdff8]
mov eax, dword [edx + 8]
cmp eax, 0xcc
jae 0x415997
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
lea eax, [edx + 8]
mov dword [esp], eax
mov dword [esp + 4], 1
call sym.runtime_internal_atomic.Xadd
mov eax, dword [0x5ce1f0]
mov ecx, dword [esp + 0x10]
lea ecx, [ecx + ecx*4]
test eax, eax
jne 0x4158f8
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
jmp 0x41590e
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x20]
mov dword [edi], eax
mov edx, dword [esp + 0x14]
mov ebx, dword [edx + ecx*4 + 0x10]
mov dword [edi + 4], ebx
mov dword [edx + ecx*4 + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [edx + ecx*4 + 0x18], eax
mov eax, dword [0x5ce1f0]
test eax, eax
jne 0x415932
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
jmp 0x415960
call sym.runtime.gcWriteBarrier6
mov eax, dword [esp + 0x28]
mov dword [edi], eax
mov ebx, dword [edx + ecx*4 + 0x1c]
mov dword [edi + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [edi + 8], ebx
mov ebp, dword [edx + ecx*4 + 0x20]
mov dword [edi + 0xc], ebp
mov ebp, dword [esp + 0x1c]
mov dword [edi + 0x10], ebp
mov esi, dword [edx + ecx*4 + 0x14]
mov dword [edi + 0x14], esi
mov dword [edx + ecx*4 + 0x1c], eax
mov dword [edx + ecx*4 + 0x20], ebx
mov dword [edx + ecx*4 + 0x14], ebp
nop
nop
lea eax, [0x5cdff4]
mov dword [esp], eax
call sym.runtime.unlock2
nop
lea eax, [0x5cdff0]
mov dword [esp], eax
mov dword [esp + 4], 8
call sym.runtime_internal_atomic.Or
add esp, 0x18
ret
mov ecx, 0xcc
call sym.runtime.panicIndexU
lea edx, [0x59a368]
movzx ebx, byte [edx + eax]
lea ebp, [0x5ce4a0]
mov byte [ebp + ecx], bl
lea eax, [ecx + 1]
cmp eax, 0x80
jge 0x415890
mov ecx, eax
mov eax, 0xcccccccd
imul ecx
add edx, ecx
sar edx, 2
lea edx, [edx + edx*4]
mov eax, ecx
sub eax, edx
cmp eax, 5
jb 0x4159a1
mov ecx, 5
call sym.runtime.panicIndex
lea eax, [0x4efe4a]
mov dword [esp], eax
mov dword [esp + 4], 0x18
call sym.runtime.throw
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime.queuefinalizer
Function at 0x4234f0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4235d8
sub esp, 0x1c
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x24]
cmp eax, ecx
jae 0x4235d2
mov ecx, dword [edx]
lea ecx, [ecx + eax*8]
mov dword [esp], ecx
call sym.runtime._atomicScavChunkData_.load
movzx eax, word [esp + 4]
movzx ecx, word [esp + 6]
mov edx, dword [esp + 8]
movzx ebx, byte [esp + 0xc]
mov word [esp + 0x10], ax
mov word [esp + 0x12], cx
mov dword [esp + 0x14], edx
mov byte [esp + 0x18], bl
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x2c]
lea edx, [esp + 0x10]
mov dword [esp], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime._scavChunkData_.alloc
movzx eax, byte [esp + 0x18]
test al, 2
je 0x423586
cmp word [esp + 0x10], 0x1f0
jbe 0x423586
and eax, 0xfffffffd
nop
mov byte [esp + 0x18], al
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x24]
cmp eax, ecx
jae 0x4235cd
mov ecx, dword [edx]
lea eax, [ecx + eax*8]
movzx ecx, word [esp + 0x10]
movzx edx, word [esp + 0x12]
mov ebx, dword [esp + 0x14]
movzx ebp, byte [esp + 0x18]
mov dword [esp], eax
mov word [esp + 4], cx
mov word [esp + 6], dx
mov dword [esp + 8], ebx
xchg ebp, eax
mov byte [esp + 0xc], al
xchg ebp, eax
call sym.runtime._atomicScavChunkData_.store
add esp, 0x1c
ret
call sym.runtime.panicIndexU
call sym.runtime.panicIndexU
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime._scavengeIndex_.alloc
Function at 0x4235f0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x423724
sub esp, 0x20
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x28]
cmp eax, ecx
jae 0x42371e
mov ecx, dword [edx]
lea ecx, [ecx + eax*8]
mov dword [esp], ecx
call sym.runtime._atomicScavChunkData_.load
movzx eax, word [esp + 4]
movzx ecx, word [esp + 6]
mov edx, dword [esp + 8]
movzx ebx, byte [esp + 0xc]
mov word [esp + 0x14], ax
mov word [esp + 0x16], cx
mov dword [esp + 0x18], edx
mov byte [esp + 0x1c], bl
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x2c]
lea edx, [esp + 0x14]
mov dword [esp], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime._scavChunkData_.free
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x28]
cmp edx, ecx
jae 0x423717
mov ecx, dword [eax]
lea ecx, [ecx + edx*8]
movzx ebx, word [esp + 0x14]
movzx ebp, word [esp + 0x16]
mov esi, dword [esp + 0x18]
movzx edi, byte [esp + 0x1c]
mov dword [esp], ecx
mov word [esp + 4], bx
mov word [esp + 6], bp
mov dword [esp + 8], esi
xchg edi, eax
mov byte [esp + 0xc], al
xchg edi, eax
call sym.runtime._atomicScavChunkData_.store
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax - 1]
shl eax, 0xd
mov ecx, dword [esp + 0x28]
shl ecx, 0x16
add eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x28], eax
jae 0x4236da
mov dword [ecx + 0x28], eax
lea eax, [ecx + 0x20]
mov dword [esp], eax
call sym.runtime._atomicOffAddr_.Load
mov eax, dword [esp + 0x10]
cmp dword [esp + 4], eax
jae 0x423713
mov ecx, dword [esp + 0x24]
add ecx, 0x20
nop
mov dword [esp], ecx
xor ecx, ecx
sub ecx, eax
mov eax, 0
sbb eax, 0
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
call sym.runtime_internal_atomic.Storeint64
add esp, 0x20
ret
mov eax, edx
call sym.runtime.panicIndexU
call sym.runtime.panicIndexU
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime._scavengeIndex_.free
Function at 0x429160
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4292a4
sub esp, 0x1c
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym.runtime.spanOfHeap
mov eax, dword [esp + 4]
test eax, eax
je 0x42928d
mov dword [esp + 0xc], eax
lea ecx, [eax + 0x4c]
mov dword [esp + 0x18], ecx
mov edx, dword [0x5ce0f0]
mov edx, dword fs:[edx]
mov edx, dword [edx]
mov ebx, dword [edx + 0x18]
nop
inc dword [ebx + 0x7c]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x14], edx
mov dword [esp], eax
call sym.runtime._mspan_.ensureSwept
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
sub eax, dword [ecx + 0xc]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x24]
movzx ebx, byte [edx + 6]
mov byte [esp + 0xa], bl
nop
mov ebp, dword [esp + 0x18]
mov dword [esp], ebp
call sym.runtime.lock2
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0x50]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0xa]
jmp 0x4291f7
mov ecx, ebp
mov ebp, dword [ecx]
test ebp, ebp
je 0x429222
movzx esi, word [ebp + 4]
cmp esi, edx
jne 0x42920c
cmp byte [ebp + 6], bl
je 0x429217
cmp esi, edx
ja 0x42921e
jne 0x4291f5
cmp byte [ebp + 6], bl
jbe 0x4291f5
jmp 0x42921e
mov ebx, 1
jmp 0x429224
xor ebx, ebx
jmp 0x429224
xor ebx, ebx
mov byte [esp + 0xb], bl
test bl, bl
jne 0x429242
mov ebx, dword [esp + 0x24]
mov word [ebx + 4], dx
mov edx, dword [ecx]
mov dword [ebx], edx
mov dword [ecx], ebx
mov dword [esp], eax
call sym.runtime.spanHasSpecials
nop
nop
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call sym.runtime.unlock2
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x7c]
lea edx, [ecx - 1]
nop
mov ebx, dword [0x5ce0f0]
mov ebx, dword fs:[ebx]
mov ebx, dword [ebx]
mov dword [eax + 0x7c], edx
cmp ecx, 1
jne 0x42927d
movzx eax, byte [ebx + 0x65]
test al, al
je 0x42927d
mov dword [ebx + 8], 0xfffffade
movzx eax, byte [esp + 0xb]
xor eax, 1
mov byte [esp + 0x28], al
add esp, 0x1c
ret
lea eax, [0x4f1cdf]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call sym.runtime.throw
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime.addspecial
Function at 0x429730
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4298a0
sub esp, 0x14
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 6]
cmp cl, 2
ja 0x429830
cmp cl, 1
je 0x4297c2
cmp cl, 2
jne 0x429889
mov ecx, dword [eax + 8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
call sym.runtime.mProf_Free
nop
nop
lea eax, [0x5b2600]
mov dword [esp], eax
call sym.runtime.lock2
mov eax, dword [0x5b25a4]
sub eax, dword [0x5b2588]
nop
mov dword [0x5b25a4], eax
mov eax, dword [0x5b2594]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [0x5b2594], ecx
nop
lea eax, [0x5b2600]
mov dword [esp], eax
call sym.runtime.unlock2
jmp 0x429885
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call sym.runtime.queuefinalizer
nop
nop
lea eax, [0x5b2600]
mov dword [esp], eax
call sym.runtime.lock2
mov eax, dword [0x5b257c]
sub eax, dword [0x5b2560]
nop
mov dword [0x5b257c], eax
mov eax, dword [0x5b256c]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [0x5b256c], ecx
nop
lea eax, [0x5b2600]
mov dword [esp], eax
call sym.runtime.unlock2
jmp 0x429885
cmp cl, 3
jne 0x42983b
mov byte [eax + 8], 1
jmp 0x429885
cmp cl, 4
jne 0x429889
nop
nop
lea eax, [0x5b2600]
mov dword [esp], eax
call sym.runtime.lock2
mov eax, dword [0x5b25f4]
sub eax, dword [0x5b25d8]
nop
mov dword [0x5b25f4], eax
mov eax, dword [0x5b25e4]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [0x5b25e4], ecx
nop
nop
lea eax, [0x5b2600]
mov dword [esp], eax
call sym.runtime.unlock2
add esp, 0x14
ret
lea eax, [0x4ece74]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call sym.runtime.throw
nop
call sym.runtime.morestack_noctxt
jmp sym.runtime.freeSpecial