joyce8/EMBER2024-capa huggingface dataset:
Function at 0x406128
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x40614d
mov dword [0x40a0f4], eax
add esp, 0xfffffff8
push 0x4060ec
push eax
call fcn.00407c20
jmp 0x406152
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x406168
mov dword [0x409054], 0x40624c
jmp 0x406172
mov dword [0x409054], 0x406200
leave
ret

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43100c
nop
nop
nop
nop
pop eax
nop
nop
add eax, 0x403e6a
sub eax, 0x403e10
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x431030
nop
nop
nop
nop
add eax, 0xc
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43101e
nop
nop
popal
nop
nop
nop
nop
nop
jmp fcn.00401219
Function at 0x407194
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, 0x4128ab
call fcn.00411b10
push ecx
push ebx
push esi
mov esi, ecx
xor eax, eax
push edi
mov dword [ebp - 0x10], esi
mov dword [esi], eax
mov dword [ebp - 4], eax
mov dword [esi + 4], eax
mov ecx, dword [ebp + 8]
push 8
mov dword [esi + 8], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0xc], ecx
lea ecx, [esi + 0x10]
pop edi
mov edx, 0x414414
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edi
mov dword [ecx], edx
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edi
mov dword [esi + 0x24], edx
lea ebx, [esi + 0x38]
mov edx, 0x414230
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], 4
mov dword [ebx], edx
lea edi, [esi + 0x4c]
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 4
mov dword [edi], edx
push dword [esi + 8]
mov byte [ebp - 4], 5
call fcn.0040b78a
push dword [esi + 8]
mov ecx, ebx
call fcn.0040b78a
push dword [esi + 0xc]
mov ecx, edi
call fcn.0040b78a
push dword [esi + 0xc]
mov ecx, edi
call fcn.0040b78a
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8

Function at 0x40773e
Capabilities:
Create thread

Disassembly:
mov eax, 0x412a51
call fcn.00411b10
push ecx
push ecx
push ebx
push esi
mov esi, ecx
push edi
xor edi, edi
mov dword [ebp - 0x14], esi
mov dword [esi], 0x414318
mov dword [esi + 4], 0x4144a0
lea ecx, [esi + 0xc]
mov dword [esi + 8], edi
call fcn.0040105a
push 4
lea ecx, [esi + 0x5c]
pop ebx
mov dword [ebp - 4], edi
push ebx
call fcn.004019d0
mov dword [esi + 0x5c], 0x414498
lea ecx, [esi + 0x70]
push ebx
mov byte [ebp - 4], 1
call fcn.004019d0
mov dword [esi + 0x70], 0x414490
lea eax, [esi + 0x84]
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ebx
mov dword [eax], 0x414488
mov dword [esi + 0x98], edi
push edi
push edi
push edi
lea ecx, [esi + 0x9c]
push edi
mov byte [ebp - 4], bl
call fcn.0040d6d2
lea eax, [esi + 0xa0]
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ebx
mov dword [eax], 0x414344
push edi
push edi
push edi
lea ecx, [esi + 0xb4]
push edi
mov byte [ebp - 4], 6
call fcn.0040d6d2
push edi
push edi
push edi
lea ecx, [esi + 0xb8]
push 1
mov byte [ebp - 4], 7
call fcn.0040d6d2
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 8
push eax
push edi
push esi
push 0x4078a3
push edi
push edi
mov dword [esi], 0x414474
mov dword [esi + 4], 0x414468
call dword [sym.imp.KERNEL32.DLL_CreateThread]
cmp eax, edi
mov dword [esi + 0x98], eax
jne 0x407848
lea eax, [ebp - 0x10]
push 0x414ac4
push eax
mov dword [ebp - 0x10], 0x425d1
call sub.MSVCRT.dll__CxxThrowException
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
Function at 0x407adf
Capabilities:
Create thread

