joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4ae5e0
Capabilities:
Check for software breakpoints

Disassembly:
push esi
mov esi, dword [esp + 8]
cmp dword [esi + 0x10], 0xca
jne 0x4ae613
push esi
call fcn.004b16d0
mov eax, dword [esi + 0x40]
add esp, 4
test eax, eax
je 0x4ae60c
mov dword [esi + 0x10], 0xcf
mov eax, 1
pop esi
ret
mov dword [esi + 0x10], 0xcb
mov eax, dword [esi + 0x10]
cmp eax, 0xcb
jne 0x4ae699
mov eax, dword [esi + 0x1b0]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4ae682
mov eax, dword [esi + 8]
test eax, eax
je 0x4ae637
push esi
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0x1b0]
push esi
call dword [ecx]
add esp, 4
test eax, eax
je 0x4ae67e
cmp eax, 2
je 0x4ae682
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4ae62a
cmp eax, 3
je 0x4ae65d
cmp eax, 1
jne 0x4ae62a
mov eax, dword [ecx + 4]
inc eax
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
cmp edx, ecx
jl 0x4ae62a
mov edx, dword [esi + 0x13c]
add edx, ecx
mov dword [eax + 8], edx
jmp 0x4ae62a
xor eax, eax
pop esi
ret
mov eax, dword [esi + 0x90]
push esi
mov dword [esi + 0x98], eax
call fcn.004ae6c0
add esp, 4
pop esi
ret
cmp eax, 0xcc
je 0x4ae6a8
mov ecx, dword [esi]
push esi
call dword [ecx]
add esp, 4
push esi
call fcn.004ae6c0
add esp, 4
pop esi
ret

Function at 0x4ba260
Capabilities:
Capture webcam image

Disassembly:
mov eax, dword [esp + 8]
push ebx
push esi
mov esi, ecx
mov eax, dword [eax + 4]
cmp dword [esi + 0xec], 1
jne 0x4ba303
test eax, eax
jbe 0x4ba303
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jle 0x4ba303
mov ecx, dword [esi + 0x1c]
push edi
push 0
push eax
push 0x419
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
mov eax, dword [esi + 0xbc]
inc edi
test eax, eax
jne 0x4ba2ae
xor esi, esi
jmp 0x4ba2b4
mov esi, dword [esi + 0xb4]
add esi, 4
xor ebx, ebx
test edi, edi
jbe 0x4ba2df
push ebp
mov ebp, edi
add esi, 6
push esi
call fcn.004bc2c0
add esi, eax
push esi
mov ebx, esi
call fcn.004bc2c0
add esp, 8
add esi, eax
dec edi
dec ebp
jne 0x4ba2c0
pop ebp
test edi, edi
pop edi
jne 0x4ba303
test ebx, ebx
je 0x4ba303
mov edx, dword [esp + 0x10]
push 0x4e
add edx, 0x10
push ebx
push edx
call fcn.004c2240
add esp, 0xc
mov eax, 1
pop esi
pop ebx
ret 0xc
pop esi
xor eax, eax
pop ebx
ret 0xc
Function at 0x4ba445
Capabilities:
Capture webcam image

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x4ba55d
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4ba55d
mov eax, dword [esi + 0x3c]
push eax
call fcn.004d34d4
mov esi, eax
test esi, esi
je 0x4ba55d
mov ebx, dword [esp + 0x58]
mov ecx, dword [esi + 0x1c]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push ebx
push 0x419
push ecx
call ebp
mov edi, eax
test edi, edi
jl 0x4ba55d
mov ecx, esi
call fcn.004ba3b0
cmp edi, eax
jge 0x4ba55d
mov eax, dword [esi + 0xc4]
mov edx, dword [esi + 0xc0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 0x28], edx
cmp eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], edi
jne 0x4ba4e3
mov dword [esp + 0x34], 1
jmp 0x4ba53e
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x18]
push ecx
push ebx
push 0x433
push edx
call ebp
test eax, eax
je 0x4ba55d
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
mov dword [eax], 0
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x10]
add edx, 2
push eax
push ecx
mov dword [esp + 0x1c], edx
call dword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], 3
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
xor ecx, ecx
push ecx
lea ecx, [esp + 0x2c]
push ecx
push 0x7d8
call fcn.004b9920
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret 0xc

