joyce8/EMBER2024-capa huggingface dataset:
Function at 0x70012b7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
pushal
call 0x70012c6
pop dword [ebp - 0xc]
mov eax, 0xbd859e1c
sub eax, 0xb6858b56
sub dword [ebp - 0xc], eax
mov dword [ebp - 0x1c], 0x661a6c4
sub dword [ebp - 0x1c], 0xb80f6179
mov dword [ebp - 0x18], 0x28c77058
add dword [ebp - 0x18], 0x96bdbed
mov dword [ebp - 0x14], 0x73f422bd
add dword [ebp - 0x14], 0xd8582171
mov dword [ebp - 0x10], 0xcf4d86db
add dword [ebp - 0x10], 0x30b27925
lea eax, [ebp - 0x1c]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0xc]
call dword [eax]
mov dword [ebp - 0x1c], 0x67e6cfbe
add dword [ebp - 0x1c], 0xc8b9998
mov dword [ebp - 0x18], 0x91431f67
add dword [ebp - 0x18], 0xb029420e
mov dword [ebp - 0x14], 0x88157afa
sub dword [ebp - 0x14], 0x24a60e8e
mov dword [ebp - 0x10], 0x1737a69b
sub dword [ebp - 0x10], 0x1737a69b
lea ebx, [ebp - 0x1c]
push ebx
push eax
mov eax, 0xbdb2edbc
sub eax, 0xb6b1bd88
add eax, dword [ebp - 0xc]
call dword [eax]
push 0x40
push 0x1000
push 0x3731f
push 0
call eax
mov ecx, 0x703ee0aa
add ecx, 0x8fc159d0
mov ebx, eax
mov edx, 0xb72e709
add edx, 0xfb8f1af7
add edx, dword [ebp - 0xc]
mov edi, 0x80fa8721
sub dword [ebp - 4], 0x1bd5777e
mov esi, dword [edx]
sub dword [ebp - 8], esi
xor esi, edi
xor dword [ebp - 4], edi
mov dword [ebx], esi
xor dword [ebp - 4], ebx
add ebx, 4
add edx, 0xac930a4a
sub edx, 0xac930a46
loop 0x70013dd
add eax, 0xb7e33393
add eax, 0x481da928
xor ebx, ebx
add ebx, eax
add eax, 0x6f50e8d
sub eax, 0x6f50e88
mov ecx, 0x7000000
add ecx, dword [ebp - 0xc]
call ebx
leave
ret

Function at 0x700d29f
Capabilities:
Set current directory