Disassembly:
mov eax, 0x412aeb
call fcn.00411b10
sub esp, 0xcc
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x78]
mov ecx, dword [edi + 0x18]
lea eax, [ecx + eax*8]
lea ecx, [ebp - 0xd8]
push dword [eax + 4]
push dword [eax]
call fcn.00407251
lea esi, [edi + 0x70]
lea eax, [ebp - 0xd8]
xor ebx, ebx
push eax
mov ecx, esi
mov dword [ebp - 4], ebx
call fcn.00408308
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + eax*4 - 4]
call fcn.0040739a
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov eax, dword [edi + 0xb8]
mov ecx, dword [edx + ecx*4 - 4]
mov dword [ecx + 0x64], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + eax*4 - 4]
lea ecx, [edi + 0xa0]
mov eax, dword [eax + 0x68]
push dword [eax]
call fcn.00408215
mov dword [ebp - 0x14], ebx
add edi, 0x84
push ebx
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.004083b3
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [edi + 0xc]
mov eax, dword [ecx + eax*4 - 4]
mov ecx, dword [edi + 8]
lea esi, [edx + ecx*4 - 4]
lea ecx, [ebp - 0x10]
push ecx
push ebx
push eax
push 0x407bd4
push ebx
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov dword [esi], eax
pop edi
cmp eax, ebx
pop esi
pop ebx
jne 0x407bb9
lea eax, [ebp - 0x10]
push 0x414ac4
push eax
mov dword [ebp - 0x10], 0x425d0
call sub.MSVCRT.dll__CxxThrowException
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd8]
call fcn.0040740f
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
leave
ret

Function at 0x40ae00
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [ecx]
mov edx, dword [esp + 4]
push esi
mov esi, dword [esp + 0xc]
test esi, esi
jbe 0x40ae2b
push ebx
push edi
movzx edi, byte [edx]
movzx ebx, al
xor edi, ebx
shr eax, 8
mov edi, dword [edi*4 + 0x418758]
xor eax, edi
inc edx
dec esi
jne 0x40ae11
pop edi
pop ebx
mov dword [ecx], eax
pop esi
ret 8

Function at 0x40bf94
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp byte [0x418b84], 0
je 0x40bfb7
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesW]
neg eax
sbb eax, eax
neg eax
jmp 0x40bfe1
push esi
lea eax, [ebp - 0xc]
push dword [ebp + 8]
push eax
call fcn.0040bfe5
push dword [ebp + 0xc]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesA]
push dword [ebp - 0xc]
mov esi, eax
call sub.MSVCRT.dll_free
test esi, esi
pop ecx
pop esi
setne al
leave
ret 8

Function at 0x40c037
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp byte [0x418b84], 0
je 0x40c057
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
neg eax
sbb eax, eax
neg eax
jmp 0x40c07d
push esi
lea eax, [ebp - 0xc]
push dword [ebp + 8]
push eax
call fcn.0040bfe5
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push dword [ebp - 0xc]
mov esi, eax
call sub.MSVCRT.dll_free
test esi, esi
pop ecx
pop esi
setne al
leave
ret 4
Function at 0x40c096
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp byte [0x418b84], 0
je 0x40c0b8
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
neg eax
sbb eax, eax
neg eax
jmp 0x40c0da
push ebx
lea eax, [ebp - 0xc]
push dword [ebp + 8]
push eax
call fcn.0040bfe5
push dword [eax]
call fcn.0040c081
push dword [ebp - 0xc]
mov bl, al
call sub.MSVCRT.dll_free
pop ecx
mov al, bl
pop ebx
leave
ret 4

Function at 0x40c2c0
Capabilities:
Delete file
Set file attributes

Disassembly:
push 0
push dword [esp + 8]
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesA]
test eax, eax
jne 0x40c2d4
xor al, al
jmp 0x40c2e4
push dword [esp + 4]
call dword [sym.imp.KERNEL32.DLL_DeleteFileA]
neg eax
sbb eax, eax
neg eax
ret 4

Function at 0x40c2e7
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp byte [0x418b84], 0
je 0x40c315
push 0
push dword [ebp + 8]
call fcn.0040bf94
test al, al
je 0x40c337
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
neg eax
sbb eax, eax
neg eax
jmp 0x40c337
push ebx
lea eax, [ebp - 0xc]
push dword [ebp + 8]
push eax
call fcn.0040bfe5
push dword [eax]
call fcn.0040c2c0
push dword [ebp - 0xc]
mov bl, al
call sub.MSVCRT.dll_free
pop ecx
mov al, bl
pop ebx
leave
ret 4

Function at 0x40c33b
Capabilities:
Delete directory
Set file attributes

