joyce8/EMBER2024-capa huggingface dataset:
Function at 0x300415e8
Capabilities:
Get common file path
Query or enumerate registry value
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [0x300222cc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x104
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
je 0x30041628
lea eax, [ebp - 0x108]
push eax
push 0x300055c0
call edi
push 0x300055b0
call fcn.3003f77c
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x10c], eax
je 0x300416e4
push 0x3000559c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
je 0x300416d8
lea eax, [ebp - 0x108]
push eax
push ebx
push ebx
push 0x26
push ebx
call esi
test eax, eax
jne 0x30041678
lea eax, [ebp - 0x108]
push eax
push 0x30005590
call edi
lea eax, [ebp - 0x108]
push eax
push ebx
push ebx
push 0x2b
push ebx
call esi
test eax, eax
jne 0x30041698
lea eax, [ebp - 0x108]
push eax
push 0x30005584
call edi
lea eax, [ebp - 0x108]
push eax
push ebx
push ebx
push 0x1a
push ebx
call esi
test eax, eax
jne 0x300416b8
lea eax, [ebp - 0x108]
push eax
push 0x3000557c
call edi
lea eax, [ebp - 0x108]
push eax
push ebx
push ebx
push 5
push ebx
call esi
test eax, eax
jne 0x300416d8
lea eax, [ebp - 0x108]
push eax
push 0x30005570
call edi
push dword [ebp - 0x10c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x110]
push eax
push 0x20019
push ebx
push 0x3000553c
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x30041776
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x108]
push eax
push ebx
push ebx
push 0x30005534
push dword [ebp - 0x110]
mov dword [ebp - 0x10c], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x3004176a
lea eax, [ebp - 0x108]
lea esi, [ebp - 0x108]
push eax
dec esi
call fcn.30059eb2
cmp byte [eax + esi], 0x5c
jne 0x3004175c
lea eax, [ebp - 0x108]
push eax
call fcn.30059eb2
mov byte [eax + esi], bl
lea eax, [ebp - 0x108]
push eax
push 0x30005528
call edi
push dword [ebp - 0x110]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.30069776
leave
ret

Function at 0x30041785
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push edi
xor edi, edi
cmp dword [ebp + 8], edi
jne 0x30041796
xor eax, eax
jmp 0x300417f3
cmp dword [ebp + 0x10], edi
push esi
je 0x300417bf
push dword [ebp + 0x10]
call fcn.30043102
mov esi, eax
cmp esi, edi
jne 0x300417ae
xor eax, eax
jmp 0x300417f2
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call sub.MSVCR80.dll_memcpy
add esp, 0xc
jmp 0x300417c2
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 8]
push eax
push edi
push esi
push dword [ebp + 8]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, edi
mov dword [ebp - 4], eax
jne 0x300417e0
push esi
call dword [ebp + 8]
jmp 0x300417ef
mov ecx, dword [0x300bccd0]
lea eax, [ebp - 4]
push eax
call fcn.30025d49
mov eax, dword [ebp - 4]
pop esi
pop edi
leave
ret 0xc
Function at 0x3004329f
Capabilities:
Set thread local storage value

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, edx
jb 0x300432c0
mov eax, dword [eax + 8]
cmp ecx, eax
jb 0x300432c0
cmp edx, eax
jb 0x300432c0
add eax, 0x10000
cmp eax, ecx
jae 0x300432eb
mov eax, dword [0x3008bb00]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push 0
push 0x35636561
call fcn.300435b4
push 0
push 0
push 1
push 0xe0000001
call dword [sym.imp.KERNEL32.dll_RaiseException]
ret

Function at 0x30043cef
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
je 0x30043d35
push edi
push esi
push esi
push 0x80
push 2
push esi
push 1
push 0xc0000000
push dword [ebp + 8]
call fcn.3005ec81
mov edi, eax
cmp edi, 0xffffffff
je 0x30043d34
push esi
lea eax, [ebp + 8]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
ret

