joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000ae35
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop ebp
ret

Function at 0x1000b111
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov edx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
push edi
test esi, esi
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
mov edi, edx
mov dword [ebp + 0xc], esi
jle 0x1000b16f
mov ax, word [edx]
xor ecx, ecx
mov cl, ah
test cl, cl
jne 0x1000b13c
mov byte [edi], al
jmp 0x1000b160
mov eax, dword [ebp - 4]
mov ecx, 0xff
add eax, 0x21a
mov si, word [edx]
cmp word [eax], si
je 0x1000b15a
dec ecx
dec eax
dec eax
test ecx, ecx
jge 0x1000b149
jmp 0x1000b15c
mov byte [edi], cl
test ecx, ecx
jl 0x1000b190
dec dword [ebp + 0xc]
inc edi
inc edx
inc edx
cmp dword [ebp + 0xc], 0
jg 0x1000b12d
mov esi, dword [ebp + 0x10]
lea eax, [ebp + 0x10]
push 0
push eax
push esi
push dword [ebp - 8]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1000b190
cmp dword [ebp + 0x10], esi
jne 0x1000b190
push 1
pop eax
jmp 0x1000b192
xor eax, eax
pop edi
pop esi
leave
ret 0xc
Function at 0x1000c9b3
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
lea ebx, [esi + 0x44]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x40]
xor edi, edi
cmp eax, edi
lea ecx, [eax + 1]
mov dword [esi + 0x40], ecx
jne 0x1000cadf
push str.WININET
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, edi
mov dword [esi + 0x3c], eax
je 0x1000cab3
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.HttpOpenRequestA
push eax
call edi
push str.HttpQueryInfoA
mov dword [esi], eax
push dword [esi + 0x3c]
call edi
push str.HttpAddRequestHeadersA
mov dword [esi + 4], eax
push dword [esi + 0x3c]
call edi
push str.HttpSendRequestA
mov dword [esi + 8], eax
push dword [esi + 0x3c]
call edi
push str.InternetCloseHandle
mov dword [esi + 0xc], eax
push dword [esi + 0x3c]
call edi
push str.InternetConnectA
mov dword [esi + 0x10], eax
push dword [esi + 0x3c]
call edi
push str.InternetCrackUrlA
mov dword [esi + 0x14], eax
push dword [esi + 0x3c]
call edi
push str.InternetCreateUrlA
mov dword [esi + 0x18], eax
push dword [esi + 0x3c]
call edi
push str.InternetGetConnectedState
mov dword [esi + 0x1c], eax
push dword [esi + 0x3c]
call edi
push str.InternetGetCookieA
mov dword [esi + 0x20], eax
push dword [esi + 0x3c]
call edi
push str.InternetOpenA
mov dword [esi + 0x24], eax
push dword [esi + 0x3c]
call edi
push str.InternetReadFile
mov dword [esi + 0x28], eax
push dword [esi + 0x3c]
call edi
push str.InternetSetCookieA
mov dword [esi + 0x2c], eax
push dword [esi + 0x3c]
call edi
push str.InternetSetStatusCallback
mov dword [esi + 0x30], eax
push dword [esi + 0x3c]
call edi
push str.InternetQueryDataAvailable
mov dword [esi + 0x34], eax
push dword [esi + 0x3c]
call edi
mov dword [esi + 0x38], eax
jmp 0x1000cadf
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
ret

Function at 0x1000d89c
Capabilities:
Create directory

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x1000d8c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1000d8c4
xor eax, eax
ret
push 1
pop eax
ret
Function at 0x1000db49
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp + 8]
push ebx
push eax
xor ebx, ebx
push 0x20019
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x1000db6e
xor eax, eax
jmp 0x1000dbcb
push esi
lea eax, [ebp + 0xc]
push edi
push eax
lea eax, [ebp - 4]
push ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push eax
push ebx
or edi, 0xffffffff
push dword [ebp + 0x10]
push dword [ebp + 8]
call esi
test eax, eax
jne 0x1000dbb9
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x18]
jge 0x1000dbb9
lea eax, [ebp + 0xc]
inc dword [ebp + 0xc]
push eax
lea eax, [ebp - 4]
push dword [ebp + 0x14]
push eax
push ebx
push dword [ebp + 0x10]
push dword [ebp + 8]
call esi
mov edi, eax
cmp edi, ebx
je 0x1000dbb9
mov eax, dword [ebp + 0x14]
mov byte [eax], bl
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
cmp edi, ebx
pop edi
pop esi
sete al
pop ebx
leave
ret

