joyce8/EMBER2024-capa huggingface dataset:
Function at 0x617b10
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ebp + 8], 0
jne 0x617b23
xor al, al
jmp 0x617bb1
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x617b7d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
push str.open_failed__s_code___d
push 3
push 0x6bc5fc
push 0x5d
push str.WriteFileFromBuffer
push str...publicEncryptedFile.cpp
call fcn.00456680
add esp, 0x20
xor al, al
jmp 0x617bb1
mov dword [ebp - 4], 0
push 0
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp + 0x10]
sete al
mov esp, ebp
pop ebp
ret

Function at 0x617bc0
Capabilities:
Check if file exists
Get file attributes
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
cmp dword [ebp + 8], 0
jne 0x617bd3
xor al, al
jmp 0x617cda
push 0
push 0x80
push 3
push 0
push 1
push Ordinal_2
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x617c52
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
push str.open_failed__s_code___d_attr___08x_exist___d
push 3
push 0x6bc590
push 0x31
push str.ReadFileToBuffer
push 0x6bc5ac
call fcn.00456680
add esp, 0x28
xor al, al
jmp 0x617cda
mov dword [ebp - 0x10], 0
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 8], eax
cmp dword [ebp - 0x10], 0
je 0x617c8c
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
jmp 0x617cda
mov ecx, dword [ebp + 0xc]
call fcn.0055a0c0
mov byte [ebp - 0x1d], 0
lea ecx, [ebp - 0x1d]
push ecx
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [ebp + 0xc]
call fcn.00402a60
push 0
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0043f970
push eax
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
xor eax, eax
cmp ecx, dword [ebp - 8]
sete al
mov esp, ebp
pop ebp
ret
Function at 0x61a6d0
Capabilities:
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63aecf
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x6f7654]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x30]
call fcn.00404ac0
mov dword [ebp - 4], 0
push 0
push 0x3a
mov ecx, dword [ebp + 8]
call fcn.00404c40
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jl 0x61a725
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x34]
push edx
push 0x5c
mov ecx, dword [ebp + 8]
call fcn.00404c40
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jge 0x61a750
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x30]
call fcn.00404b30
jmp 0x61a787
mov ecx, dword [ebp - 0x34]
push ecx
push 0
lea edx, [ebp - 0x58]
push edx
mov ecx, dword [ebp + 8]
call fcn.00404c60
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x30]
call fcn.00404b30
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x58]
call fcn.00403b10
push 0
lea ecx, [ebp - 0x30]
call fcn.00402aa0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x61a7c9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x61a7c9
mov dword [ebp - 0x5c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00403b10
mov eax, dword [ebp - 0x5c]
jmp 0x61a82d
lea ecx, [ebp - 0x30]
call fcn.00402aa0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
and edx, 0x10
jne 0x61a7fe
mov dword [ebp - 0x60], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00403b10
mov eax, dword [ebp - 0x60]
jmp 0x61a82d
cmp dword [ebp - 0x34], 0xffffffff
jne 0x61a806
jmp 0x61a814
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x34], eax
jmp 0x61a72b
mov dword [ebp - 0x64], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00403b10
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005ea848
mov esp, ebp
pop ebp
ret
Function at 0x61b490
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63b650
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x6f7654]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x50]
call fcn.00403ad0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x50]
call fcn.0045e920
sub eax, 1
push eax
lea ecx, [ebp - 0x50]
call fcn.00404bd0
movzx ecx, word [eax]
cmp ecx, 0x5c
je 0x61b4f4
push 0x5c
lea ecx, [ebp - 0x50]
call fcn.00404bb0
lea ecx, [ebp - 0x6c]
call fcn.00404cb0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x34]
call fcn.00404ac0
mov byte [ebp - 4], 2
mov dword [ebp - 0x70], 0
jmp 0x61b51e
mov edx, dword [ebp - 0x70]
add edx, 1
mov dword [ebp - 0x70], edx
lea ecx, [ebp - 0x50]
call fcn.0045e920
cmp dword [ebp - 0x70], eax
jae 0x61b593
mov eax, dword [ebp - 0x70]
push eax
lea ecx, [ebp - 0x50]
call fcn.00404bd0
movzx ecx, word [eax]
cmp ecx, 0x5c
je 0x61b56d
mov edx, dword [ebp - 0x70]
push edx
lea ecx, [ebp - 0x50]
call fcn.00404bd0
movzx eax, word [eax]
cmp eax, 0x2f
je 0x61b56d
mov ecx, dword [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x50]
call fcn.00404bd0
movzx edx, word [eax]
push edx
lea ecx, [ebp - 0x34]
call fcn.00404bb0
jmp 0x61b591
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00404d40
mov ecx, dword [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x50]
call fcn.00404bd0
movzx edx, word [eax]
push edx
lea ecx, [ebp - 0x34]
call fcn.00404bb0
jmp 0x61b515
mov byte [ebp - 0x51], 1
lea ecx, [ebp - 0x14]
call fcn.004a5b50
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0051ca60
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
jmp 0x61b5c9
push 0
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x14]
call fcn.00404e20
lea ecx, [ebp - 0x8c]
push ecx
lea ecx, [ebp - 0x6c]
call fcn.004a4f50
push eax
lea ecx, [ebp - 0x14]
call fcn.004f4f20
movzx edx, al
test edx, edx
je 0x61b633
lea ecx, [ebp - 0x14]
call fcn.0050e6d0
mov ecx, eax
call fcn.00402aa0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0xffffffff
je 0x61b611
mov eax, dword [ebp - 0x74]
and eax, 0x10
je 0x61b611
jmp 0x61b5b8
push 0
lea ecx, [ebp - 0x14]
call fcn.0050e6d0
mov ecx, eax
call fcn.00402aa0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
setne cl
mov byte [ebp - 0x51], cl
jmp 0x61b5b8
movzx edx, byte [ebp - 0x51]
mov dword [ebp - 0x90], edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x34]
call fcn.00403b10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6c]
call fcn.00404d20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.00403b10
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.005ea848
mov esp, ebp
pop ebp
ret
Function at 0x61bc70
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63b6b1
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x6f7654]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], 0
push 0x7f
push 0x6bd02c
push 0x6bd040
lea ecx, [ebp - 0x28]
call fcn.00455c30
mov dword [ebp - 4], 1
push 0x6bd05c
lea ecx, [ebp - 0x2c]
call fcn.00401640
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
and eax, 0xffff
movzx ecx, ax
and ecx, 0xff
movzx edx, cl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x10]
and eax, 0xffff
movzx ecx, ax
shr ecx, 8
and ecx, 0xff
movzx edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
push str.MajorVersion_d__MinorVersion_d
push 5
push 0x6bd0a4
push 0x85
push str.GetDefaultBrowser
push 0x6bd0c0
call fcn.00456680
add esp, 0x20
cmp dword [ebp - 0x18], 5
jne 0x61bd6c
cmp dword [ebp - 0x14], 1
jne 0x61bd6c
lea edx, [ebp - 0x30]
push edx
call fcn.0061b690
add esp, 4
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.004016e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x30]
call fcn.004016c0
jmp 0x61bd9d
lea edx, [ebp - 0x34]
push edx
call fcn.0061b8c0
add esp, 4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.004016e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x34]
call fcn.004016c0
lea edx, [ebp - 0x2c]
push edx
mov ecx, dword [ebp + 8]
call fcn.00401620
mov eax, dword [ebp - 0x38]
or eax, 1
mov dword [ebp - 0x38], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.004016c0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.00455c90
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x61bde0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63b760
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x6f7654]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x94
push 0x6bd0dc
push 0x6bd0f8
lea ecx, [ebp - 0x1c]
call fcn.00455c30
mov dword [ebp - 4], 0
mov byte [ebp - 0x1d], 0
cmp dword [ebp + 8], 0
je 0x61bf0c
mov eax, dword [ebp + 8]
push eax
push str.Url_is__s
push 5
push 0x6bd12c
push 0x98
push 0x6bd134
push 0x6bd150
call fcn.00456680
add esp, 0x1c
lea ecx, [ebp - 0x24]
push ecx
call fcn.0061bc70
add esp, 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00401850
movzx edx, al
test edx, edx
jne 0x61befe
mov eax, dword [ebp - 0x24]
push eax
push str.Default_browser_is__s
push 5
push 0x6bd19c
push 0x9c
push 0x6bd1a4
push 0x6bd1c0
call fcn.00456680
add esp, 0x1c
push 5
push 0
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x24]
call fcn.0043f970
push eax
push 0x6bd1dc
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x20
jbe 0x61becf
mov byte [ebp - 0x1d], 1
jmp 0x61befe
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp + 8]
push ecx
push str.Fail_to_open_url__s__with_default_browser__s___return_value_d
push 3
push 0x6bd268
push 0xa4
push 0x6bd270
push 0x6bd28c
call fcn.00456680
add esp, 0x24
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24]
call fcn.004016c0
jmp 0x61bf2f
push str.Url_is_empty
push 3
push 0x6bd2c4
push 0xaa
push str.OpenUrlWithDefaultBrowser
push str...publicBrowserCommon.cpp
call fcn.00456680
add esp, 0x18
mov dl, byte [ebp - 0x1d]
mov byte [ebp - 0x29], dl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.00455c90
mov al, byte [ebp - 0x29]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x10004280
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10036ad7
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x1004b6e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [edi], 0x1004304c
mov dword [edi + 4], 0
mov dword [ebp - 0x44], edi
mov dword [edi + 8], 0
mov dword [ebp - 4], 0
lea esi, [edi + 0x14]
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [ebp - 0x40], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.10007130
mov dword [esi], eax
mov byte [ebp - 4], 5
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov byte [ebp - 4], 6
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
mov byte [ebp - 4], 7
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
jne 0x10004360
push str.boost::thread_resource_error
push 0xb
lea ecx, [ebp - 0x3c]
call fcn.10003d50
mov byte [ebp - 4], 8
mov dword [ebp - 0x3c], 0x1004303c
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x3c]
call fcn.10007460
mov dword [edi + 0x34], eax
mov byte [ebp - 4], 0xa
mov byte [edi + 0x38], 1
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1001ef7b
mov esp, ebp
pop ebp
ret
Function at 0x10004a50
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10036b88
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x1004b6e0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x6c], 0xc15730e2
mov dword [ebp - 0x68], 0x7f0725e3
mov byte [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 4], 0
mov byte [ebp - 0x5c], 0
mov dword [ebp - 4], 1
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x1004e264
mov edx, 0x1004e268
mov eax, dword [0x1004e264]
cmp eax, dword [ebp - 0x6c]
je 0x10004b3c
mov ecx, dword [ebp - 0x68]
xor eax, eax
lock cmpxchg dword [esi], ecx
test eax, eax
jne 0x10004b7f
mov esi, dword [ebp - 0x60]
test esi, esi
jne 0x10004b17
cmp byte [ebp - 0x5c], al
jne 0x10004aee
lea ecx, [ebp - 0x5c]
call fcn.100048b0
lea eax, [ebp - 0x5c]
push eax
push 0
push 0x100002
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov esi, eax
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x10004b10
cmp eax, 0xffffffff
je 0x10004b10
push eax
call edi
mov dword [ebp - 0x60], esi
test esi, esi
je 0x10004b1e
push esi
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1004c5d8], eax
mov dword [ebp - 4], 1
lea edx, [ebp - 0x6c]
call fcn.10004970
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x10004b52
cmp eax, 0xffffffff
je 0x10004b52
push eax
call edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1001ef7b
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x64], 0
jne 0x10004bd9
mov eax, 1
lock xadd dword [edx], eax
mov byte [ebp - 0x64], 1
mov eax, dword [0x1004e264]
cmp eax, dword [ebp - 0x6c]
je 0x10004b3c
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x10004bdc
cmp byte [ebp - 0x5c], al
jne 0x10004bb0
lea ecx, [ebp - 0x5c]
call fcn.100048b0
lea eax, [ebp - 0x5c]
push eax
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, eax
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x10004bd1
cmp ecx, 0xffffffff
je 0x10004bd1
push ecx
call edi
mov dword [ebp - 0x60], esi
jmp 0x10004ab5
mov eax, dword [ebp - 0x60]
push 0
push 0xffffffffffffffff
push eax
call ebx
jmp 0x10004aba
Function at 0x10005240
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10036d98
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x1004b6e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x1004c5d8]
cmp eax, 0xffffffff
jne 0x10005276
xor ebx, ebx
jmp 0x1000527f
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], 0
test ebx, ebx
je 0x100052b4
lea ecx, [ecx]
cmp dword [ebx + 0x18], 0
mov esi, dword [ebx + 0xc]
jne 0x100052f5
test esi, esi
jne 0x10005300
call fcn.10004a50
mov eax, dword [0x1004c5d8]
cmp eax, 0xffffffff
je 0x100052b4
push esi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x100052e3
lea eax, [ebx + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x100052e3
mov eax, dword [ebx]
mov ecx, ebx
push 0
call dword [eax]
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x10005342
lea esp, [esp]
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov ecx, dword [esi]
test ecx, ecx
je 0x1000532b
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esi]
mov ecx, edi
push 0
mov eax, dword [edi]
call dword [eax]
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x10005300
cmp dword [ebx + 0x18], 0
je 0x10005290
lea esp, [esp]
mov esi, dword [ebx + 0x14]
mov esi, dword [esi]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x10005369
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x10005369
mov eax, dword [ecx]
push edx
call dword [eax + 4]
push esi
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebx + 0x14]
call fcn.10005e60
cmp dword [ebx + 0x18], 0
jne 0x10005350
jmp 0x10005290