Function at 0x4bc430
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0xa0
push ebx
push ebp
mov ebp, dword [esp + 0xac]
push esi
push edi
push ebp
call sub.RASAPI32.dll_RasHangUpA
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x28
xor eax, eax
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], 0xa0
call esi
mov edi, eax
call esi
sub eax, edi
cmp eax, 0xbb8
jae 0x4bc496
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x10]
push eax
push ebp
call sub.RASAPI32.dll_RasGetConnectStatusA
cmp eax, 6
je 0x4bc496
push 0
call ebx
call esi
sub eax, edi
cmp eax, 0xbb8
jb 0x4bc477
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret
Function at 0x4bcfd0
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ecx
push esi
mov esi, ecx
call fcn.004bd120
push 0
push 1
push 2
call sub.WS2_32.dll_socket
mov dword [esi], eax
cmp eax, 0xffffffff
pop esi
jne 0x4bcff0
xor eax, eax
pop ecx
ret
lea ecx, [esp]
push 4
push ecx
push 0x1001
push 0xffff
push eax
mov dword [esp + 0x14], 0
call sub.WS2_32.dll_setsockopt
mov eax, 1
pop ecx
ret

Function at 0x4bcfd1
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ecx
push esi
mov esi, ecx
call fcn.004bd120
push 0
push 1
push 2
call sub.WS2_32.dll_socket
mov dword [esi], eax
cmp eax, 0xffffffff
pop esi
jne 0x4bcff0
xor eax, eax
pop ecx
ret
lea ecx, [esp]
push 4
push ecx
push 0x1001
push 0xffff
push eax
mov dword [esp + 0x14], 0
call sub.WS2_32.dll_setsockopt
mov eax, 1
pop ecx
ret

Function at 0x4bd020
Capabilities:
Resolve dns

Disassembly:
sub esp, 0x10
xor eax, eax
push esi
push edi
mov dword [esp + 8], eax
mov edi, ecx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
push ecx
mov dword [esp + 0x18], eax
mov word [esp + 0xc], 2
call sub.WS2_32.dll_htons
mov esi, dword [esp + 0x1c]
mov word [esp + 0xa], ax
push esi
call sub.WS2_32.dll_inet_addr
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x4bd077
push esi
call sub.WS2_32.dll_gethostbyname
test eax, eax
je 0x4bd08d
mov edx, dword [eax + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
lea edx, [esp + 8]
push 0x10
push edx
mov ecx, edi
call fcn.004bd0b0
pop edi
pop esi
add esp, 0x10
ret 8
push 0x2726
call sub.WS2_32.dll_WSASetLastError
pop edi
xor eax, eax
pop esi
add esp, 0x10
ret 8

Function at 0x4bd0b0
Capabilities:
Connect socket

Disassembly:
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
push eax
mov eax, dword [ecx]
push edx
push eax
call sub.WS2_32.dll_connect
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov eax, ecx
ret 8

Function at 0x4bd140
Capabilities:
Get socket status

Disassembly:
sub esp, 0x10c
mov eax, dword [ecx]
lea ecx, [esp]
push ecx
push 0
lea edx, [esp + 0x10]
push 0
push edx
push 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 1
call sub.WS2_32.dll_select
cmp eax, 0xffffffff
jne 0x4bd189
xor eax, eax
add esp, 0x10c
ret 4
mov edx, dword [esp + 0x110]
xor ecx, ecx
test eax, eax
setne cl
mov dword [edx], ecx
mov eax, 1
add esp, 0x10c
ret 4
Function at 0x4bd600
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4e0570
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, ecx
lea ecx, [esp + 4]
call fcn.004bd1b0
lea eax, [esp + 4]
lea ecx, [esi + 4]
push eax
mov dword [esp + 0x18], 0
call fcn.004bd230
lea ecx, [esp + 4]
push ecx
lea ecx, [esi + 0x14]
call fcn.004bd230
lea ecx, [esi + 0xc]
call fcn.004d1a5e
lea ecx, [esi + 0x10]
call fcn.004d1a5e
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x1c]
call fcn.004bfa60
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x30]
call fcn.004bfa60
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x44]
call fcn.004bfa60
lea ecx, [esp + 8]
mov dword [esp + 0x14], 1
call fcn.004d1ad3
lea ecx, [esp + 4]
mov dword [esp + 0x14], 0xffffffff
call fcn.004d1ad3
mov ecx, dword [esp + 0xc]
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret

Function at 0x4be2a8
Capabilities:
Get hostname

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4e0798
push eax
mov dword fs:[0], esp
sub esp, 0x64
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 4]
test eax, eax
je 0x4be2b8
call fcn.004be7d0
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x4be39b
cmp byte [edi], 0
je 0x4be39b
mov eax, dword [esp + 0x8c]
test eax, eax
jg 0x4be2dd
mov eax, 0x7d0
mov ecx, esi
mov dword [esi + 8], eax
call fcn.004bcfd0
test eax, eax
jne 0x4be2fd
push 0x5ec4d8
lea ecx, [esi + 0x38]
call fcn.004d1c10
jmp 0x4be39b
mov eax, dword [esp + 0x80]
mov ecx, esi
push eax
push edi
call fcn.004bd020
test eax, eax
jne 0x4be32c
mov ecx, esi
call fcn.004bd120
push edi
add esi, 0x38
push 0x5ec4b4
push esi
call fcn.004cf8d7
add esp, 0xc
jmp 0x4be39b
push 0xdc
mov ecx, esi
mov dword [esi + 4], 1
call fcn.004bf050
test eax, eax
je 0x4be394
lea ecx, [esp + 8]
push 0x64
push ecx
call sub.WS2_32.dll_gethostname
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
lea edx, [esp + 0x8c]
mov dword [esp + 0x8c], 1
push edx
push eax
lea edx, [esp + 0x10]
push ecx
push edx
mov ecx, esi
call fcn.004be470
test eax, eax
jne 0x4be3b0
push edi
lea eax, [esi + 0x38]
push 0x5ec490
push eax
call fcn.004cf8d7
add esp, 0xc
mov ecx, esi
call fcn.004be7d0
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
add esp, 0x70
ret 0x14
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4be458
mov ecx, dword [0x5ec7b8]
mov dword [esp + 0x7c], ecx
lea edx, [esp + 8]
lea eax, [esp + 0x7c]
push edx
push str.HELO__s_r_n
push eax
mov dword [esp + 0x80], 0
call fcn.004cf8d7
mov edx, dword [esp + 0x88]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov ecx, esi
call fcn.004bd0d0
test eax, eax
jne 0x4be41a
push 0x5ec474
lea ecx, [esi + 0x38]
call fcn.004d1c10
jmp 0x4be42a
push 0xfa
mov ecx, esi
call fcn.004bf050
test eax, eax
jne 0x4be447
mov ecx, esi
call fcn.004be7d0
lea ecx, [esp + 0x7c]
mov dword [esp + 0x74], 0xffffffff
call fcn.004d1ad3
jmp 0x4be39b
lea ecx, [esp + 0x7c]
mov dword [esp + 0x74], 0xffffffff
call fcn.004d1ad3
mov ecx, dword [esp + 0x6c]
pop edi
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x70
ret 0x14
Function at 0x4d3e77
Capabilities:
Get graphical window text

Disassembly:
push esi
mov esi, ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x4d3eaf
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [esp + 0xc]
push eax
call fcn.004d1f2e
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 8]
push 0xffffffffffffffff
call fcn.004d1f06
jmp 0x4d3ebb
mov eax, dword [ecx]
push dword [esp + 8]
call dword [eax + 0x88]
pop esi
ret 4