Function at 0x1000dcb0
Capabilities:
Delete registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
xor edi, edi
cmp dword [ebp + 0x14], edi
jne 0x1000dd03
lea eax, [ebp + 0xc]
push eax
push 0x2001f
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, edi
je 0x1000dce5
xor ecx, ecx
cmp eax, 2
sete cl
mov eax, ecx
jmp 0x1000dd65
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp eax, edi
je 0x1000dcfe
cmp eax, 2
je 0x1000dcfe
xor esi, esi
jmp 0x1000dd4c
push 1
pop esi
jmp 0x1000dd4c
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0xc]
push eax
push edi
push 0x2001f
push edi
push edi
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x1000dd28
xor eax, eax
jmp 0x1000dd65
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [ebp + 0x14]
push 1
push edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, eax
neg esi
sbb esi, esi
inc esi
cmp dword [ebp + 0x18], edi
je 0x1000dd5a
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop edi
pop esi
pop ebp
ret
Function at 0x1000e028
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 8]
call fcn.1000deb6
add esp, 0x1c
test eax, eax
je 0x1000e127
mov eax, dword [ebp - 8]
push ebx
xor ebx, ebx
push esi
cmp dword [ebp + 0xc], ebx
jne 0x1000e0fa
cmp eax, ebx
je 0x1000e075
cmp byte [eax], bl
jne 0x1000e0fa
cmp dword [ebp + 0x10], ebx
je 0x1000e097
mov eax, dword [ebp - 4]
push dword [ebp + 8]
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], eax
call fcn.10006a82
mov esi, eax
neg esi
sbb esi, esi
inc esi
jmp 0x1000e118
lea eax, [ebp + 0x10]
xor esi, esi
push eax
push 0x2001f
push ebx
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1000e118
push edi
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 0xc]
push ebx
push eax
push ebx
push ebx
push ebx
mov dword [ebp + 0xc], ebx
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x1000e0dc
cmp dword [ebp + 0xc], ebx
jne 0x1000e0dc
push 1
pop edi
jmp 0x1000e0de
xor edi, edi
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp edi, ebx
pop edi
je 0x1000e118
push dword [ebp + 8]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x1000e08b
cmp eax, ebx
jne 0x1000e103
mov eax, 0x100189f0
push ebx
push dword [ebp + 0xc]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.1000dcb0
add esp, 0x14
mov esi, eax
push dword [ebp - 0xc]
call fcn.1000ba08
pop ecx
mov eax, esi
pop esi
pop ebx
leave
ret
xor eax, eax
leave
ret

Function at 0x1000e29d
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
lea eax, [ebp - 8]
push esi
push eax
push dword [ebp + 8]
xor ebx, ebx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebx
je 0x1000e30f
push edi
push esi
call fcn.1000b9fd
mov edi, eax
pop ecx
cmp edi, ebx
je 0x1000e307
push edi
push esi
push ebx
push dword [ebp + 8]
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x1000e307
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
push 0x10018218
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x1000e307
cmp dword [ebp + 8], ebx
je 0x1000e307
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
push 1
mov ecx, dword [eax + 8]
pop ebx
mov dword [edx], ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
push edi
call fcn.1000ba08
pop ecx
pop edi
mov eax, ebx
pop esi
pop ebx
leave
ret
Function at 0x1000e652
Capabilities:
Check if file exists
Get disk information
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, dword [ebp + 8]
movsx eax, byte [esi]
push eax
call fcn.1000ab62
test eax, eax
pop ecx
je 0x1000e6ae
cmp byte [esi + 1], 0x3a
jne 0x1000e6ae
cmp byte [esi + 2], 0x5c
jne 0x1000e6ae
push 4
lea eax, [ebp - 8]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
je 0x1000e696
cmp eax, 4
jne 0x1000e6ae
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1000e6ae
and eax, 0x10
cmp al, 0x10
je 0x1000e6ae
push 1
pop eax
jmp 0x1000e6b0
xor eax, eax
pop esi
leave
ret

Function at 0x1000e6b3
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
xor edi, edi
cmp eax, edi
je 0x1000e6c6
or dword [eax], 0xffffffff
push edi
push 0x8000080
push 3
push edi
push 1
push SysReAllocStringLen
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x1000e758
lea eax, [ebp + 8]
mov dword [ebp + 8], edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, edi
jbe 0x1000e751
cmp dword [ebp + 8], edi
jne 0x1000e751
mov eax, dword [ebp + 0x10]
add eax, esi
push eax
call fcn.1000b9fd
cmp eax, edi
pop ecx
mov dword [ebp - 4], eax
je 0x1000e751
lea ecx, [ebp + 0x10]
push edi
push ecx
push esi
push eax
push ebx
mov dword [ebp + 0x10], edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1000e748
cmp dword [ebp + 0x10], esi
jne 0x1000e748
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, dword [ebp + 0x14]
cmp eax, edi
je 0x1000e73c
mov dword [eax], ebx
jmp 0x1000e743
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
jmp 0x1000e75f
push dword [ebp - 4]
call fcn.1000ba08
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x1000ffc5
Capabilities:
Read file via mapping

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
test eax, eax
mov dword [esi], eax
je 0x1000fffd
mov ecx, dword [esp + 0xc]
push 0
neg ecx
sbb ecx, ecx
push 0
and ecx, 0xf001b
push 0
add ecx, 4
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
mov dword [esi + 4], eax
je 0x1000fffd
push 1
pop eax
jmp 0x10010006
mov ecx, esi
call fcn.1001000a
xor eax, eax
pop esi
ret 8
Function at 0x10010a81
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x25c
push ebx
mov ebx, ecx
push str.FunWebProducts:Installer:Shared00
mov dword [esp + 8], ebx
call fcn.100118eb
test eax, eax
je 0x10010c69
push ebp
push esi
push edi
push 0xffffffffffffffff
mov ecx, ebx
call fcn.10011afa
cmp dword [0x10018dd0], 0
mov esi, str.General
jne 0x10010b8f
push 3
lea eax, [esp + 0x7c]
push 0x1f4
push eax
push 0
push str.Cache
push str.CacheDir
push str.Installer
call fcn.1000ebb6
mov edi, eax
add esp, 0x1c
test edi, edi
je 0x10010c39
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebp, str.files.ini
push ebp
call ebx
mov edi, eax
lea eax, [esp + 0x78]
push eax
call ebx
lea eax, [edi + eax + 0xa]
push eax
call fcn.1000b9fd
pop ecx
mov dword [0x10018dd0], eax
xor ecx, ecx
test eax, eax
setne cl
mov edi, ecx
test edi, edi
je 0x10010c35
lea ecx, [esp + 0x78]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x10018dd0]
call ebx
push ebp
mov dword [0x10018dd4], eax
push dword [0x10018dd0]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push dword [0x10018dd0]
mov ebx, str.access
movzx edi, ax
push edi
push ebx
push esi
call fcn.1000d8c8
add esp, 0x10
push dword [0x10018dd0]
push 0
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
xor ecx, ecx
mov ebx, dword [esp + 0x10]
cmp edi, eax
sete cl
mov edi, ecx
test edi, edi
je 0x10010c39
lea eax, [esp + 0x14]
push 0x64
push eax
push str.FunWebProducts:Installer:Shared01
call fcn.1000e12b
mov edi, eax
xor ebp, ebp
add esp, 0xc
cmp edi, ebp
je 0x10010c39
push ebp
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.10010035
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [eax + 0xc]
neg ecx
sbb ecx, ecx
push ebp
and ecx, eax
push 1
push ecx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
xor ecx, ecx
cmp eax, ebp
setne cl
mov dword [ebx + 0x18], eax
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0xb7
setne cl
cmp edi, ebp
mov dword [esp + 0x10], ecx
je 0x10010c39
push dword [0x10018dd0]
push ebp
mov ebp, str.refCount
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp dword [esp + 0x10], 0
je 0x10010c1b
mov ecx, ebx
call fcn.10011144
xor eax, eax
inc dword [0x10018dd8]
push dword [0x10018dd0]
inc eax
push eax
push ebp
push esi
call fcn.1000d8c8
add esp, 0x10
jmp 0x10010c39
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.10011b3b
test edi, edi
pop edi
pop esi
pop ebp
jne 0x10010c50
mov ecx, ebx
call fcn.10011af1
jmp 0x10010c69
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, 0x10018d50
call fcn.10011d25
test eax, eax
jne 0x10010c6d
mov ecx, ebx
call fcn.10010c97
xor eax, eax
jmp 0x10010c70
push 1
pop eax
pop ebx
add esp, 0x25c
ret
Function at 0x10010c97
Capabilities:
Read .ini file

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, ecx
push 0xffffffffffffffff
call fcn.10011afa
push dword [0x10018dd0]
mov ebp, str.refCount
mov ebx, str.General
push 0xffffffffffffffff
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov esi, eax
dec esi
test eax, eax
jle 0x10010ce1
push dword [0x10018dd0]
push esi
push ebp
push ebx
call fcn.1000d8c8
add esp, 0x10
test esi, esi
jne 0x10010ce1
mov ecx, edi
call fcn.10011144
dec dword [0x10018dd8]
jne 0x10010d03
push dword [0x10018dd0]
call fcn.1000ba08
and dword [0x10018dd0], 0
and dword [0x10018dd4], 0
pop ecx
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [edi + 0x18], 0
mov ecx, edi
call fcn.10011b3b
mov ecx, edi
call fcn.10011af1
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x10010d26
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x168
push ebx
mov ebx, ecx
mov ecx, dword [0x10018dd0]
mov dword [ebp - 4], ebx
test ecx, ecx
je 0x10010e55
mov eax, dword [0x10018dd4]
lea edx, [eax + 0x14]
cmp edx, 0x12b
jge 0x10010e55
cmp dword [ebx + 0x18], 0
je 0x10010e55
and byte [ebp - 0x168], 0
push esi
inc eax
push edi
push eax
lea eax, [ebp - 0x168]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, dword [0x10018dd4]
mov esi, 0x12a
push 0xffffffffffffffff
mov ecx, ebx
lea edi, [ebp + eax - 0x168]
sub esi, eax
call fcn.10011afa
push dword [0x10018dd0]
push esi
push edi
push 0x100189f0
push dword [ebp + 8]
push str.Index
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [edi], 0
je 0x10010e30
lea eax, [ebp - 0x168]
push eax
call fcn.1000e652
test eax, eax
pop ecx
je 0x10010e1e
push dword [0x10018dd0]
mov ebx, str.count
mov esi, 0x10014d78
push 0
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 8], eax
push eax
lea eax, [ebp - 0x3c]
push 0x100184c0
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x3c]
push dword [0x10018dd0]
push edi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [ebp - 8]
push dword [0x10018dd0]
inc eax
push eax
push ebx
push esi
call fcn.1000d8c8
add esp, 0x10
push dword [0x10018dd0]
push 0
push dword [ebp + 8]
push str.Index
jmp 0x10010e40
push dword [0x10018dd0]
push 0
push dword [ebp + 8]
push str.Session
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [ebp - 4]
call fcn.10011b3b
push 1
pop eax
pop edi
pop esi
jmp 0x10010e57
xor eax, eax
pop ebx
leave
ret 4
Function at 0x10011144
Capabilities:
Delete file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push ebx
push esi
push edi
mov edi, str.count
push dword [0x10018dd0]
mov ebx, 0x10014d78
push 0
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
mov dword [ebp - 0x14], eax
jle 0x1001129c
mov eax, dword [0x10018dd4]
add eax, 0x14
push eax
call fcn.1000b9fd
mov esi, eax
pop ecx
test esi, esi
mov dword [ebp - 8], esi
je 0x100111a1
push dword [0x10018dd0]
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0x10018dd4]
add eax, esi
mov dword [ebp - 0xc], eax
and dword [ebp - 4], 0
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push dword [ebp - 4]
lea eax, [ebp - 0x3c]
push 0x100184c0
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x28]
push dword [0x10018dd0]
push 0x13
push eax
lea eax, [ebp - 0x3c]
push 0x100189f0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x28]
push eax
call fcn.100112c8
pop ecx
push eax
lea eax, [ebp - 0x50]
push str.Reuse____s
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x50]
push dword [0x10018dd0]
push 0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp byte [ebp - 0x28], 0
mov dword [ebp - 0x10], eax
je 0x1001126f
cmp eax, 5
jl 0x10011230
cmp dword [ebp - 8], 0
je 0x10011230
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x1001126f
push eax
lea eax, [ebp - 0x3c]
push 0x100184c0
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x28]
push dword [0x10018dd0]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, dword [ebp - 0x10]
push dword [0x10018dd0]
inc eax
push eax
lea eax, [ebp - 0x50]
push edi
push eax
call fcn.1000d8c8
add esp, 0x10
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jl 0x100111ab
push dword [ebp - 8]
call fcn.1000ba08
pop ecx
mov esi, 0x10018ddc
push dword [0x10018dd0]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileSectionA]
jmp 0x100112a1
mov esi, 0x10018ddc
push dword [0x10018dd0]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileSectionA]
push esi
push str.Session
call edi
push dword [0x10018dd0]
push esi
push str.Requested
call edi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x100113ea
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
lea ebx, [esi + 0x34]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x30]
xor edi, edi
cmp eax, edi
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
jne 0x100114d6
push str.UxTheme
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, edi
mov dword [esi + 0x2c], eax
je 0x100114b6
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.OpenThemeData
push eax
call edi
push str.CloseThemeData
mov dword [esi], eax
push dword [esi + 0x2c]
call edi
push str.DrawThemeBackground
mov dword [esi + 4], eax
push dword [esi + 0x2c]
call edi
push str.DrawThemeParentBackground
mov dword [esi + 8], eax
push dword [esi + 0x2c]
call edi
push str.DrawThemeEdge
mov dword [esi + 0xc], eax
push dword [esi + 0x2c]
call edi
push str.DrawThemeIcon
mov dword [esi + 0x10], eax
push dword [esi + 0x2c]
call edi
push str.GetThemeBackgroundRegion
mov dword [esi + 0x14], eax
push dword [esi + 0x2c]
call edi
push str.GetThemeColor
mov dword [esi + 0x18], eax
push dword [esi + 0x2c]
call edi
push str.GetThemePartSize
mov dword [esi + 0x1c], eax
push dword [esi + 0x2c]
call edi
push str.IsThemeActive
mov dword [esi + 0x20], eax
push dword [esi + 0x2c]
call edi
push str.SetWindowTheme
mov dword [esi + 0x24], eax
push dword [esi + 0x2c]
call edi
mov dword [esi + 0x28], eax
jmp 0x100114d6
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
ret
Function at 0x100118eb
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
push esi
push edi
mov esi, ecx
je 0x1001192c
lea eax, [ebp - 0x68]
push 0x64
push eax
push dword [ebp + 8]
call fcn.1000e12b
add esp, 0xc
test eax, eax
je 0x10011a4a
lea eax, [ebp - 0x68]
mov dword [ebp + 8], eax
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edi, [ebp + eax - 0x68]
jmp 0x10011932
mov dword [ebp + 8], ebx
lea edi, [ebp - 0x68]
and byte [edi + 1], 0
mov byte [edi], 0x31
call fcn.10010035
mov ecx, dword [eax + 0xc]
push dword [ebp + 8]
neg ecx
sbb ecx, ecx
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CreateMutexA]
and ecx, eax
push ecx
call ebx
test eax, eax
mov dword [esi + 4], eax
je 0x10011a4a
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov byte [edi], 0x34
call fcn.10010035
mov ecx, dword [eax + 0xc]
push dword [ebp + 8]
neg ecx
sbb ecx, ecx
push 4
push 0
and ecx, eax
push 4
push ecx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
xor ecx, ecx
mov dword [esi + 0x10], eax
cmp eax, ecx
je 0x100119a6
push ecx
push ecx
push ecx
push 0xf001f
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esi + 0x14], eax
mov byte [edi], 0x32
call fcn.10010035
mov ecx, dword [eax + 0xc]
push dword [ebp + 8]
neg ecx
sbb ecx, ecx
push 0
and ecx, eax
push ecx
call ebx
mov dword [esi + 8], eax
mov byte [edi], 0x33
call fcn.10010035
mov ecx, dword [eax + 0xc]
push dword [ebp + 8]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventA]
neg ecx
sbb ecx, ecx
push 1
and ecx, eax
push 1
push ecx
call ebx
xor ecx, ecx
mov dword [esi + 0xc], eax
cmp dword [esi + 0x14], ecx
mov dword [ebp - 4], ecx
je 0x10011a34
cmp dword [esi + 8], ecx
je 0x10011a34
cmp eax, ecx
je 0x10011a34
push ecx
mov byte [edi], 0x30
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.10010035
mov ecx, dword [eax + 0xc]
push dword [ebp + 8]
neg ecx
sbb ecx, ecx
push 0
and ecx, eax
push 1
push ecx
call ebx
test eax, eax
mov dword [esi], eax
je 0x10011a34
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0xb7
setne cl
mov dword [ebp - 4], ecx
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esi]
test eax, eax
jne 0x10011a4e
mov ecx, esi
call fcn.10011a77
xor eax, eax
jmp 0x10011a70
cmp dword [ebp - 4], 0
je 0x10011a64
mov eax, dword [esi + 0x14]
and dword [eax], 0
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x10011a6d
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 4