Disassembly:
push 8
mov eax, 0x70120f1
call fcn.07001cf8
mov edi, ecx
mov dword [ebp - 0x14], edi
mov esi, dword [ebp + 8]
push esi
call fcn.0700d491
xor ebx, ebx
mov dword [edi], vtable.FileSharedStream.0
mov dword [edi + 0xc], ebx
mov byte [edi + 0x10], bl
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
lea eax, [edi + 0x18]
push eax
mov dword [ebp - 4], ebx
call dword [sym.imp.kernel32.dll_InitializeCriticalSection]
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.0700dd8a
lea ecx, [ebp - 0x10]
call fcn.0700d23c
mov eax, dword [edi + 0x14]
mov byte [ebp - 4], 2
push dword [eax + 0x14]
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryA]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x700d30c
mov eax, dword [eax + 0x14]
jmp 0x700d311
mov eax, 0x70138c2
push 0x7015240
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov dword [edi + 0xc], eax
pop ecx
pop ecx
test eax, eax
je 0x700d343
mov ecx, dword [edi + 4]
call fcn.070076d1
lea ecx, [ebp - 0x10]
mov dword [edi + 8], eax
call fcn.070012b7
mov eax, edi
call fcn.07001ea7
ret 4
push str.file_does_not_exist
push ebx
call fcn.070012b7
int3
Function at 0x10001de4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x10001df3
pop dword [ebp - 0x4c]
mov eax, 0x9464cbf1
sub eax, 0x8464adfe
sub dword [ebp - 0x4c], eax
mov dword [ebp - 0x5c], 0x9f35a1b1
add dword [ebp - 0x5c], 0xaf1ca39a
mov dword [ebp - 0x58], 0xd6c51f3c
add dword [ebp - 0x58], 0x5b6e2d09
mov dword [ebp - 0x54], 0xfa53a1c2
add dword [ebp - 0x54], 0x51f8a26c
mov dword [ebp - 0x50], 0xd5e3659f
sub dword [ebp - 0x50], 0xd5e3659f
lea eax, [ebp - 0x5c]
push eax
mov eax, 0x64faaeb8
add eax, 0xab05814c
add eax, dword [ebp - 0x4c]
call dword [eax]
mov dword [ebp - 0x5c], 0x88a79859
add dword [ebp - 0x5c], 0xebcad0fd
mov dword [ebp - 0x58], 0x886f3b7c
add dword [ebp - 0x58], 0xb8fd25f9
mov dword [ebp - 0x54], 0x719439aa
sub dword [ebp - 0x54], 0xe24cd3e
mov dword [ebp - 0x50], 0x570feae3
add dword [ebp - 0x50], 0xa8f0151d
lea ebx, [ebp - 0x5c]
push ebx
push eax
mov eax, 0x27a80586
add eax, 0xe8582a86
add eax, dword [ebp - 0x4c]
call dword [eax]
push 0x40
push 0x1000
push 0x3885c
push 0
call eax
mov ecx, 0x89cfa6cd
add ecx, 0x7630a95c
mov edi, eax
mov edx, 0x5bbdfc55
sub edx, 0x4bbd9855
add edx, dword [ebp - 0x4c]
mov esi, 0xa23d863f
add esi, 0x8b58deab
sub dword [ebp - 0x38], 0x9f212d8b
mov ebx, dword [edx]
xor dword [ebp - 0x38], ecx
add ebx, esi
mov dword [edi], ebx
xor dword [ebp - 0x44], 0xf079d3b4
add edi, 0xee87eb33
sub edi, 0xee87eb2f
add edx, 0x65794418
sub edx, 0x65794414
loop 0x10001f15
add eax, 0xb5fddbc9
add eax, 0x4a0357ae
mov ebx, eax
add eax, 5
mov ecx, 0x729ab595
add ecx, 0x9d654a6b
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret
Function at 0x1000c2c7
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x1002b19c]
jne 0x1000c2d1
repz ret
jmp fcn.10011efc

Function at 0x100210cc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
pushal
call 0x100210db
pop dword [ebp - 0x40]
mov eax, 0x75d54665
add eax, 0x9a2cca76
sub dword [ebp - 0x40], eax
push 0x40
push 0x1000
push 0x3f792
push 0
mov eax, 0x557cf084
sub eax, 0x457abf48
add eax, dword [ebp - 0x40]
call dword [eax]
mov ecx, 0x4d5d
mov ebx, eax
mov edx, 0xbd2d9f1
add edx, 0x4304e0f
add edx, dword [ebp - 0x40]
mov edi, 0x96742a53
mov dword [ebp - 0x34], 0x135c70b9
mov esi, dword [edx]
xor dword [ebp - 0x20], 0xcc316a8a
add esi, edi
sub dword [ebp - 0x3c], 0x28b857c1
mov dword [ebx], esi
xor dword [ebp - 0x1c], 0xfc2c4070
add ebx, 0xf63faee7
add ebx, 0x9c0511d
add edx, 4
loop 0x1002112e
add eax, 0x12847
xor ebx, ebx
add ebx, eax
add eax, 0x6bad71d3
add eax, 0x94528e32
mov ecx, 0x10000000
add ecx, dword [ebp - 0x40]
call ebx
leave
ret
Function at 0x4095c9
Capabilities:
Read file on windows

Disassembly:
push 0x54
mov eax, 0x416a1f
call fcn.00414056
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x14], 0x10
mov dword [ebp - 0x50], ecx
jb 0x4095e5
mov eax, dword [ebx]
jmp 0x4095e7
mov eax, ebx
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.msvcr100.dll__stat64i32]
pop ecx
pop ecx
test eax, eax
je 0x409602
xor al, al
call fcn.004140a0
ret 4
cmp dword [ebx + 0x14], 0x10
jb 0x40960c
mov eax, dword [ebx]
jmp 0x40960e
mov eax, ebx
push 0x4198fc
push eax
call dword [sym.imp.msvcr100.dll_fopen]
xor esi, esi
pop ecx
pop ecx
mov dword [ebp - 0x44], eax
cmp eax, esi
je 0x4095f8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
inc eax
push eax
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], esi
call fcn.0040a1a1
mov edi, dword [ebp - 0x60]
mov dword [ebp - 4], esi
cmp dword [ebp - 0x48], esi
jbe 0x409674
mov eax, dword [ebp - 0x5c]
sub eax, edi
mov dword [ebp - 0x4c], eax
push dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
sub eax, esi
push eax
lea eax, [edi + esi]
push 1
push eax
call dword [sym.imp.msvcr100.dll_fread]
add esp, 0x10
test eax, eax
je 0x409696
add esi, eax
cmp esi, dword [ebp - 0x48]
jb 0x409651
push dword [ebp - 0x44]
call dword [sym.imp.msvcr100.dll_fclose]
pop ecx
mov byte [edi + esi], 0
mov eax, edi
mov ecx, dword [ebp - 0x50]
push eax
push ebx
call fcn.0040930e
test eax, eax
jne 0x409684
mov bl, 1
jmp 0x4096d4
push dword [ebp - 0x44]
call dword [sym.imp.msvcr100.dll_ferror]
pop ecx
test eax, eax
je 0x409674
cmp dword [ebx + 0x14], 0x10
jb 0x4096ac
mov ebx, dword [ebx]
call dword [sym.imp.msvcr100.dll__errno]
push dword [eax]
call dword [sym.imp.msvcr100.dll_strerror]
push eax
push ebx
push str.Failed_to_read_file__s:__s_n
call fcn.004115c7
push dword [ebp - 0x44]
call dword [sym.imp.msvcr100.dll_fclose]
add esp, 0x14
xor bl, bl
lea ecx, [ebp - 0x60]
call fcn.00409d10
mov al, bl
jmp 0x4095fa

Function at 0x40a8ce
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x190]
sub esp, 0x210
mov eax, dword [0x424eb0]
xor eax, ebp
mov dword [ebp + 0x18c], eax
mov eax, dword [ebp + 0x198]
push ebx
push esi
push edi
mov esi, 0x103
xor ebx, ebx
push esi
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x7b]
push ebx
push eax
mov byte [ebp - 0x7c], bl
call sub.msvcr100.dll_memset
add esp, 0xc
lea edi, [esi + 1]
push edi
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
cmp eax, ebx
je 0x40a96e
cmp eax, edi
ja 0x40a96e
push esi
lea eax, [ebp + 0x89]
push ebx
push eax
mov byte [ebp + 0x88], bl
call sub.msvcr100.dll_memset
push dword [ebp - 0x80]
lea eax, [ebp - 0x7c]
push eax
push 0x4199fc
lea eax, [ebp + 0x88]
push esi
push eax
call dword [sym.imp.msvcr100.dll__snprintf]
add esp, 0x20
cmp eax, ebx
jle 0x40a96e
mov byte [ebp + eax + 0x88], bl
lea eax, [ebp + 0x88]
push eax
call dword [sym.imp.kernel32.dll_LoadLibraryA]
jmp 0x40a970
xor eax, eax
mov ecx, dword [ebp + 0x18c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00413fde
add ebp, 0x190
leave
ret
Function at 0x40b6e8
Capabilities:
Check if file exists

Disassembly:
push 0x24
mov eax, 0x416c04
call fcn.00413fed
xor edi, edi
mov dword [ebp - 0x10], edi
mov esi, 0x104
push esi
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
call fcn.0040a1a1
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0x14], 0x10
mov dword [ebp - 4], edi
jb 0x40b720
mov eax, dword [ebx]
jmp 0x40b722
mov eax, ebx
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp - 0x20]
push esi
push eax
call dword [sym.imp.kernel32.dll_GetFullPathNameA]
cmp eax, edi
je 0x40b7a0
cmp eax, esi
jae 0x40b7a0
push esi
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
call fcn.0040a1a1
mov esi, dword [ebp - 0x2c]
sub esi, dword [ebp - 0x30]
mov byte [ebp - 4], 1
push esi
push dword [ebp - 0x30]
push dword [ebp - 0x20]
call dword [sym.imp.kernel32.dll_GetLongPathNameA]
cmp eax, edi
je 0x40b77f
cmp eax, esi
jae 0x40b77f
push dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
call fcn.00404c84
lea ecx, [ebp - 0x30]
call fcn.00409d10
jmp 0x40b7ca
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 2
je 0x40b79b
push eax
push dword [ebp - 0x20]
push str.Unable_to_get_long_path_name_for___s_:_GetLongPathName_failed__error__d__n
call fcn.0041130e
add esp, 0xc
push dword [ebp - 0x20]
jmp 0x40b76d
cmp dword [ebx + 0x14], 0x10
jb 0x40b7aa
mov esi, dword [ebx]
jmp 0x40b7ac
mov esi, ebx
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push esi
push 0x41a818
call fcn.0041130e
mov ecx, dword [ebp + 8]
add esp, 0xc
push ebx
call fcn.004080ea
lea ecx, [ebp - 0x20]
call fcn.00409d10
mov eax, dword [ebp + 8]
call fcn.0041408c
ret
Function at 0x40bafa
Capabilities:
Compare security identifiers

Disassembly:
push 0x34
mov eax, 0x416ca2
call fcn.00414056
lea eax, [ebp - 0x24]
push eax
xor ebx, ebx
push ebx
push 8
call dword [sym.imp.kernel32.dll_GetCurrentThread]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenThreadToken]
test eax, eax
jne 0x40bb4c
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x3f0
jne 0x40bbf7
lea eax, [ebp - 0x24]
push eax
push 8
call dword [sym.imp.kernel32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x40bbf7
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
push 0x400
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
call fcn.0040a1a1
mov edi, dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
mov byte [ebp - 4], 1
jmp 0x40bb9d
call dword [sym.imp.kernel32.dll_GetLastError]
lea ecx, [ebp - 0x38]
cmp eax, 0x7a
jne 0x40bbe6
push dword [ebp - 0x34]
lea eax, [ebp - 0x40]
push esi
push eax
call fcn.00401fa0
push dword [ebp - 0x20]
lea ecx, [ebp - 0x38]
call fcn.0040a1a1
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x20]
push ecx
sub eax, esi
push eax
push esi
push 2
push dword [ebp - 0x24]
mov dword [ebp - 0x20], ebx
call edi
test eax, eax
je 0x40bb77
lea eax, [ebp - 0x3c]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x14], 0x500
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
jne 0x40bbff
lea ecx, [ebp - 0x38]
call fcn.00409d10
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040b269
xor al, al
call fcn.004140a0
ret
xor edi, edi
mov byte [ebp - 0x19], bl
cmp dword [esi], ebx
jbe 0x40bc28
lea ebx, [esi + 4]
push dword [ebp - 0x3c]
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
jne 0x40bc24
inc edi
add ebx, 8
cmp edi, dword [esi]
jb 0x40bc0b
jmp 0x40bc28
mov byte [ebp - 0x19], 1
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
lea ecx, [ebp - 0x38]
call fcn.00409d10
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040b269
mov al, byte [ebp - 0x19]
jmp 0x40bbf9
Function at 0x40f43b
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x424eb0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
imul edi, edi, 0x3e8
mov al, byte [0x4252d0]
test al, al
je 0x40f464
call fcn.0040a1a1
push edi
push dword [0x4252d8]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.kernel32.dll_GlobalMemoryStatus]
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x424e14]
cmp ecx, eax
sbb esi, esi
shr eax, 0x14
push eax
mov eax, dword [ebp - 0x1c]
shr ecx, 0x14
push ecx
shr eax, 0x14
push eax
push str.Memory_status:_total___u_available___u_limit___u_n
push 4
call fcn.00411620
add esp, 0x14
neg esi
je 0x40f4b9
push str.Low_memory_condition___skipping_refresh_operation_n
push 3
call fcn.00411620
pop ecx
pop ecx
jmp 0x40f456
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00413fde
leave
ret