Function at 0x3004405d
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
push edi
xor edi, edi
cmp ebx, edi
mov dword [ebp - 4], edi
jne 0x3004407f
push edi
push 0x36717370
call fcn.300435b4
jmp 0x300441bc
push esi
mov esi, dword [ebp + 0x10]
cmp esi, edi
jne 0x30044092
push edi
push 0x36717371
jmp 0x30044191
cmp dword [ebp + 8], 2
je 0x300440af
cmp dword [ebp + 8], 8
je 0x300440af
cmp dword [ebp + 8], 3
je 0x300440af
push edi
push 0x36717372
jmp 0x30044191
cmp dword [ebx], edi
je 0x300440be
push edi
push 0x36717373
call fcn.300435b4
cmp dword [esi], edi
je 0x300440cd
push edi
push 0x37667270
call fcn.300435b4
push esi
push edi
push dword [ebp + 8]
mov dword [esi], edi
call sub.Secur32.dll_GetUserNameExW
movzx edi, al
call dword [sym.imp.KERNEL32.dll_GetLastError]
test edi, edi
jne 0x30044198
cmp eax, 0xea
jne 0x30044198
mov eax, dword [esi]
push 2
xor ecx, ecx
pop edx
mul edx
seto cl
neg ecx
or eax, ecx
push eax
call fcn.30043102
test eax, eax
mov dword [ebx], eax
jne 0x3004411c
push eax
push 0x36717375
jmp 0x3004419f
mov ecx, dword [esi]
mov edi, dword [ebp + 8]
mov dword [ebp - 4], ecx
lea ecx, [ebp - 4]
push ecx
push eax
push edi
call sub.Secur32.dll_GetUserNameExW
test al, al
jne 0x3004413c
push 0
push 0x36717376
jmp 0x3004419f
mov eax, dword [esi]
dec eax
cmp dword [ebp - 4], eax
je 0x30044150
push 0
push 0x36717377
call fcn.300435b4
cmp edi, 2
jne 0x3004416c
push dword [esi]
push dword [ebx]
call fcn.30043938
test eax, eax
pop ecx
pop ecx
jne 0x300441bb
push eax
push 0x36717378
jmp 0x3004419f
cmp edi, 8
jne 0x30044185
push dword [ebx]
call fcn.300439a7
test eax, eax
pop ecx
jne 0x300441bb
push eax
push 0x36717379
jmp 0x3004419f
cmp edi, 3
je 0x300441bb
push 0
push 0x3671737a
call fcn.300435b4
jmp 0x300441bb
push 0
push 0x36717374
call fcn.300435b4
mov eax, dword [ebx]
xor edi, edi
cmp eax, edi
je 0x300441b5
push eax
call fcn.300257c4
pop ecx
mov dword [ebx], edi
cmp dword [esi], edi
je 0x300441bb
mov dword [esi], edi
pop esi
pop edi
pop ebx
leave
ret
Function at 0x3004492f
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1084
call fcn.3006a0b2
mov eax, dword [0x300222cc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x107c], eax
mov ebx, 0x824
lea eax, [ebp - 0x106c]
push ebx
push eax
call fcn.30044656
test eax, eax
pop ecx
pop ecx
jne 0x30044970
or eax, 0xffffffff
jmp 0x30044b01
cmp word [ebp - 0x106c], 0
push esi
lea esi, [ebp - 0x106c]
push edi
mov dword [ebp - 0x1078], esi
je 0x30044996
inc esi
inc esi
cmp word [esi], 0
jne 0x30044988
mov dword [ebp - 0x1078], esi
xor edi, edi
inc edi
push edi
call fcn.300436f5
pop ecx
call fcn.300438b3
push eax
call fcn.3004c215
cmp eax, 0x64
mov dword [ebp - 0x1070], eax
mov dword [ebp - 0x1084], eax
jbe 0x300449c2
mov dword [ebp - 0x1070], edi
mov edi, dword [sym.imp.SHLWAPI.dll_wnsprintfA]
lea eax, [ebp - 0x106c]
sub esi, eax
sar esi, 1
mov dword [ebp - 0x1074], ebx
sub dword [ebp - 0x1074], esi
mov esi, 0x80
mov ebx, 0xc0000000
push dword [ebp - 0x1070]
lea eax, [ebp - 0x24]
push 0x300056cc
push 0x1f
push eax
call edi
add esp, 0x10
push dword [ebp - 0x1074]
lea eax, [ebp - 0x24]
push dword [ebp - 0x1078]
push eax
call fcn.3005a086
xor eax, eax
push eax
push eax
push esi
push 1
push eax
push 1
push ebx
lea eax, [ebp - 0x106c]
push eax
call fcn.3005ec81
cmp eax, 0xffffffff
mov dword [ebp - 0x1080], eax
jne 0x30044aac
cmp dword [ebp - 0x1070], 0x64
jb 0x30044a45
and dword [ebp - 0x1070], 0
inc dword [ebp - 0x1070]
mov eax, dword [ebp - 0x1070]
cmp eax, dword [ebp - 0x1084]
jne 0x300449e8
push eax
push 0x300056cc
lea eax, [ebp - 0x24]
push 0x1f
push eax
call edi
add esp, 0x10
push dword [ebp - 0x1074]
lea eax, [ebp - 0x24]
push dword [ebp - 0x1078]
push eax
call fcn.3005a086
push esi
lea eax, [ebp - 0x106c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor edi, edi
push edi
push edi
push esi
push 2
push edi
push 1
push ebx
lea eax, [ebp - 0x106c]
push eax
call fcn.3005ec81
mov dword [ebp - 0x1080], eax
jmp 0x30044aae
xor edi, edi
cmp dword [ebp - 0x1070], 0x64
jb 0x30044abd
mov dword [ebp - 0x1070], edi
mov eax, dword [ebp - 0x1070]
inc eax
push eax
call fcn.300438b3
push eax
call fcn.3004c23d
push dword [0x3008baf8]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [ebp - 0x107c], edi
pop edi
pop esi
je 0x30044afb
push dword [ebp + 0xc]
lea eax, [ebp - 0x106c]
push dword [ebp - 0x107c]
push eax
call fcn.3005b404
mov eax, dword [ebp - 0x1080]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.30069776
leave
ret
Function at 0x300458a7
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp dword [ebp + 8], 0xffffffff
jne 0x300458b7
xor eax, eax
leave
ret
push esi
push edi
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
xor esi, esi
lea eax, [ebp - 0xc]
xor edi, edi
push eax
inc edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], esi
call fcn.30043d38
add esp, 0x10
test eax, eax
je 0x300459ee
cmp dword [ebp - 4], esi
je 0x300459ee
push ebx
mov ebx, 0x300d5260
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
call fcn.30045231
test eax, eax
pop ecx
jne 0x30045912
xor edi, edi
jmp 0x300459e6
cmp dword [0x300d2c3c], esi
je 0x30045925
push esi
push 0x72766c72
call fcn.300435b4
lea eax, [ebp - 0x14]
push eax
mov dword [0x300d2c3c], 1
mov dword [ebp - 0x14], esi
call fcn.30043c59
cmp eax, dword [ebp - 8]
pop ecx
jne 0x30045949
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
je 0x30045984
push dword [ebp - 0x10]
push dword [ebp - 4]
call fcn.30043d84
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.30043d38
add esp, 0x18
test eax, eax
je 0x30045975
cmp dword [ebp - 4], esi
jne 0x30045984
push esi
push 0x72766c73
call fcn.300435b4
xor edi, edi
jmp 0x3004599a
push dword [ebp + 0xc]
push dword [ebp - 0xc]
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.300446e9
add esp, 0x10
mov edi, eax
cmp edi, esi
mov dword [0x300d2c3c], esi
push esi
je 0x300459dc
mov edi, dword [ebp - 8]
lea eax, [ebp - 0x14]
push eax
push edi
push dword [ebp - 4]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x300459c7
cmp dword [ebp - 0x14], edi
jne 0x300459c7
xor edi, edi
inc edi
jmp 0x300459c9
xor edi, edi
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp + 0x10]
call fcn.30043cef
add esp, 0xc
jmp 0x300459e6
push 0x74697970
call fcn.300435b4
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], esi
je 0x30045a12
push dword [ebp - 0x10]
push dword [ebp - 4]
call fcn.30043d84
pop ecx
pop ecx
mov eax, edi
pop edi
pop esi
leave
ret
Function at 0x30045a18
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2094
call fcn.3006a0b2
mov eax, dword [0x300222cc]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov esi, 0x824
lea eax, [ebp - 0x104c]
push esi
xor edi, edi
push eax
inc edi
call fcn.30044656
test eax, eax
pop ecx
pop ecx
je 0x30045ad3
push ebx
push 0x300056dc
call fcn.3005bb8a
mov ebx, eax
test ebx, ebx
je 0x30045ad2
push esi
lea eax, [ebp - 0x104c]
push eax
push ebx
call fcn.3005b486
push ebx
call fcn.300432ec
call fcn.30045894
test eax, eax
je 0x30045ad0
call fcn.300457ed
test eax, eax
je 0x30045ad0
call fcn.300457ac
lea eax, [ebp - 0x2094]
push esi
push eax
call fcn.3004492f
lea ecx, [ebp - 0x104c]
push ecx
push 1
push eax
call fcn.300458a7
mov edi, eax
add esp, 0x14
test edi, edi
lea eax, [ebp - 0x2094]
jne 0x30045ac0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x30045ad0
push 0x104
push 0x300d2a1c
push eax
call fcn.3005b404
mov eax, edi
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.30069776
leave
ret

Function at 0x300460fe
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
and dword [ebp - 4], 0
cmp dword [0x300d52b8], 0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetVersion]
push esi
jne 0x30046142
call ebx
test eax, eax
jns 0x30046138
push 0x30005808
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push 0x300057fc
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x300d52b4], eax
mov dword [0x300d52b8], 1
mov eax, dword [0x300d52b4]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
je 0x3004615e
push dword [ebp + 0x10]
push eax
call esi
test eax, eax
mov dword [ebp - 4], eax
jne 0x3004618e
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
test eax, eax
jne 0x30046184
call ebx
test eax, eax
mov eax, dword [ebp + 8]
jns 0x30046179
push dword [eax + 0xc]
call dword [eax + 8]
jmp 0x3004617e
push dword [eax + 4]
call dword [eax]
test eax, eax
je 0x3004618d
mov dword [edi], eax
push dword [ebp + 0x10]
push eax
call esi
mov dword [ebp - 4], eax
pop edi
mov eax, dword [ebp - 4]
pop esi
pop ebx
leave
ret 0xc
Function at 0x30046352
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x300222cc]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x41c], ecx
mov ecx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 8]
test esi, esi
mov dword [ebp - 0x424], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x414], ecx
jne 0x30046392
xor eax, eax
jmp 0x300464ff
and dword [esi], 0
push ebx
push edi
mov edi, dword [ebp + 0x20]
xor ebx, ebx
inc ebx
push ebx
push edi
push eax
push 0x400
lea eax, [ebp - 0x404]
push eax
mov dword [ebp - 0x420], ebx
call fcn.30047e08
and dword [ebp - 0x410], 0
and dword [ebp - 0x418], 0
shr edi, 0x1a
not edi
mov dword [ebp - 0x408], eax
and edi, ebx
cmp dword [ebp - 0x408], 0
je 0x300463f7
mov eax, dword [ebp + 0x20]
push dword [ebp - 0x408]
shr eax, 0x17
and eax, ebx
push eax
push 0x120001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
mov dword [esi], eax
cmp dword [esi], 0
jne 0x30046493
test edi, edi
je 0x30046493
and dword [ebp - 0x40c], 0
push ebx
lea eax, [ebp - 0x414]
push eax
push dword [ebp + 0x20]
call fcn.30047c86
test eax, eax
je 0x30046479
mov eax, dword [ebp + 0x20]
push dword [ebp - 0x408]
shr eax, 0x19
and eax, ebx
push eax
push dword [ebp - 0x414]
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x40c], eax
push ebx
lea eax, [ebp - 0x414]
push eax
push dword [ebp + 0x20]
call fcn.30047dc0
cmp dword [ebp - 0x40c], 5
jne 0x30046479
cmp dword [ebp - 0x418], 0
jne 0x30046479
mov dword [ebp - 0x418], ebx
jmp 0x300463d2
cmp dword [esi], 0
je 0x30046493
xor eax, eax
cmp dword [ebp - 0x40c], 0xb7
setne al
mov dword [ebp - 0x410], eax
mov eax, dword [esi]
xor ecx, ecx
cmp eax, ecx
je 0x300464a0
cmp eax, 0xffffffff
jne 0x300464bf
cmp edi, ecx
je 0x300464af
push ecx
push 0x787a6c65
call fcn.300435b4
xor ecx, ecx
mov dword [esi], ecx
mov dword [ebp - 0x410], ecx
mov dword [ebp - 0x420], ecx
cmp dword [ebp - 0x41c], ecx
pop edi
pop ebx
je 0x300464e7
mov eax, dword [ebp - 0x408]
cmp eax, ecx
jne 0x300464d8
mov eax, 0x30002a15
push dword [ebp + 0x14]
push dword [ebp - 0x41c]
push eax
call fcn.3005b426
mov eax, dword [ebp - 0x424]
test eax, eax
je 0x300464f9
mov ecx, dword [ebp - 0x410]
mov dword [eax], ecx
mov eax, dword [ebp - 0x420]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.30069776
leave
ret 0x1c
Function at 0x3004a45b
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 8]
xor ebx, ebx
call fcn.30064d80
mov esi, eax
cmp esi, ebx
je 0x3004a4cb
push esi
lea eax, [ebp - 4]
push eax
call fcn.30043398
test eax, eax
je 0x3004a4cb
push dword [ebp - 4]
push esi
push ebx
push dword [ebp + 8]
call fcn.30064d86
test eax, eax
je 0x3004a4c3
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push 0x30003970
push dword [ebp - 4]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x3004a4c3
cmp dword [ebp - 8], ebx
je 0x3004a4c3
mov esi, dword [ebp - 0xc]
push edi
mov edi, dword [ebp + 0xc]
push 0xd
pop ecx
rep movsd dword es:[edi], dword [esi]
mov bl, 1
pop edi
push dword [ebp - 4]
call fcn.300432ec
pop esi
mov al, bl
pop ebx
leave
ret