Function at 0x10005410
Capabilities:
Create thread
Resume thread

Disassembly:
push ebx
push esi
mov esi, ecx
mov edx, dword [esi]
lea eax, [edx + 0x10]
push eax
push 4
push edx
push 0x10005390
push 0
push 0
call fcn.1001fbce
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x10005439
pop esi
xor al, al
pop ebx
ret
mov ecx, dword [esi]
mov eax, 1
push edi
add ecx, 4
lock xadd dword [ecx], eax
mov edi, dword [esi]
mov eax, dword [edi + 8]
test eax, eax
je 0x1000545d
cmp eax, 0xffffffff
je 0x1000545d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 8], ebx
mov eax, dword [esi]
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
pop edi
pop esi
mov al, 1
pop ebx
ret
Function at 0x10005c90
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [0x1004c5d8]
cmp eax, 0xffffffff
je 0x10005d07
push esi
mov esi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call esi
test eax, eax
je 0x10005d06
mov eax, dword [0x1004c5d8]
cmp eax, 0xffffffff
jne 0x10005cba
xor ecx, ecx
jmp 0x10005cc4
push eax
call esi
mov ecx, eax
mov eax, dword [0x1004c5d8]
cmp byte [ecx + 0x38], 0
je 0x10005d06
cmp eax, 0xffffffff
je 0x10005d06
push eax
call esi
test eax, eax
je 0x10005d06
mov eax, dword [0x1004c5d8]
cmp eax, 0xffffffff
jne 0x10005ce4
xor eax, eax
jmp 0x10005ce7
push eax
call esi
push 0
push 0
push dword [eax + 0x34]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
test eax, eax
jne 0x10005d06
mov eax, dword [0x1004c5d8]
cmp eax, 0xffffffff
jne 0x10005d0b
xor eax, eax
jmp 0x10005d0e
pop esi
mov esp, ebp
pop ebp
ret
push eax
call esi
push dword [eax + 0x34]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0x10049a94
lea eax, [ebp - 1]
mov byte [ebp - 1], 0
push eax
call fcn.1002203b
int3

Function at 0x1000c140
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
pop ebp
jmp fcn.100111a0
Function at 0x100111a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100393f9
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x1004b6e0]
xor eax, esp
mov dword [esp + 0x124], eax
push ebx
push esi
mov eax, dword [0x1004b6e0]
xor eax, esp
push eax
lea eax, [esp + 0x138]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esp + 0x74]
call fcn.10016180
mov dword [esp + 0x140], 0
lea ecx, [esp + 0x74]
push esi
call fcn.100168d0
test al, al
je 0x100113ed
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x78]
call fcn.100163b0
mov byte [esp + 0x140], 1
cmp dword [eax + 0x10], 0
sete bl
mov byte [esp + 0x140], 0
cmp dword [esp + 0x28], 8
jb 0x1001123f
push dword [esp + 0x14]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x28], 7
mov dword [esp + 0x24], 0
mov word [esp + 0x14], ax
test bl, bl
jne 0x100113ed
push str.netsh_advfirewall_firewall_show_rule
lea ecx, [esp + 0x30]
call fcn.10015850
mov byte [esp + 0x140], 2
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x78]
call fcn.100163b0
mov byte [esp + 0x140], 3
lea ecx, [esp + 0x44]
push eax
call fcn.1001c070
mov byte [esp + 0x144], 4
mov edx, eax
lea ecx, [esp + 0x18]
call fcn.1001c0f0
add esp, 4
mov byte [esp + 0x140], 5
lea ecx, [esp + 0x2c]
push 0xffffffffffffffff
push 0
push eax
call fcn.1001a5d0
mov byte [esp + 0x140], 4
cmp dword [esp + 0x28], 8
jb 0x100112db
push dword [esp + 0x14]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x28], 7
mov dword [esp + 0x24], 0
mov word [esp + 0x14], ax
mov byte [esp + 0x140], 3
cmp dword [esp + 0x58], 8
jb 0x1001130d
push dword [esp + 0x44]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], 0
mov word [esp + 0x44], ax
mov byte [esp + 0x140], 2
cmp dword [esp + 0x70], 8
jb 0x1001133f
push dword [esp + 0x5c]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x70], 7
push eax
push eax
mov dword [esp + 0x74], 0
mov word [esp + 0x64], ax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
call fcn.1001b050
mov dword [esp + 0xc], eax
mov byte [esp + 0x140], 8
lea ecx, [esp + 0xc]
cmp dword [esp + 0x40], 8
lea eax, [esp + 0x2c]
push ecx
cmovae eax, dword [esp + 0x30]
push eax
call fcn.1000ff80
movzx esi, al
neg esi
sbb esi, esi
neg esi
dec esi
mov byte [esp + 0x140], 9
lea ecx, [esp + 0xc]
call fcn.1001ad50
mov byte [esp + 0x140], 2
push dword [esp + 0xc]
call fcn.1001f7c4
add esp, 4
mov byte [esp + 0x140], 0
cmp dword [esp + 0x40], 8
jb 0x100113d4
push dword [esp + 0x2c]
call fcn.1001f7c4
add esp, 4
xor eax, eax
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], 0
mov word [esp + 0x2c], ax
jmp 0x100113f0
or esi, 0xffffffff
mov dword [esp + 0x140], 0xffffffff
lea ecx, [esp + 0x74]
call fcn.10016250
mov eax, esi
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x124]
xor ecx, esp
call fcn.1001ef7b
mov esp, ebp
pop ebp
ret