Function at 0x40f5dc
Capabilities:
Get memory capacity

Disassembly:
cmp dword [0x425220], 0
jne 0x40f5f8
cmp dword [0x425218], 0
jne 0x40f5f3
jmp fcn.0040f43b
jmp fcn.0040f371
jmp fcn.0040f4c7

Function at 0x40fdb2
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push 0x1bc
mov eax, 0x417336
call fcn.00414056
mov eax, dword [ebp + 8]
push 0x5c
push eax
mov dword [ebp - 0x1c8], eax
lea eax, [ebp - 0x48]
push eax
call fcn.0040a42d
push 0x41cb30
push eax
lea eax, [ebp - 0x2c]
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
call fcn.0040a1a1
add esp, 0x18
push ebx
push 1
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.00403933
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x40fe08
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x1c0]
push ecx
push eax
call dword [sym.imp.kernel32.dll_FindFirstFileA]
mov dword [ebp - 0x1c4], eax
cmp eax, 0xffffffff
je 0x40fed6
cmp byte [ebp + 0xc], bl
je 0x40feaf
test byte [ebp - 0x1c0], 0x10
je 0x40feaf
push 2
mov edi, 0x41cb34
lea esi, [ebp - 0x194]
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40feaf
push 3
mov edi, 0x41cb38
lea esi, [ebp - 0x194]
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40feaf
push 0x5c
push dword [ebp - 0x1c8]
lea eax, [ebp - 0x80]
push eax
call fcn.0040a42d
lea ecx, [ebp - 0x194]
push ecx
push eax
lea eax, [ebp - 0x64]
push eax
mov byte [ebp - 4], 3
call fcn.0040a1a1
push dword [ebp + 0xc]
mov byte [ebp - 4], 4
push eax
call fcn.0040fdb2
add esp, 0x20
push ebx
push 1
lea ecx, [ebp - 0x64]
call fcn.00403933
push ebx
push 1
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 2
call fcn.00403933
lea eax, [ebp - 0x1c0]
push eax
push dword [ebp - 0x1c4]
call dword [sym.imp.kernel32.dll_FindNextFileA]
test eax, eax
jne 0x40fe25
push dword [ebp - 0x1c4]
call dword [sym.imp.kernel32.dll_FindClose]
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.00403933
call fcn.004140a0
ret
Function at 0x412d04
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x194
mov eax, dword [0x424eb0]
xor eax, esp
mov dword [esp + 0x190], eax
lea eax, [esp]
push eax
push 0x202
call dword [sym.imp.ws2_32.dll_WSAStartup]
test eax, eax
je 0x412d38
push eax
push str.Unable_to_initialize_socket_library__error__d_n
call fcn.004115c7
pop ecx
pop ecx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.00413fde
add esp, 0x194
ret

Function at 0x412f61
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push 0x28
mov eax, 0x417882
call fcn.00414056
mov esi, ecx
lea ecx, [esi + 0xc]
mov dword [ebp - 0x34], esi
mov dword [esi], vtable.Socket.0
call fcn.0040a1a1
and dword [ebp - 4], 0
push 6
push 1
push 2
mov byte [esi + 0x14], 0
call dword [sym.imp.ws2_32.dll_socket]
mov dword [esi + 4], eax
cmp eax, 0xffffffff
jne 0x412fcf
and dword [ebp - 0x20], 0
push 0xf
pop eax
push eax
push str.socket___failed
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x30], 0
call fcn.00404698
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov dword [ebp - 0x14], eax
push 0x421b08
lea eax, [ebp - 0x30]
push eax
call sub.msvcr100.dll__CxxThrowException
mov dword [esi + 8], accept
mov eax, esi
call fcn.004140a0
ret

Function at 0x413a0e
Capabilities:
Create thread

Disassembly:
push ecx
push esi
lea eax, [esp + 4]
push eax
push 0
mov esi, ecx
push esi
push 0x41399d
push 0
push 0
call dword [sym.imp.msvcr100.dll__beginthreadex]
add esp, 0x18
mov dword [esi + 4], eax
pop esi
test eax, eax
jne 0x413a54
call dword [sym.imp.msvcr100.dll__errno]
push dword [eax]
call dword [sym.imp.msvcr100.dll_strerror]
push eax
push str.Unable_to_start_thread:__s_n
call fcn.0041130e
add esp, 0xc
xor al, al
pop ecx
ret
mov al, 1
pop ecx
ret

Function at 0x413fde
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x424eb0]
jne 0x413fe8
repz ret
jmp fcn.00414667

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x401ee2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x411280]
jne 0x401eec
repz ret
jmp fcn.00404399

Function at 0x407601
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
pushal
call 0x407610
pop dword [ebp - 4]
mov eax, 0x407610
sub dword [ebp - 4], eax
push 0x40
push 0x1000
push 0x3882c
push 0
mov eax, sym.imp.kernel32.dll_VirtualAlloc
add eax, dword [ebp - 4]
call dword [eax]
mov ecx, 0x44e4
mov edi, eax
mov edx, 0x413bc4
add edx, dword [ebp - 4]
mov esi, 0x6e921dc8
sub esi, 0x875645cb
mov ebx, dword [edx]
xor ebx, esi
mov dword [edi], ebx
add edi, 4
add edx, 0x2a99e4fe
sub edx, 0x2a99e4fa
loop 0x407659
add eax, 0x1ea33cb
sub eax, 0x1e92d68
xor ebx, ebx
add ebx, eax
add eax, 0x2829c751
add eax, 0xd7d638b4
mov ecx, 0x400000
add ecx, dword [ebp - 4]
call ebx
leave
ret
Function at 0x40324c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
pushal
call 0x40325b
pop dword [ebp - 0x24]
mov eax, 0xf4623b7d
sub eax, 0xf4220922
sub dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0x26928efc
add dword [ebp - 0x34], 0x27bfb64f
mov dword [ebp - 0x30], 0x91f5cae7
sub dword [ebp - 0x30], 0x5fc27ea2
mov dword [ebp - 0x2c], 0x256d4e21
add dword [ebp - 0x2c], 0x26def60d
mov dword [ebp - 0x28], 0xb93e30d2
sub dword [ebp - 0x28], 0xb93e30d2
lea eax, [ebp - 0x34]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x24]
call dword [eax]
mov dword [ebp - 0x34], 0xc78a207f
add dword [ebp - 0x34], 0xace848d7
mov dword [ebp - 0x30], 0x53464ac1
sub dword [ebp - 0x30], 0x11d9e94c
mov dword [ebp - 0x2c], 0x79b3d126
add dword [ebp - 0x2c], 0xe9bb9b46
mov dword [ebp - 0x28], 0xf671be38
sub dword [ebp - 0x28], 0xf671be38
lea ebx, [ebp - 0x34]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x24]
call dword [eax]
push 0x40
push 0x1000
push 0x3d918
push 0
call eax
mov ecx, 0xc4f4280e
sub ecx, 0xc4f3c5e8
mov edx, eax
mov ebx, 0x459200
add ebx, dword [ebp - 0x24]
mov edi, 0xc0fbfa52
add edi, 0x6d885a31
sub dword [ebp - 0x20], edi
mov esi, dword [ebx]
xor dword [ebp - 0x14], eax
sub esi, edi
xor dword [ebp - 0xc], 0x29df9dac
mov dword [edx], esi
xor dword [ebp - 4], edx
add edx, 0x8e7d21dd
sub edx, 0x8e7d21d9
add ebx, 0x42d46e7b
sub ebx, 0x42d46e77
loop 0x40336d
add eax, 0xadab3b6c
add eax, 0x52563fff
xor ebx, ebx
add ebx, eax
add eax, 5
mov ecx, 0xc842f228
add ecx, 0x37fd0dd8
add ecx, dword [ebp - 0x24]
call ebx
leave
ret
Function at 0x1000da09
Capabilities:
Query environment variable

Disassembly:
push esi
push edi
mov edi, 0x1008f4c8
push edi
call sym.glib_lite.dll_Ordinal_235
xor esi, esi
inc esi
pop ecx
test eax, eax
je 0x1000da44
push str.G_MAIN_POLL_DEBUG
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov ecx, dword [0x1008f4a8]
test eax, eax
push esi
cmovne ecx, esi
push edi
mov dword [0x1008f4a8], ecx
call sym.glib_lite.dll_Ordinal_236
add esp, 0xc
push ebx
push 0x70
push esi
call sym.glib_lite.dll_Ordinal_196
mov edi, eax
push edi
call sym.glib_lite.dll_Ordinal_207
lea ecx, [edi + 8]
push ecx
call sym.glib_lite.dll_Ordinal_48
xor ebx, ebx
push ebx
push ebx
call sym.glib_lite.dll_Ordinal_124
mov dword [edi + 0x24], eax
mov dword [edi + 0x14], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x20], esi
mov dword [edi + 0x30], esi
mov dword [edi + 0x34], ebx
mov dword [edi + 0x5c], 0x1001bb93
mov dword [edi + 0x44], ebx
mov dword [edi + 0x48], ebx
call fcn.10001640
mov dword [edi + 0x28], eax
mov dword [edi + 0x68], ebx
call fcn.1001bf14
lea esi, [edi + 0x50]
mov dword [edi + 0x4c], eax
push esi
push eax
call fcn.1001bf00
push esi
push ebx
push edi
call fcn.1000d57e
mov esi, 0x1008f4bc
push esi
call sym.glib_lite.dll_Ordinal_208
push edi
push dword [0x1008f4c4]
call sym.glib_lite.dll_Ordinal_318
add esp, 0x38
mov dword [0x1008f4c4], eax
cmp dword [0x1008f4a8], 0
pop ebx
je 0x1000dae1
push edi
push str.created_context_p_n
call sym.glib_lite.dll_Ordinal_350
pop ecx
pop ecx
push esi
call sym.glib_lite.dll_Ordinal_209
pop ecx
mov eax, edi
pop edi
pop esi
ret

Function at 0x1000f2a1
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x194]
sub esp, 0x214
mov eax, dword [0x1008f304]
xor eax, ebp
mov dword [ebp + 0x190], eax
push esi
lea eax, [ebp - 0x80]
xor esi, esi
push eax
push dword [ebp + 0x19c]
mov dword [ebp - 0x80], esi
push esi
call sub.SHELL32.dll_SHGetSpecialFolderLocation
test eax, eax
jne 0x1000f303
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x80]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x1000f2fa
push esi
push esi
push esi
lea eax, [ebp - 0x7c]
push 0xffffffffffffffff
push eax
call sym.glib_lite.dll_Ordinal_433
add esp, 0x14
mov esi, eax
push dword [ebp - 0x80]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, dword [ebp + 0x190]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.1003c212
add ebp, 0x194
leave
ret