Function at 0x3004b64d
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 8]
push edi
xor edi, edi
cmp ebx, edi
jne 0x3004b665
xor eax, eax
jmp 0x3004b752
push esi
mov esi, dword [ebp + 0xc]
cmp esi, edi
je 0x3004b675
cmp dword [0x300d573c], edi
je 0x3004b686
cmp dword [0x300d673c], edi
mov dword [ebp - 4], edi
je 0x3004b68d
test byte [ebx + 0xc], 0x10
jne 0x3004b68d
xor eax, eax
jmp 0x3004b751
lea ecx, [ebp + 0xb]
mov dword [ebp + 8], edi
mov dword [ebp - 8], edi
call fcn.3004ae58
neg esi
sbb esi, esi
and esi, 2
push edi
mov dword [ebp - 0xc], esi
push esi
jmp 0x3004b70b
mov eax, dword [ebx]
cmp eax, edi
je 0x3004b6b8
push eax
call fcn.3005bb8a
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
cmp eax, edi
jne 0x3004b6c4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push edi
push edi
push edi
push edi
push dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [ebp - 4], edi
mov esi, eax
je 0x3004b6e1
push dword [ebp - 4]
call fcn.300432ec
push esi
call fcn.3004aa76
test eax, eax
pop ecx
je 0x3004b726
push 0x796d7468
push edi
call fcn.30043608
push dword [ebp + 8]
mov ecx, 0x300d5748
call fcn.3004aff6
push edi
push dword [ebp - 0xc]
mov dword [ebp + 8], edi
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebx + 8]
call fcn.3004b0b8
mov esi, eax
add esp, 0x14
cmp esi, edi
je 0x3004b6a9
jmp 0x3004b733
push dword [ebp + 8]
mov ecx, 0x300d5748
call fcn.3004af74
xor eax, eax
cmp esi, edi
sete al
cmp dword [0x300d5744], edi
mov esi, eax
je 0x3004b74f
push 0x300d5260
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
pop esi
pop edi
pop ebx
leave
ret
Function at 0x3004baf4
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x18]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x3004bb0a
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
lea ecx, [ebp - 4]
push ecx
push esi
lea ecx, [ebp + 0xc]
push ecx
push 0
push dword [ebp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push 2
pop ebx
cmp dword [ebp - 4], ebx
mov edi, eax
jae 0x3004bb3c
cmp dword [ebp + 0xc], 1
je 0x3004bb3a
cmp dword [ebp + 0xc], ebx
jne 0x3004bb3c
mov edi, ebx
push edi
call fcn.3004aa76
test eax, eax
pop ecx
je 0x3004bb62
push 0x796d746b
push 0
call fcn.30043608
push dword [ebp + 8]
mov ecx, 0x300d5748
call fcn.3004aff6
jmp 0x3004bbc1
test edi, edi
jne 0x3004bbb4
cmp dword [ebp + 0xc], ebx
je 0x3004bb71
cmp dword [ebp + 0xc], 1
jne 0x3004bb7c
mov eax, dword [ebp - 4]
shr eax, 1
and word [esi + eax*2 - 2], 0
cmp dword [ebp + 0xc], ebx
je 0x3004bb86
cmp byte [ebp + 0x1c], bl
jne 0x3004bb9f
mov eax, dword [ebp + 0x18]
shr eax, 1
push eax
push esi
call fcn.3004aacd
test eax, eax
pop ecx
pop ecx
jne 0x3004bb9f
mov edi, 0xea
jmp 0x3004bbb4
movzx eax, byte [ebp + 0x1c]
push eax
push dword [ebp + 0xc]
call fcn.3004aaa3
test eax, eax
pop ecx
pop ecx
jne 0x3004bbb4
mov edi, ebx
push dword [ebp + 8]
mov ecx, 0x300d5748
call fcn.3004af74
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x3004bbc8
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
cmp ebx, esi
jne 0x3004bbe3
mov eax, 0xa0
jmp 0x3004bd30
mov eax, dword [ebx]
cmp eax, esi
mov dword [ebp - 0xc], esi
je 0x3004bbf5
push eax
call fcn.3005bb8a
mov dword [ebp - 0xc], eax
mov dword [ebp + 8], esi
push edi
cmp dword [ebp + 8], esi
jne 0x3004bc0f
cmp dword [0x300d573c], esi
je 0x3004bc1d
mov dword [ebp - 0x10], 2
jmp 0x3004bc2a
cmp dword [ebp + 8], 1
jne 0x3004bc1d
cmp dword [0x300d673c], esi
je 0x3004bc27
test byte [ebx + 0xc], 0x10
je 0x3004bcef
mov dword [ebp - 0x10], esi
lea ecx, [ebp + 0x13]
call fcn.3004ae58
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], esi
push esi
jmp 0x3004bc8f
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov esi, dword [ebp - 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x3004bc4f
mov eax, dword [esi]
lea ecx, [ebp - 4]
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x18]
push ecx
push 0
push dword [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
push edi
call fcn.3004aa76
test eax, eax
pop ecx
je 0x3004bcab
push 0x796d746c
xor edi, edi
push edi
call fcn.30043608
push esi
mov ecx, 0x300d5748
call fcn.3004aff6
mov dword [ebp - 8], edi
push edi
push dword [ebp - 0x10]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebx + 8]
call fcn.3004b0b8
add esp, 0x14
test eax, eax
je 0x3004bc3b
jmp 0x3004bcda
push esi
mov ecx, 0x300d5748
call fcn.3004af74
test edi, edi
jne 0x3004bcda
movzx eax, word [ebx + 0xc]
mov ecx, eax
and ecx, 0xf
cmp dword [ebp - 0x18], ecx
je 0x3004bd36
cmp dword [ebp - 0x18], 3
jne 0x3004bcda
cmp dword [ebp - 4], 4
jne 0x3004bcda
and al, 0xf
cmp al, 4
je 0x3004bd36
xor esi, esi
cmp dword [0x300d5744], esi
je 0x3004bcef
push 0x300d5260
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x3004bbf9
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
push ebx
call fcn.3004ab69
add esp, 0x10
mov edi, eax
cmp dword [ebp - 0xc], 0
je 0x3004bd25
push dword [ebp - 0xc]
call fcn.300432ec
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc
cmp dword [0x300d5744], 0
je 0x3004bd17
push 0x300d5260
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x3004bd17