Function at 0x4d5569
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
push esi
push edi
xor edi, edi
cmp dword [esp + 0x10], edi
mov ebx, ecx
je 0x4d55ab
call fcn.004db129
mov esi, dword [eax + 0xc]
push 0xf0
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, edi
je 0x4d55ab
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, edi
jne 0x4d55a2
xor eax, eax
jmp 0x4d55b3
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
push edi
mov ecx, ebx
call fcn.004d55b9
pop edi
pop esi
pop ebx
ret 4

Function at 0x4db659
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x4db687
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x4db6a5
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.004db5bf
jmp 0x4db6a5
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4db6a5
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
mov ecx, esi
push eax
call fcn.004db5bf
test edi, edi
mov eax, edi
jne 0x4db68f
pop edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebx
ret 8
Function at 0x4019a6
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
sub esp, 0x254
push ebx
push ebp
push esi
mov esi, ecx
push edi
push esi
xor ebx, ebx
call dword [sym.imp.MSVCRT.dll_wcslen]
mov ebp, dword [sym.imp.MSVCRT.dll_wcscpy]
lea edi, [esi + eax*2]
mov dword [esp], 0x408298
push edi
call ebp
pop ecx
lea eax, [esp + 0x18]
pop ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
and word [edi], bx
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jne 0x4019f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x401ab4
lea eax, [esp + 0x40]
push 0x408294
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
pop ecx
test eax, eax
pop ecx
je 0x401a67
lea eax, [esp + 0x40]
push 0x40828c
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
pop ecx
test eax, eax
pop ecx
je 0x401a67
lea eax, [esp + 0x40]
push eax
push edi
call ebp
test byte [esp + 0x1c], 0x10
pop ecx
pop ecx
je 0x401a47
push 0x408250
push esi
call dword [sym.imp.MSVCRT.dll_wcscat]
pop ecx
pop ecx
mov ecx, esi
call fcn.004019a6
jmp 0x401a61
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x401a63
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jne 0x401a8d
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4019f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0x12
jne 0x401a8d
xor ebx, ebx
push dword [esp + 0x10]
and word [edi], 0
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
jne 0x401ab2
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x401ab2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret

Function at 0x403c57
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebx
push esi
push edi
xor esi, esi
mov edx, 0x409040
mov ecx, 0x409440
push 8
mov eax, esi
pop edi
mov ebx, eax
and ebx, 1
neg ebx
and ebx, 0xedb88320
shr eax, 1
xor eax, ebx
dec edi
jne 0x403c6b
mov dword [edx], eax
add edx, 4
inc esi
cmp edx, ecx
jb 0x403c66
mov eax, dword [ecx - 0x400]
mov edx, eax
and edx, 0xff
shr eax, 8
mov edx, dword [edx*4 + 0x409040]
xor edx, eax
mov dword [ecx], edx
add ecx, 4
cmp ecx, 0x40b040
jb 0x403c89
mov eax, 0x403cdd
mov esi, 0x403d91
mov dword [0x40b044], eax
mov dword [0x409030], eax
mov dword [0x40b040], esi
call fcn.004053e9
test eax, eax
jne 0x403cd9
mov dword [0x409030], esi
pop edi
pop esi
pop ebx
ret
Function at 0x403efc
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 4], edx
mov ebx, ecx
mov edi, dword [esi]
test edi, edi
je 0x403f55
and dword [esi], 0
mov eax, 0x400000
cmp edi, eax
ja 0x403f1f
mov eax, edi
lea ecx, [ebp + 8]
push 0
and dword [ebp + 8], 0
push ecx
push eax
push dword [ebp - 4]
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 8]
add dword [ebp - 4], ecx
add dword [esi], ecx
sub edi, ecx
test eax, eax
je 0x403f4d
test ecx, ecx
je 0x403f55
test edi, edi
jbe 0x403f55
jmp 0x403f14
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x403f57
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x403f5e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 4], edx
mov ebx, ecx
mov edi, dword [esi]
test edi, edi
je 0x403fb7
and dword [esi], 0
mov eax, 0x400000
cmp edi, eax
ja 0x403f81
mov eax, edi
lea ecx, [ebp + 8]
push 0
and dword [ebp + 8], 0
push ecx
push eax
push dword [ebp - 4]
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp + 8]
add dword [ebp - 4], ecx
add dword [esi], ecx
sub edi, ecx
test eax, eax
je 0x403faf
test ecx, ecx
je 0x403fb7
test edi, edi
jbe 0x403fb7
jmp 0x403f76
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x403fb9
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x4050c2
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], edx
push edi
mov edx, ecx
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0xc], edx
mov edi, dword [ecx]
and edi, 7
cmp dword [ebp - 4], 5
jb 0x405207
sub dword [ebp - 4], 4
add dword [ebp + 8], 5
push ebx
push esi
mov ecx, dword [ebp - 4]
lea esi, [eax + edx]
lea ebx, [edx + ecx]
cmp esi, ebx
jae 0x405109
mov cl, byte [esi]
and cl, 0xfe
cmp cl, 0xe8
je 0x405109
inc esi
jmp 0x4050f8
mov ecx, esi
sub ecx, eax
mov eax, esi
sub ecx, edx
sub eax, edx
cmp esi, ebx
jae 0x4051f3
cmp ecx, 2
jbe 0x405124
xor edi, edi
jmp 0x40514e
shr edi, cl
test edi, edi
je 0x40514e
cmp edi, 4
ja 0x4051e8
cmp edi, 3
je 0x4051e8
mov ecx, edi
shr ecx, 1
mov cl, byte [ecx + esi + 1]
inc ecx
test cl, 0xfe
je 0x4051e8
movzx ecx, byte [esi + 4]
lea ebx, [ecx + 1]
test bl, 0xfe
jne 0x4051e8
movzx ebx, byte [esi + 3]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [esi + 2]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [esi + 1]
shl ecx, 8
or ecx, ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
add ecx, eax
add eax, 5
cmp dword [ebp + 0x10], 0
mov dword [ebp - 8], ecx
je 0x405190
add ebx, ecx
jmp 0x405192
sub ebx, ecx
test edi, edi
je 0x4051c5
and edi, 6
mov edx, ebx
shl edi, 2
mov ecx, edi
shr edx, cl
inc edx
test dl, 0xfe
jne 0x4051c0
mov edx, 0x100
shl edx, cl
dec edx
xor ebx, edx
cmp dword [ebp + 0x10], 0
je 0x4051bd
add ebx, dword [ebp - 8]
jmp 0x4051c0
sub ebx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
xor edi, edi
mov ecx, ebx
mov byte [esi + 1], bl
shr ecx, 8
mov byte [esi + 2], cl
mov ecx, ebx
shr ebx, 0x18
and bl, 1
shr ecx, 0x10
neg bl
mov byte [esi + 3], cl
mov byte [esi + 4], bl
jmp 0x4050ef
or edi, 8
shr edi, 1
inc eax
jmp 0x4050ef
push 2
pop edx
pop esi
shr edi, cl
cmp edx, ecx
mov edx, dword [ebp + 0xc]
sbb ecx, ecx
pop ebx
not ecx
and ecx, edi
mov dword [edx], ecx
pop edi
leave
ret 0xc
Function at 0x42eb49
Capabilities:
Encode data using xor

Disassembly:
dec eax
add dword [esi - 0x4510069], ebx
sub dword [ebp + 0x20], edi
setge byte [edx + 0x3ebc26ae]
invalid
loope 0x42ea79
sub byte gs:[eax], al
movsd dword es:[edi], dword [esi]
aam 0x92
nop
cmp byte [esi - 0x4b507d98], 0xff
push 0xffb4af82
push edx
invalid
jb 0x42eae6
jp 0x42ebba
xchg edx, eax
push ecx
pop ds
invalid

Function at 0x42ecc0
Capabilities:
Encode data using xor