Disassembly:
mov eax, 0x412f50
call fcn.00411b10
sub esp, 0x6c
push esi
lea ecx, [ebp - 0x48]
call fcn.0040c9cd
mov esi, dword [ebp + 8]
and dword [ebp - 4], 0
push 0x5c
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0040cb31
lea eax, [ebp - 0x18]
push 0x2a
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 1
call fcn.0040cb31
and byte [ebp - 0x34], 0
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.0040b19c
push dword [ebp - 0x24]
mov byte [ebp - 4], 5
call sub.MSVCRT.dll_free
pop ecx
jmp 0x40c3b5
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x18]
sub esp, 0xc
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call fcn.0040b19c
call fcn.0040c449
test al, al
je 0x40c3fd
lea eax, [ebp - 0x78]
lea ecx, [ebp - 0x38]
push eax
call fcn.0040d009
test al, al
jne 0x40c397
push dword [ebp - 0x30]
mov byte [ebp - 4], 1
call sub.MSVCRT.dll_free
pop ecx
lea ecx, [ebp - 0x38]
call fcn.0040cbe2
mov eax, dword [esi]
push 0
push eax
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesA]
test eax, eax
jne 0x40c414
push dword [ebp - 0x18]
call sub.MSVCRT.dll_free
push dword [ebp - 0x48]
call sub.MSVCRT.dll_free
xor al, al
jmp 0x40c433
push dword [ebp - 0x30]
mov byte [ebp - 4], 1
call sub.MSVCRT.dll_free
pop ecx
lea ecx, [ebp - 0x38]
call fcn.0040cbe2
jmp 0x40c3e9
push dword [esi]
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push dword [ebp - 0x18]
mov esi, eax
call sub.MSVCRT.dll_free
push dword [ebp - 0x48]
call sub.MSVCRT.dll_free
test esi, esi
setne al
pop ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
leave
ret 4
Function at 0x40c8ad
Capabilities:
Delete file

Disassembly:
mov eax, 0x412fd8
call fcn.00411b10
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ebx, ebx
lea ecx, [ebp - 0x1c]
call fcn.0040c95d
push esi
lea ecx, [ebp - 0x1c]
push dword [ebp + 8]
mov dword [ebp - 4], ebx
call fcn.0040c7fe
test al, al
je 0x40c922
push dword [esi]
call dword [sym.imp.KERNEL32.DLL_DeleteFileA]
test eax, eax
je 0x40c945
push dword [esi]
call fcn.0040cf76
test al, al
je 0x40c90a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0040c889
push dword [ebp - 0x18]
call sub.MSVCRT.dll_free
pop ecx
jmp 0x40c8c1
push dword [esi]
call fcn.0040c081
test al, al
jne 0x40c959
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
je 0x40c8f3
lea ecx, [ebp - 0x1c]
call fcn.0040c889
push dword [ebp - 0x18]
call sub.MSVCRT.dll_free
xor al, al
pop ecx
pop esi
mov ecx, dword [ebp - 0xc]
pop ebx
mov dword fs:[0], ecx
leave
ret 8
lea ecx, [ebp - 0x1c]
call fcn.0040c889
push dword [ebp - 0x18]
call sub.MSVCRT.dll_free
mov al, bl
jmp 0x40c934
mov bl, 1
jmp 0x40c945

Function at 0x40cdec
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov eax, 0x413044
call fcn.00411b10
sub esp, 0x18
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
push 1
mov eax, dword [esi]
push 0
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x18]
push 0
mov dword [edi + 0x18], eax
push dword [esi + 0x1c]
call fcn.00411cd0
mov ecx, dword [esi + 0x20]
xor ebx, ebx
add eax, ecx
lea ecx, [ebp - 0x18]
mov dword [edi + 0x20], eax
lea eax, [esi + 0x2c]
adc edx, ebx
push eax
mov dword [edi + 0x24], edx
call fcn.0040afaf
and dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.DLL_AreFileApisANSI]
neg eax
sbb eax, eax
inc eax
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0040cea5
push eax
lea ecx, [edi + 0x30]
mov byte [ebp - 4], 1
call fcn.0040aa36
push dword [ebp - 0x24]
call sub.MSVCRT.dll_free
push dword [ebp - 0x18]
call sub.MSVCRT.dll_free
mov eax, dword [esi + 0x24]
pop ecx
pop ecx
mov dword [edi + 0x28], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8

Function at 0x40d15f
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push esi
push eax
push dword [ecx + 8]
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40d186
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
je 0x40d186
xor al, al
jmp 0x40d1a6
push 1
push 0
push 0
push dword [ebp - 4]
call fcn.00411cd0
mov ecx, eax
xor eax, eax
add ecx, esi
adc edx, eax
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov al, 1
pop esi
leave
ret 4
Function at 0x41071a
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
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]
xor ecx, ecx
mov dword [esi], eax
test eax, eax
setne cl
mov al, cl
pop esi
pop ebp
ret 0x18

Function at 0x410748
Capabilities:
Hide graphical window

Disassembly:
mov eax, 0x413600
call fcn.00411b10
sub esp, 0xc
push esi
mov esi, ecx
push edi
push dword [ebp + 8]
lea edi, [esi + 0x68]
lea ecx, [edi + 0xc]
call fcn.0040aa36
push 0
push 0x1f4
mov ecx, edi
call fcn.0040bb85
lea eax, [ebp - 0x18]
push 0x45
push eax
call fcn.0040d606
push dword [eax]
and dword [ebp - 4], 0
push dword [esi + 0x6c]
call fcn.0040d734
push dword [ebp - 0x18]
call sub.MSVCRT.dll_free
pop ecx
push 1
push dword [esi + 0x6c]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0xc]
pop edi
xor eax, eax
pop esi
mov dword fs:[0], ecx
leave
ret 4

Function at 0x41090d
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, 0x413696
call fcn.00411b10
push ecx
push esi
push edi
mov esi, ecx
xor edi, edi
mov dword [ebp - 0x10], esi
mov dword [esi + 4], edi
mov dword [esi], 0x4147c4
lea ecx, [esi + 0xc]
mov dword [esi + 8], edi
push 0xf
mov dword [ebp - 4], edi
mov dword [ecx], edi
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
call fcn.00406f8f
push edi
push edi
push edi
lea ecx, [esi + 0x38]
push 1
mov byte [ebp - 4], 1
mov dword [esi + 0x30], edi
call fcn.0040d6d2
lea ecx, [esi + 0x40]
mov byte [ebp - 4], 2
call fcn.004109a1
mov ecx, dword [ebp - 0xc]
mov dword [esi], 0x414794
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
leave
ret
Function at 0x40b6e0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x8000]
push edi
or ebp, 0xffffffff
jmp 0x40b702
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x40b709
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x40b6f8
mov eax, 1
add ebx, ebx
jne 0x40b71b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x40b710
jne 0x40b72c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40b710
xor ecx, ecx
sub eax, 3
jb 0x40b740
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x40b7b2
mov ebp, eax
add ebx, ebx
jne 0x40b74b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x40b758
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x40b77c
inc ecx
add ebx, ebx
jne 0x40b768
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x40b75d
jne 0x40b779
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40b75d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x40b79c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x40b78d
jmp 0x40b6fe
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x40b79c
add edi, ecx
jmp 0x40b6fe
pop esi
lea edi, [esi + 0x9000]
mov eax, dword [edi]
or eax, eax
je 0x40b7fb
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0xd068]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0xd0c0]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x40b7b9
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0xd0c8]
or eax, eax
je 0x40b7f5
mov dword [ebx], eax
add ebx, 4
jmp 0x40b7d6
call dword [esi + 0xd0c4]
mov ebp, dword [esi + 0xd0cc]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x217]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x40b82f
sub esp, 0xffffff80
jmp 0x402d70

Function at 0x43b65e
Capabilities:
Encode data using xor

Disassembly:
push 0x43b3c1
mov esi, dword [esp]
add esp, 4
mov edi, 0x5bb81ea0
call fcn.0043b6a2
sub ebx, 0x7863b375
and edi, ebx
xor dword [edx], esi
sub ebx, 0x998298ce
inc edx
mov ebx, 0x346d7076
or edi, edi
cmp edx, eax
jne fcn.0043b65e
inc edi
or ebx, edi
sub ebx, 0xfe08ee49
ret
Function at 0x404ba4
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
cmp eax, 1
jne 0x404be0
add esp, 0xfffffff4
push dword [edx + 0x4c]
call sym._getc
cmp eax, 0xffffffff
jne 0x404bd0
xor eax, eax
jmp 0x404bec
mov byte [ebx], al
mov eax, 1
jmp 0x404bec
push dword [edx + 0x4c]
push eax
push 1
push ebx
call sym._fread
mov ebx, dword [ebp - 0x18]
leave
ret

Function at 0x404bf4
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
push ebx
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
push dword [ebx + 0x4c]
push esi
push 1
push dword [ebp + 0xc]
call sym._fwrite
mov edx, dword [ebx + 0x40]
test edx, edx
jl 0x404c1c
add edx, esi
mov dword [ebx + 0x40], edx
lea esp, [ebp - 0x18]
pop ebx
pop esi
leave
ret

Function at 0x404cec
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [edx]
shr eax, 1
xor al, 1
test al, 1
jne 0x404d15
push dword [edx + 0x4c]
push ecx
push 1
push ebx
call sym._fwrite
jmp 0x404d20
add esp, 0xfffffffc
push ecx
push ebx
push edx
call sym._xsputn__9streambufPCci
mov ebx, dword [ebp - 0x18]
leave
ret

Function at 0x407b50
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 8]
add esp, 0xfffffffc
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [eax + 0x38]
call sym._read
leave
ret

Function at 0x40b22c
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x40b251
mov dword [0x414164], eax
add esp, 0xfffffff8
push sym._eh_context_free
push eax
call sym.___mingwthr_key_dtor
jmp 0x40b256
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x40b26c
mov dword [sym._eh_context_initialize], 0x40b350
jmp 0x40b276
mov dword [sym._eh_context_initialize], 0x40b304
leave
ret

Function at 0x40b350
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
add esp, 0xfffffff4
push dword [0x414164]
call sub.KERNEL32.dll_TlsGetValue
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x40b39d
call sym._new_eh_context
mov ebx, eax
add esp, 0xfffffff8
push ebx
push dword [0x414164]
call sub.KERNEL32.dll_TlsSetValue
add esp, 8
test eax, eax
jne 0x40b392
call sub.KERNEL32.dll_GetLastError
jmp 0x40b394
xor eax, eax
test eax, eax
je 0x40b39d
call sym.___terminate
mov eax, ebx
mov ebx, dword [ebp - 0x18]
leave
ret
Function at 0x40b4c8
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x65c
push edi
push esi
push ebx
mov eax, dword [sym._eh_context_initialize]
call eax
mov edx, eax
lea eax, [edx + 4]
mov dword [ebp - 0x644], eax
mov eax, dword [edx + 4]
lea ecx, [eax + 4]
mov dword [ebp - 0x648], ecx
cmp dword [eax + 4], 0
je 0x40b585
lea ebx, [ebp - 0x640]
mov dword [ebp - 0x64c], ebx
mov dword [ebx + 4], 0
mov eax, dword [edx + 4]
mov dword [ebp - 0x640], eax
lea eax, [ebp - 0x638]
mov dword [ebp - 0x638], ebp
mov dword [eax + 4], 0x40b530
mov dword [eax + 8], esp
jmp 0x40b532
mov edx, dword [ebp - 0x64c]
mov eax, dword [ebp - 0x644]
mov dword [eax], edx
mov ecx, dword [ebp - 0x648]
cmp dword [ecx], 0
je 0x40b56e
nop
mov ebx, dword [ebp - 0x648]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax]
mov dword [ebx], eax
add esp, 0xfffffff8
push 2
push edx
call ecx
add esp, 0x10
cmp dword [ebx], 0
jne 0x40b54c
mov edx, dword [ebp - 0x64c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x644]
mov dword [ecx], eax
jmp 0x40b585
mov ebx, dword [ebp - 0x644]
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [ebx], eax
call sym.___sjthrow
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec ecx
outsb dx, byte [esi]
je 0x40b615
jb 0x40b620
popal
insb byte es:[edi], dx
and byte [ebx + 0x6f], al
insd dword es:[edi], dx
jo 0x40b623
insb byte es:[edi], dx
jb 0x40b5de
inc edx
jne sym.___get_eh_table_version
cmp ah, byte [eax]
dec esi
outsd dx, dword [esi]
and byte [edx + 0x75], dh
outsb dx, byte [esi]
je sym.___get_eh_table_language
insd dword es:[edi], dx
and byte gs:[ecx + edi*2 + 0x70], dh
and byte gs:[ebp + 0x61], ch
je 0x40b63a
push 0x2e7265
in eax, 0x83
in al, dx
or al, ch
xor esp, edi
invalid
cmp al, 0x51
inc ecx
add byte [ebx - 0x17afbf40], al
fiadd dword [ebx]
add byte [ecx], dh
add byte [eax], al
xor eax, eax
ror cl, 0xc3
mov esi, esi
leave
ret
movsx eax, word [eax + 4]
leave
ret