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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x1001c040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x1000eb4c
cmp byte [esi + 0x3d], 0
je 0x1000eb4c
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x1000eb3a
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet___char___char___char___const]
sub eax, 0
je 0x1000eb01
sub eax, 1
je 0x1000eb05
sub eax, 2
jne 0x1000eb3a
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10010158
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x1000eb23
push dword [esi + 0x4c]
push edi
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
cmp edi, eax
jne 0x1000eb3a
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10010158
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10010158
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.10010158
mov esp, ebp
pop ebp
ret
Function at 0x1000fef0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001171d
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x1001c040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 0xf
lea ecx, [ebp - 0x84]
push dword [ebp + 0x18]
cmova eax, dword [ebp + 8]
push eax
mov byte [ebp - 0x84], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0x67452301
mov dword [ebp - 0x34], 0xefcdab89
mov dword [ebp - 0x30], 0x98badcfe
mov dword [ebp - 0x2c], 0x10325476
call fcn.1000fd90
cmp byte [ebp - 0x84], 0
jne 0x10010041
xor edx, edx
lea ecx, [ebp - 0x3f]
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
mov byte [ebp + edx - 0x18], al
movzx eax, byte [ecx - 4]
mov byte [ebp + edx - 0x17], al
movzx eax, byte [ecx - 3]
mov byte [ebp + edx - 0x16], al
movzx eax, byte [ecx - 2]
mov byte [ebp + edx - 0x15], al
add edx, 4
cmp edx, 8
jb 0x1000ff85
mov edx, dword [ebp - 0x40]
mov ecx, 0x78
shr edx, 3
mov eax, 0x38
and edx, 0x3f
sub ecx, edx
sub eax, edx
cmp edx, 0x38
cmovae eax, ecx
lea ecx, [ebp - 0x84]
push eax
push 0x1001cae0
call fcn.1000fd90
push 8
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x84]
call fcn.1000fd90
xor edx, edx
lea ecx, [ebp - 0x37]
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 4]
mov byte [ebp + edx - 0x28], al
movzx eax, byte [ecx - 4]
mov byte [ebp + edx - 0x27], al
movzx eax, byte [ecx - 3]
mov byte [ebp + edx - 0x26], al
movzx eax, byte [ecx - 2]
mov byte [ebp + edx - 0x25], al
add edx, 4
cmp edx, 0x10
jb 0x1000fff4
push 0x40
lea eax, [ebp - 0x83]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
mov byte [ebp - 0x84], 1
add esp, 0xc
movq qword [ebp - 0x40], xmm0
push esi
lea ecx, [ebp - 0x84]
call fcn.1000fe40
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0xf
jbe 0x10010083
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10010079
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10010079
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100104a8
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10010158
mov esp, ebp
pop ebp
ret
Function at 0x4057c6
Capabilities:
Get common file path

Disassembly:
push 4
mov eax, 0x4366bf
call fcn.0041f6af
mov esi, ecx
push 0
lea edi, [esi + 8]
push str.http:__
mov ecx, edi
call fcn.00404164
test eax, eax
je 0x4057ff
push 0
push str.ftp:__
mov ecx, edi
call fcn.00404164
test eax, eax
jne 0x405892
push 0x2f
push dword [edi]
call fcn.00420032
pop ecx
pop ecx
test eax, eax
jne 0x405813
or eax, 0xffffffff
jmp 0x405817
sub eax, dword [edi]
sar eax, 1
lea ebx, [eax + 1]
mov eax, dword [edi]
cmp ebx, dword [eax - 0xc]
jne 0x40582a
mov ecx, edi
call fcn.00401392
jmp 0x405892
lea ecx, [esi + 0x10]
mov dword [esi + 0xc], 1
push edi
call fcn.0040126b
add esi, 0x14
push 0x104
mov ecx, esi
call fcn.0040171f
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
mov ecx, esi
call fcn.004017b3
push ebx
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.00405c92
mov eax, dword [eax]
mov ecx, esi
and dword [ebp - 4], 0
push dword [eax - 0xc]
push eax
call fcn.00403d04
mov ecx, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.00401797
push esi
mov ecx, edi
call fcn.0040126b
call fcn.0041f67d
ret

Function at 0x4059f9
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push esi
push edi
push 0x44
pop edi
push edi
xor ebx, ebx
lea eax, [ebp - 0x58]
push ebx
push eax
mov esi, ecx
call fcn.0041fdd0
push 0x10
lea eax, [ebp - 0x14]
mov dword [ebp - 0x58], edi
push ebx
push eax
call fcn.0041fdd0
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
add esp, 0x18
push dword [eax - 0xc]
call fcn.0040171f
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x58]
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x405a83
cmp dword [0x44d6bc], ebx
je 0x405a72
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [esi + 8]
push str.InstallUpdate:_CreateProcess_failed__Cmdline_s_Error_d_._n
push 0x44d6ac
call fcn.00401431
add esp, 0x10
mov ecx, 0x44d5e0
call fcn.0040892f
xor eax, eax
jmp 0x405b04
mov esi, ebx
cmp dword [0x44d6c4], ebx
jne 0x405a9d
push ebx
push ebx
push ebx
push ebx
push 0x4392ac
call fcn.00410db8
mov esi, eax
push 0xffffffffffffffff
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test esi, esi
je 0x405ac8
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x405ab7
mov eax, ebx
jmp 0x405aba
mov eax, dword [eax + 0x20]
push ebx
push ebx
push 0x405
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
xor edi, edi
inc edi
test eax, eax
je 0x405af2
mov ecx, dword [0x44d6c0]
cmp dword [ebp - 4], 0xbc2
cmove ecx, edi
mov dword [0x44d6c0], ecx
push dword [ebp - 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x10]
call esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x406157
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov ecx, 0x3ff
and ax, cx
movzx eax, ax
cmp eax, 1
je 0x40617a
cmp eax, 0xd
je 0x40617a
mov eax, dword [ebp + 0xc]
jmp 0x406182
mov eax, dword [ebp + 0xc]
or eax, 0x100000
push dword [ebp + 0x10]
push eax
push dword [ebp + 8]
push 0x44d5e0
call fcn.00415b3f
add esp, 0x10
pop ebp
ret

Function at 0x406d31
Capabilities:
Contain obfuscated stackstrings

Disassembly:
cmp eax, ebx
je 0x407336
mov edi, dword [eax + 0x3c]
add edi, eax
movzx eax, word [edi + 0x14]
lea esi, [eax + edi + 0x18]
mov dword [ebp - 0x44], esi
call fcn.00406b3d
mov eax, 0xb70fa331
inc edi
push es
lea eax, [eax + eax*4]
shl eax, 3
sub eax, dword [ebp + 0x10]
add eax, esi
mov dword [ebp - 0xb4], eax
mov dword [ebp - 8], eax
call fcn.00406b3d
sar byte [0x8b669404], 0x47
push es
cmp ax, bx
jbe 0x406d97
lea ecx, [esi + 0xc]
movzx edx, ax
invalid
inc ecx

Function at 0x4071cb
Capabilities:
Inspect section memory permissions

Disassembly:
cmp dword [eax], ebx
je 0x4071f1
mov edx, dword [eax + 4]
lea ecx, [eax + 8]
add edx, eax
mov dword [ebp + 8], ecx
cmp ecx, edx
jae 0x4071ec
mov ecx, dword [ebp + 8]
movzx ecx, word [ecx]
mov edx, ecx
rol dword [ecx + 0xf000e2], 1
add byte [ecx + 0x3000fa], al
add byte [ebp + 0x13], dh
and ecx, 0xfff
mov edx, esi
sub edx, dword [edi + 0x34]
add ecx, esi
add ecx, dword [eax]
add dword [ecx], edx
jmp 0x4071de
cmp edx, ebx
jne 0x40732c
mov ecx, dword [eax + 4]
add dword [ebp + 8], 2
add ecx, eax
cmp dword [ebp + 8], ecx
jb 0x4071ad
add eax, dword [eax + 4]
jmp 0x40719a
mov dword [ebp + 0xc], ebx
jmp 0x4071fc
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x407214
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x407232
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja method.CSetupApp.virtual_248
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x407277
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x407280
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je 0x40728a
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x40726c
inc dword [ebp + 0xc]
invalid
invalid
invalid
Function at 0x407f1d
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax - 0x1d]
push eax
lea eax, [ebp - 0x394]
push eax
call fcn.00406aae
add esp, 0xc
and dword [ebp - 0x700], 0
jmp 0x407f4a
mov eax, dword [ebp - 0x700]
inc eax
mov dword [ebp - 0x700], eax
cmp dword [ebp - 0x700], 5
jge 0x407f93
mov eax, dword [ebp - 0x700]
movsx eax, byte [ebp + eax - 0x394]
movsx ecx, byte [ebp - 0x24]
xor eax, ecx
mov ecx, dword [ebp - 0x700]
mov byte [ebp + ecx - 0x394], al
mov eax, dword [ebp - 0x700]
movsx eax, byte [ebp + eax - 0x394]
not eax
mov ecx, dword [ebp - 0x700]
mov byte [ebp + ecx - 0x394], al
jmp 0x407f3d
invalid
call fcn.00406b3d
and al, ah
ja 0x407f8f
and byte [ebp - 0x72c], 0
and byte [ebp - 0x72b], 0
mov byte [ebp - 0x72a], 0xc2
and byte [ebp - 0x729], 0
mov byte [ebp - 0x728], 0x6b
imul eax, esi, 0xffffff85
fprem
invalid
call dword [esi + eax*8 - 0x7b]
invalid
clc
invalid
dec dword [edi - 0x3a]
test ebx, ebx
clc
invalid
dec dword [ecx - 0x3a]
test esp, ebx
clc
invalid
dec dword [eax - 0x3a]
test ebp, ebx
clc
invalid
call [esi + eax*8 - 0x7b]
fdivp st(0)
invalid
call dword [ecx - 0x3a]
test edi, ebx
clc
invalid
jmp [ebp - 0x3a]
test eax, esp
clc
invalid
dec dword [edi - 0x3a]
test ecx, esp
clc
invalid
call dword [edx - 0x3a]
test edx, esp
clc
invalid
dec dword [ecx - 0x3a]
test ebx, esp
clc
invalid
call [eax - 0x3a]
test esp, esp
clc
invalid
call [esi - 0x3a]
test ebp, esp
clc
invalid
dec dword [ecx - 0x3a]
test esi, esp
clc
invalid
invalid
cmp eax, 0xffeb17e8
call [ebx + 0x74]
invalid
test edi, ebx
clc
invalid
cmp al, 0x8d
test esp, edx
clc
invalid

Function at 0x40ce1f
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 4], ecx
mov esi, edi
cmp dword [ebp + 8], esi
je 0x40ce64
call fcn.00416709
push 0xf0
push dword [ebp + 8]
mov ebx, dword [eax + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x40ce64
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
test esi, esi
je 0x40ce80
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov ecx, dword [ebp - 4]
push edi
call fcn.004090b1
mov ebx, eax
test edi, edi
je 0x40ce7e
test esi, esi
je 0x40ce7e
push esi
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x401674
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [esp], 0
call sym._OpenClipboard_4
sub esp, 4
test eax, eax
setne al
test al, al
je 0x40171d
call sym._EmptyClipboard_0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._strlen
add eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov dword [esp], 2
call sym._GlobalAlloc_8
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x401718
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._GlobalLock_4
sub esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x401718
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sym._strcpy
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._GlobalUnlock_4
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], eax
mov dword [esp], 1
call sym._SetClipboardData_8
sub esp, 8
call sym._CloseClipboard_0
nop
leave
ret

Function at 0x401720
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x24
mov ecx, dword [ebp + 8]
call fcn.0047e2a0
mov dword [esp], 0
call sym._OpenClipboard_4
sub esp, 4
test eax, eax
setne al
test al, al
je 0x4017b0
mov dword [esp], 1
call sym._GetClipboardData_4
sub esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x401795
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._GlobalLock_4
sub esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x401795
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
mov ecx, dword [ebp + 8]
call fcn.0047e7d0
sub esp, 4
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._GlobalUnlock_4
sub esp, 4
call sym._CloseClipboard_0
jmp 0x4017b0
nop
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 4]
leave
ret
Function at 0x40b980
Capabilities:
Get thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
mov dword [esp], 0x4d406c
call sym._EnterCriticalSection_4
mov ebx, dword [0x4d4064]
sub esp, 4
test ebx, ebx
je 0x40b9cb
nop
mov eax, dword [ebx]
mov dword [esp], eax
call sym._TlsGetValue_4
sub esp, 4
mov esi, eax
call sym._GetLastError_0
test eax, eax
jne 0x40b9c4
test esi, esi
je 0x40b9c4
mov eax, dword [ebx + 4]
mov dword [esp], esi
call eax
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x40b9a0
mov dword [esp], 0x4d406c
call sym._LeaveCriticalSection_4
sub esp, 4
add esp, 0x14
pop ebx
pop esi
ret

Function at 0x40bbb0
Capabilities:
Write file on windows

Disassembly:
push esi
push ebx
sub esp, 0x14
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x17
mov dword [esp + 4], 1
lea esi, [esp + 0x24]
mov dword [esp], str.Mingw_runtime_failure:_n
lea ebx, [eax + 0x40]
mov dword [esp + 0xc], ebx
call sym._fwrite
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._vfprintf
call sym._abort
lea esi, [esi]

Function at 0x40bc00
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, eax
mov esi, edx
sub esp, 0x4c
lea eax, [esp + 0x24]
mov dword [esp + 8], 0x1c
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._VirtualQuery_12
sub esp, 0xc
test eax, eax
je 0x40bcd8
mov eax, dword [esp + 0x38]
cmp eax, 0x40
je 0x40bc3e
cmp eax, 4
jne 0x40bc60
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memcpy
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x30]
lea ebp, [esp + 0x20]
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x1c], edx
call sym._memcpy
mov edx, dword [esp + 0x1c]
cmp edx, 0x40
je 0x40bc4e
cmp edx, 4
je 0x40bc4e
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1c
mov dword [esp], str.__VirtualQuery_failed_for__d_bytes_at_address__p
call fcn.0040bbb0

Function at 0x40c250
Capabilities:
Get thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
call sym._GetLastError_0
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._TlsGetValue_4
sub esp, 4
mov ebx, eax
mov dword [esp], esi
call sym._SetLastError_4
sub esp, 4
mov eax, ebx
add esp, 0x14
pop ebx
pop esi
ret

Function at 0x40c280
Capabilities:
Set thread local storage value

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._TlsSetValue_8
sub esp, 8
test eax, eax
je 0x40c2a4
xor eax, eax
add esp, 0x1c
ret
add esp, 0x1c
jmp sym._GetLastError_0
Function at 0x41c9d0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
cmp byte [0x496104], 0
jne 0x41caa4
mov byte [0x496104], 1
call sym.___cxa_current_exception_type
test eax, eax
je 0x41cb3e
mov ebx, dword [eax + 4]
xor eax, eax
cmp byte [ebx], 0x2a
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x1c], 0xffffffff
sete al
add ebx, eax
lea eax, [esp + 0x1c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym.___cxa_demangle
mov esi, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x30
mov ebp, eax
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_after_throwing_an_instance_of_
lea edi, [esi + 0x40]
mov dword [esp + 0xc], edi
call sym._fwrite
cmp dword [esp + 0x1c], 0
mov dword [esp + 4], edi
je 0x41ca9a
mov dword [esp], ebx
call sym._fputs
lea eax, [esi + 0x40]
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x497215
mov dword [esp + 0xc], eax
call sym._fwrite
cmp dword [esp + 0x1c], 0
je 0x41cad1
call sym.___cxa_rethrow
mov dword [esp], ebp
call sym._fputs
jmp 0x41ca6b
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x1d
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_recursively_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sym._fwrite
call sym._abort
mov dword [esp], ebp
call sym._free
jmp 0x41ca95
call sym._abort
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x2d
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_without_an_active_exception_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sym._fwrite
jmp 0x41cb39

Function at 0x430002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..idata
nop
nop
nop
push 4
nop
nop
nop
nop
nop
nop
pop edi
cmp eax, 0
nop
nop
nop
nop
je 0x430072
nop
nop
nop
mov ebx, 0x408ecc
nop
mov ecx, ebx
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
mov esi, 0x533153c6
nop
nop
nop
nop
xor dword [eax], esi
nop
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x430060
nop
nop
nop
mov eax, section..data
nop
nop
cmp eax, 0
nop
nop
nop
nop
nop
je 0x4300d2
mov ebx, 0x42e1d0
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0xc8946dc
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
popal
nop
jmp 0x401219
Function at 0x1009954
Capabilities:
Resolve function by parsing pe exports

Disassembly:
lodsd eax, dword [esi]
inc ecx
lea edi, [eax + ebx]
jmp 0x10099b3
nop
dec eax
lea esi, [ebx]
lea edi, [ebx]
add edi, dword [edx + 0x1c]
jmp 0x1004d59
add esi, dword [edx + 0x24]
sub edx, 0xdb0942f0
or edx, edi
push ebx
lea esi, [esi + ecx*2]
jmp 0x1009858
xor eax, 0x584f9de7
mov esp, esp
lea esi, [esi]
sbb eax, dword [esp + 4]
jne 0x1004c18
jmp 0x1004cb0
mov esi, ebx
xchg ah, ah
not eax
mov eax, ebx
add eax, dword [ebx + 0x3c]
jmp 0x1009a55
movzx eax, word [esi]
pop esi
add esi, dword [edi + eax*4]
inc cl
xchg al, ch
ret 4
mov edx, ebx
jmp 0x1004d85
cld
nop
cmp ecx, dword [edx + 0x18]
wait
je 0x1009a05
and ecx, ecx
wait
push 0
lea eax, [eax]
mov ecx, ecx
pop eax
jmp 0x1009a69
ret
xor ch, 0
nop
cld
lea edi, [edi + 1]
cmp byte [edi], 1
pop eax
wait
ja 0x1009a69
jmp 0x1004d6d
xchg ecx, edi
add edx, dword [eax + 0x78]
push 0xffffffffffffffff
add esi, dword [edx + 0x20]
and edi, esp
not ecx
pop ecx
jmp 0x1004c18
imul eax, eax, 0xf
push eax
nop
sub esi, 0
movzx eax, byte [edi]
sub dword [esp], eax
jmp 0x1009a3d

Function at 0x40896b
Capabilities:
Encode data using xor

Disassembly:
mov edi, 0x4085d8
mov eax, 0x357026b2
call fcn.00408997
xor dword [ebx], edi
inc eax
add ebx, 1
push ecx
pop ecx
push 0x58f99c72
mov ecx, dword [esp]
add esp, 4
cmp ebx, edx
jne fcn.0040896b
ret
Function at 0x1002aadf
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x1002aaee
pop dword [ebp - 0x4c]
mov eax, 0x1002aaee
sub dword [ebp - 0x4c], eax
mov dword [ebp - 0x5c], 0xd306ccba
sub dword [ebp - 0x5c], 0x84b4876f
mov dword [ebp - 0x58], 0x778c79a1
sub dword [ebp - 0x58], 0x45592d5c
mov dword [ebp - 0x54], 0xa78850d3
add dword [ebp - 0x54], 0xa4c3f35b
mov dword [ebp - 0x50], 0x461f2949
sub dword [ebp - 0x50], 0x461f2949
lea eax, [ebp - 0x5c]
push eax
mov eax, 0xe2264ef9
add eax, 0x2ddc713f
add eax, dword [ebp - 0x4c]
call dword [eax]
mov dword [ebp - 0x5c], 0xb72fa30a
sub dword [ebp - 0x5c], 0x42bd39b4
mov dword [ebp - 0x58], 0x4525c027
sub dword [ebp - 0x58], 0x3b95eb2
mov dword [ebp - 0x54], 0x5cda7e49
sub dword [ebp - 0x54], 0xf96b11dd
mov dword [ebp - 0x50], 0x6d9f66b4
sub dword [ebp - 0x50], 0x6d9f66b4
lea ebx, [ebp - 0x5c]
push ebx
push eax
mov eax, 0xe9b24f09
add eax, 0x2650711f
add eax, dword [ebp - 0x4c]
call dword [eax]
push 0x40
push 0x1000
push 0x3830c
push 0
call eax
mov ecx, 0xc47fbe91
sub ecx, 0xc47f6fad
mov esi, eax
mov edx, 0x10039600
add edx, dword [ebp - 0x4c]
mov ebx, 0xff88cc8b
mov dword [ebp - 0x34], 0xd90e1152
mov edi, dword [edx]
xor dword [ebp - 0x44], 0x831209e9
add edi, ebx
add dword [ebp - 0x24], 0xca8ae4c5
mov dword [esi], edi
mov dword [ebp - 8], 0xef985949
add esi, 0x4f533251
add esi, 0xb0accdb3
add edx, 0x962be093
sub edx, 0x962be08f
loop 0x1002abff
add eax, 0xdbd77570
sub eax, 0xdbd6470d
mov ebx, eax
add eax, 5
mov ecx, 0x10000000
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret

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 0x3ad7258d
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x3ad7a064]
jne 0x3ad72597
repz ret
jmp fcn.3ad73d0c

Function at 0x3ad76f7d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
pushal
call 0x3ad76f8c
pop dword [ebp - 0x34]
mov eax, 0x236a45b6
sub eax, 0xe892d62a
sub dword [ebp - 0x34], eax
push 0x40
push 0x1000
push 0x38159
push 0
mov eax, sym.imp.kernel32.dll_VirtualAlloc
add eax, dword [ebp - 0x34]
call dword [eax]
mov ecx, 0xa1a2de30
sub ecx, 0xa1a2944a
mov edi, eax
mov esi, 0xc05a1551
sub esi, 0x85818751
add esi, dword [ebp - 0x34]
mov ebx, 0xf83963f0
add ebx, 0xbf2ee94
sub dword [ebp - 0x14], 0x3628af6d
mov edx, dword [esi]
add dword [ebp - 0x24], edx
xor edx, ebx
mov dword [ebp - 0x24], 0x3c3c5079
mov dword [edi], edx
add dword [ebp - 0x20], edi
add edi, 4
add esi, 4
loop 0x3ad76fe6
add eax, 0x279a0a20
add eax, 0xd867104b
mov ebx, eax
add eax, 5
mov ecx, 0x4ddf365f
sub ecx, 0x1308365f
add ecx, dword [ebp - 0x34]
call ebx
leave
ret