Disassembly:
mov bh, 0x41
bound edx, qword [ebx]
cmp ebx, dword [ebx]
xchg edi, eax
push ebp
mov esp, 0x72a10b01
mov ch, 0x86
insb byte es:[edi], dx
imul edx, dword [edi + 0x6b821b7a], 0xfffffff7
cld
bound ebx, qword [eax]
insb byte es:[edi], dx
xor eax, 0x2e0d4517
mov es, word [ebx - 0xd]
js 0x42ed41
sub edi, eax
mov byte [edi + 0x2637f864], bl
mov ah, 7
lea ebx, [0x5a908e35]
outsd dx, dword [esi]
xor eax, 0x6f5a908e
dec edi
mov bh, ah
xor dword fs:[ebx - 8], 0x6a
xchg dword [eax + eax*2 - 0x4eac6121], edx
mov cl, 0x6f
imul ebx, dword [esi + edx*8 - 0x37], 0x5a
xor eax, 0xbf8b6dff
movsb byte es:[edi], byte [esi]
adc byte [eax + eax], ch
mov cl, 0x26
imul ebx, dword [ecx*4 + 0xdaa1fc8], 0x3a
mov byte [edi - 0x7e], 0xea
pop esp
ja 0x42ed3c

Function at 0x4389d9
Capabilities:
Encode data using xor

Disassembly:
rol edx, 1
fdiv dword [edi]
sub eax, 0xa9abe50e
jge 0x438a36
dec edx
daa
cmp ah, byte [esi]
pop edx
xor eax, 0x3d305e57
lea ebx, [0xeef201c6]
push edi
pop esi
xor byte [0x1c61d8d], bh
out dx, al
mov ebx, dword [ebp + 0x5f95e97b]
dec ecx
inc ebp
inc ebx
push 0x6e8e3f32
sub byte [edx], ah
in al, 0x2f
pushal
mov byte [0x7d6220], al
sbb al, 0xb2
fadd st(2), st(0)
or dword [eax + ebp*2 - 0x77cc0f4c], edx
sub esi, dword [edi - 0x2f]
pop ecx
in eax, dx
push eax
mov al, byte [0xbbf824f8]
push 0x68d0c40c
add edi, dword [ebp - 0x1b958300]
call 0x6e31e417
sbb dword [eax], ebx
test al, 0x5d
mov eax, dword [0xac7cf459]
sbb byte [eax - 0xba65ea3], ch
jl 0x4389ea
sbb al, ah
sbb al, ch
and ah, byte [ebx]
inc esp
cwde
loopne 0x4389ed
stosb byte es:[edi], al
mov dword [edx - 0x4c], ebp
push ebp
adc ch, al
lodsb al, byte [esi]
xchg ecx, eax
loopne 0x4389eb
loopne 0x438ab9
pop eax
jmp 0x26fe2be0
xchg esi, eax
call 0x6e3286
sub ch, ch
fcomp dword [eax]
invalid
aad 0xac
jbe 0x438a76
arpl word [eax + 0x10], cx
mov al, 0xb4
sub dword [eax], esi
xor dword [ecx], edx
sub dword [eax + edx*2 + 0x7f9e5ee6], 0xa7c48174
mov esp, 0x64d02148
pop eax
cwde
jg 0x438b42
add esp, 0x2148bca7
shl byte [eax + ebx*2 - 0x68], 1
sub byte [ebx - 0x5fe74b8d], ch
pop eax
cmp eax, 0x39b7383a
dec ecx
in al, 0x68
mov al, byte [0x8938bed3]
lodsd eax, dword [esi]
salc
loopne 0x438b51
fnsave dword [ebp - 0x68]
mov ah, 0x18
aam 0xd3
inc esp
cdq
psrlw mm3, qword [ecx]
pop ebx
and byte [esi], dh
mov dword [0xa848842e], eax
mov al, 5
adc eax, 0x2ef0b8f4
in al, 0xe9
lds ecx, [ecx + 0x59]
mov byte [ebp + 0x4dfa2408], bh
loop 0x438acc
sub ah, byte [edx]
ret
inc ecx
mov bl, 0xf9
cdq
add eax, 0xbf92826
cmpsd dword [esi], dword es:[edi]
rcl dl, 1
push ecx
lodsd eax, dword [esi]
test al, 0
fimul dword [edx - 0x52]
add dl, bl
dec edx
scasb al, byte es:[edi]
or byte [eax + 0x39b406c2], 0x93
xchg edx, eax
leave
ljmp 0x1907
Function at 0x494225
Capabilities:
Encode data using xor

Disassembly:
imul eax, esi, 0x21cd0564
jp 0x49426e
jns 0x4941ed
pushal
adc esp, ecx
test byte [ebp - 0x5b93bcd], 0xd7
sal dword [edx + 0x64], 0xba
dec ebx
push ebx
aaa
aad 0xe
or dh, byte [edi]
xchg esp, eax
push esp
movsb byte es:[edi], byte [esi]
adc byte [ecx + 0x74], dl
mov ah, 0xf6
ja 0x494266
jb 0x4941f3
pop ebp
lds edx, [ebx]
mov al, byte [0xf9aaf338]
jns 0x494257
push ds
and bh, bl
pushal
rol dword [0x1b838331], 0x43
inc eax
jl 0x494205
ljmp 0x1620:0x3067f3c1
mov ah, 0x41
movsb byte es:[edi], byte [esi]
sbb esi, dword [esi - 0x29e7a5cd]
mov dh, 0x31
leave
mov eax, dword [0x41c24221]
fdiv qword [ebp - 9]
inc esi
rol byte [esi], cl
ret 0xdc41
out 0x8d, eax
outsb dx, byte [esi]
mov bl, byte [ebp + esi*8 + 0x32337f21]
adc esi, dword [eax + ebx*8 + 0x1447cc32]
fdiv dword [edx + 0x2076aa0f]
mov dh, 0x26
push 0x7cd7be7e
push esi
push ecx
inc ecx
xor eax, 0xf6021015
pop ds
adc eax, 0x1ff60210
mov byte [0x5170cd82], al
mov ah, 0xda
daa
push ss
xor bh, ch
or eax, dword [ebx + ebx*8]
jbe 0x49429c
and eax, 0x93a07823
sal edi, 1
xor byte [ebx - 0x4f], ah
mov ebp, 0x2a5f5143
jb 0x494290
push ebx
jmp 0x71a0e49b

Function at 0x4bacbd
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x4c43b8
cmp edx, dword [eax]
je 0x4bacdf
add eax, 8
inc ecx
cmp eax, 0x4c4448
jl 0x4bacd0
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x4c43b8]
jne 0x4bae0d
mov eax, dword [0x4c8d3c]
cmp eax, 1
je 0x4bade7
test eax, eax
jne 0x4bad10
cmp dword [0x4c42e0], 1
je 0x4bade7
cmp edx, 0xfc
je 0x4bae0d
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4bad47
lea eax, [ebp - 0x1a4]
push 0x4bfd20
push eax
call fcn.004bb6a0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.004bbb30
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4bad8a
lea eax, [ebp - 0x1a4]
push eax
call fcn.004bbb30
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4bfd1c
push edi
call fcn.004bda00
add esp, 0x10
lea eax, [ebp - 0xa0]
push 0x4bfd00
push eax
call fcn.004bb6a0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004bb6b0
lea eax, [ebp - 0xa0]
push 0x4bfcfc
push eax
call fcn.004bb6b0
push dword [esi + 0x4c43bc]
lea eax, [ebp - 0xa0]
push eax
call fcn.004bb6b0
push 0x12010
lea eax, [ebp - 0xa0]
push 0x4bfcd4
push eax
call fcn.004bd974
add esp, 0x2c
pop edi
jmp 0x4bae0d
lea eax, [ebp + 8]
lea esi, [esi + 0x4c43bc]
push 0
push eax
push dword [esi]
call fcn.004bbb30
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret