joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401860
Capabilities:
Execute command

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x30
call dbg.__main
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x28], 1
jmp 0x4019e6
mov dword [esp + 0x2c], 1
jmp 0x401920
cmp eax, 2
jg 0x4018ac
cmp eax, 1
je 0x4018b8
jmp 0x401907
cmp eax, 3
je 0x4018de
cmp eax, 4
je 0x4018f1
jmp 0x401907
call sym._registro
mov dword [esp], str.pause
call sym._system
jmp 0x401920
call sym._consulta
mov dword [esp], str.pause
call sym._system
jmp 0x401920
call sym._deletar
mov dword [esp], str.pause
call sym._system
jmp 0x401920
mov dword [esp], str._nVoc
call sym._puts
mov eax, 0
jmp 0x401a43
mov dword [esp], str.Essa_op
call sym._puts
mov dword [esp], str.pause
call sym._system
nop
mov dword [esp + 0x2c], 1
mov dword [esp], 0x4041e4
call sym._system
mov dword [esp + 4], str.Portuguese
mov dword [esp], 0
call sym._setlocale
mov dword [esp], str._Escolha_a_op
call sym._puts
mov dword [esp], str.Escolha_a_op
call sym._puts
mov dword [esp], str._t1_Registrar_nomes
call sym._puts
mov dword [esp], str._t2_Consultar_nomes
call sym._puts
mov dword [esp], str._t3_Deletar_nomes
call sym._puts
mov dword [esp], str._t4_Sair_do_Sistema
call sym._puts
mov dword [esp], 0x40428a
call sym._printf
lea eax, [esp + 0x24]
mov dword [esp + 4], eax
mov dword [esp], 0x404291
call sym._scanf
mov dword [esp], 0x4041e4
call sym._system
mov eax, dword [esp + 0x24]
cmp eax, 2
je 0x4018cb
jmp 0x4018a0
mov dword [esp], str._________________________________
call sym._puts
mov dword [esp], str._______Senha_incorreta__________n__________________________________n_nTente_outra_senha_de_Log_in._n
call sym._puts
mov dword [esp + 0x28], 1
mov dword [esp], str.Cartorio_da_EBAC_
call sym._puts
mov dword [esp], str.Sistema_de_Log_in__n_nDigite_a_senha_de_acesso:
call sym._printf
lea eax, [esp + 0x1a]
mov dword [esp + 4], eax
mov dword [esp], 0x404020
call sym._scanf
mov dword [esp], 0x4041e4
call sym._system
mov dword [esp + 4], str.admin
lea eax, [esp + 0x1a]
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x4019ce
jmp 0x401893
leave
ret

Function at 0x401eb0
Capabilities:
Write file on windows

Disassembly:
push ebx
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
lea ebx, [esp + 0x24]
mov dword [esp], str.Mingw_w64_runtime_failure:_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sym._fwrite
mov eax, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sym._vfprintf
call sym._abort
jmp dbg.mark_section_writable
Function at 0x401f10
Capabilities:
Allocate or change rwx memory

Disassembly:
push edi
push esi
push ebx
sub esp, 0x30
mov esi, dword [0x405050]
test esi, esi
jle 0x401ffd
mov edi, dword [0x405054]
xor ebx, ebx
lea edx, [edi + 4]
nop
mov ecx, dword [edx]
cmp ecx, eax
ja 0x401f44
mov edi, dword [edx + 4]
add ecx, dword [edi + 8]
cmp eax, ecx
jb 0x401ff6
add ebx, 1
add edx, 0xc
cmp ebx, esi
jne 0x401f30
mov dword [esp], eax
mov ebx, eax
call dbg.__mingw_GetSectionForAddress
test eax, eax
mov edi, eax
je 0x40203a
lea ebx, [esi + esi*2]
mov esi, dword [0x405054]
shl ebx, 2
add esi, ebx
mov dword [esi + 8], eax
mov dword [esi], 0
call dbg._GetPEImageBase
add eax, dword [edi + 0xc]
mov dword [esi + 4], eax
lea eax, [esp + 0x14]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov eax, dword [0x405054]
mov eax, dword [eax + ebx + 4]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
sub esp, 0xc
test eax, eax
je 0x40201a
mov eax, dword [esp + 0x28]
lea edx, [eax - 4]
and edx, 0xfffffffb
je 0x401fef
sub eax, 0x40
and eax, 0xffffffbf
je 0x401fef
mov eax, dword [esp + 0x20]
add ebx, dword [0x405054]
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
je 0x402004
add dword [0x405050], 1
add esp, 0x30
pop ebx
pop esi
pop edi
ret
xor esi, esi
jmp 0x401f4e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.__VirtualProtect_failed_with_code_0x_x
mov dword [esp + 4], eax
call dbg.__report_error
mov eax, dword [0x405054]
mov eax, dword [eax + ebx + 4]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
mov dword [esp], str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov dword [esp + 4], eax
call dbg.__report_error
mov dword [esp + 4], ebx
mov dword [esp], str.Address__p_has_no_image_section
call dbg.__report_error
lea esi, [esi]

Function at 0x402500
Capabilities:
Get thread local storage value

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov dword [esp], 0x405408
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x405400]
sub esp, 4
mov ebp, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test ebx, ebx
je 0x402555
lea esi, [esi]
mov eax, dword [ebx]
mov dword [esp], eax
call ebp
sub esp, 4
mov esi, eax
call edi
test eax, eax
jne 0x40254e
test esi, esi
je 0x40254e
mov eax, dword [ebx + 4]
mov dword [esp], esi
call eax
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x402530
mov dword [esp], 0x405408
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x402770
Capabilities:
Enumerate pe sections

Disassembly:
push esi
push ebx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
add edx, dword [edx + 0x3c]
movzx esi, word [edx + 6]
movzx eax, word [edx + 0x14]
test esi, esi
lea eax, [edx + eax + 0x18]
je 0x4027a8
xor ecx, ecx
nop
mov edx, dword [eax + 0xc]
cmp edx, ebx
ja 0x40279e
add edx, dword [eax + 8]
cmp ebx, edx
jb 0x4027aa
add ecx, 1
add eax, 0x28
cmp ecx, esi
jne 0x402790
xor eax, eax
pop ebx
pop esi
ret
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x42e00c
nop
nop
nop
nop
nop
pop eax
add eax, 0x403ac5
nop
nop
sub eax, 0x403a6b
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
jl 0x42e030
nop
add eax, 0xc
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x42e01e
nop
nop
nop
popal
nop
nop
jmp fcn.00401219

Function at 0x10003939
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
sub ecx, 0x74
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 8], eax
and dword [ebp - 4], 0
cmp dword [ebp - 4], 0
jl 0x1000398e
mov eax, dword [ebp - 8]
add eax, 0x80
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x80]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 8]
cmp dword [eax + 0x50], 0
je 0x1000398a
push 0
mov eax, dword [ebp - 8]
push dword [eax + 0x50]
call dword [sym.imp.USER32.dll_ShowWindow]
and dword [ebp - 4], 0
mov eax, dword [ebp - 4]
leave
ret 8
Function at 0x406440
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
lock inc dword [0x44d544]
test eax, eax
je 0x40645c
lock inc dword [0x44d548]
push edi
push eax
call sub.msvcrt.dll_realloc
add esp, 8
test eax, eax
je 0x406489
mov esi, eax
mov eax, dword [esp + 0x14]
sub edi, eax
jbe 0x406484
mov ecx, esi
add ecx, eax
push edi
push 0
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, esi
pop esi
pop edi
ret
push 2
call dword [0x44d020]
add esp, 4
push eax
push 1
push 0x10
push str.realloc_failed__n
call sub.msvcrt.dll_fwrite
add esp, 0x10
push 0xffffffffffffffff
call sub.msvcrt.dll_exit
nop dword [eax]
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
lock inc dword [0x44d544]
push ecx
push eax
call sub.msvcrt.dll_calloc
add esp, 8
test eax, eax
je 0x4064ce
ret
push 2
call dword [0x44d020]
add esp, 4
push eax
push 1
push 0xf
push str.calloc_failed__n
call sub.msvcrt.dll_fwrite
add esp, 0x10
push 0xffffffffffffffff
call sub.msvcrt.dll_exit
nop word cs:[eax + eax]

Function at 0x4064dc
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
lock inc dword [0x44d544]
test eax, eax
je 0x40645c
lock inc dword [0x44d548]
push edi
push eax
call sub.msvcrt.dll_realloc
add esp, 8
test eax, eax
je 0x406489
mov esi, eax
mov eax, dword [esp + 0x14]
sub edi, eax
jbe 0x406484
mov ecx, esi
add ecx, eax
push edi
push 0
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, esi
pop esi
pop edi
ret
push 2
call dword [0x44d020]
add esp, 4
push eax
push 1
push 0x10
push str.realloc_failed__n
call sub.msvcrt.dll_fwrite
add esp, 0x10
push 0xffffffffffffffff
call sub.msvcrt.dll_exit
nop dword [eax]
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
lock inc dword [0x44d544]
push ecx
push eax
call sub.msvcrt.dll_calloc
add esp, 8
test eax, eax
je 0x4064ce
ret
push 2
call dword [0x44d020]
add esp, 4
push eax
push 1
push 0xf
push str.calloc_failed__n
call sub.msvcrt.dll_fwrite
add esp, 0x10
push 0xffffffffffffffff
call sub.msvcrt.dll_exit
nop word cs:[eax + eax]

Function at 0x406500
Capabilities:
Write file on windows

Disassembly:
mov eax, dword [esp + 4]
lock inc dword [0x44d544]
push eax
push 1
call sub.msvcrt.dll_calloc
add esp, 8
test eax, eax
je 0x40651b
ret
push 2
call dword [0x44d020]
add esp, 4
push eax
push 1
push 0xf
push str.malloc_failed__n
call sub.msvcrt.dll_fwrite
add esp, 0x10
push 0xffffffffffffffff
call sub.msvcrt.dll_exit
nop
Function at 0x408640
Capabilities:
Get local ipv4 addresses
Get socket information
Set socket configuration

Disassembly:
push edi
push esi
sub esp, 8
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x24]
test cl, 8
jne 0x4087a2
and ecx, 0xffffc007
or ecx, 8
mov dword [esi + 0x24], ecx
mov eax, dword [0x44d558]
inc eax
mov dword [0x44d558], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x38], 0
mov edi, dword [esi]
movd xmm0, dword [edi + 0x24]
movd xmm1, dword [edi + 0x20]
punpckldq xmm1, xmm0
pshufd xmm0, xmm1, 0x44
movdqu xmmword [esi + 0x48], xmm0
and ecx, 0xffff800f
mov dword [esi + 0x24], ecx
mov edx, dword [edi + 0xb0]
test edx, edx
je 0x4086c0
mov eax, dword [edi + 0xac]
jmp 0x4086e6
mov dword [edi + 0xb0], 0x2000
push 0x2000
call fcn.00406500
add esp, 4
mov dword [edi + 0xac], eax
mov edx, dword [edi + 0xb0]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], edx
pxor xmm0, xmm0
movdqu xmmword [esi + 0x60], xmm0
mov dword [esi + 0x70], 0x2000000
mov dword [esi + 0x74], 0
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], 0x2000000
and ecx, 0xffff7fff
movdqu xmmword [esi + 0xa8], xmm0
movdqu xmmword [esi + 0xb8], xmm0
movdqu xmmword [esi + 0xc8], xmm0
movdqu xmmword [esi + 0xd8], xmm0
movdqu xmmword [esi + 0xe8], xmm0
movdqu xmmword [esi + 0xf8], xmm0
mov dword [esi + 0x24], ecx
mov dword [esp], 0
mov dword [esp + 4], 4
lea eax, [esp + 4]
mov edi, esp
push eax
push edi
push 0x1008
push 0xffff
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
je 0x4087a8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2736
jne 0x4087c1
mov ecx, dword [esi + 0x30]
mov eax, 0x10
cmp ecx, 2
ja 0x40879f
mov eax, dword [ecx*4 + 0x445cf8]
mov dword [esi + 0x28], eax
add esp, 8
pop esi
pop edi
ret
mov eax, dword [esp]
cmp eax, 1
je 0x4087c1
cmp eax, 2
je 0x4087d4
cmp eax, 3
jne 0x4087db
mov eax, 0x100
jmp 0x4087e0
mov dword [esi + 0x28], 0x100000
mov eax, dword [esi + 0x30]
mov dword [esp], 1
jmp 0x4087ed
mov eax, 0x1000
jmp 0x4087e0
mov eax, 0xfffff00
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x30]
mov dword [esp], 0
push edi
push 0x8004667e
push eax
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov eax, dword [esi + 0x40]
test eax, eax
je 0x408842
cmp dword [esi + 0x44], 0
je 0x408855
mov dword [esp], 0x1c
push edi
push eax
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_getsockname]
movzx eax, word [esi + 0x2a]
test eax, 0xff0
je 0x4087a2
mov dword [esp], 0x1c
push edi
push dword [esi + 0x44]
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_getpeername]
add esp, 8
pop esi
pop edi
ret
push 0x1c
call fcn.00406500
add esp, 4
mov dword [esi + 0x40], eax
cmp dword [esi + 0x44], 0
jne 0x408807
push 0x1c
call fcn.00406500
add esp, 4
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x40]
jmp 0x408807
Function at 0x40a570
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
cmp dword [ebp], 0
je 0x40a630
cmp dword [ebp + 4], 0
je 0x40a63d
mov eax, dword [ebp + 8]
or eax, dword [ebp + 0xc]
je 0x40a650
lea edi, [ebx + 0xd0]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0xbc]
cmp eax, 0xffffffff
je 0x40a660
push 0
push 1
push 0x445d04
push eax
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x40a68e
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
je 0x40a6ad
mov esi, dword [ebx + 0xc4]
cmp esi, ecx
jne 0x40a6f2
mov eax, ecx
add eax, ecx
mov esi, 0x10
cmovne esi, eax
lea eax, [esi*8]
lea eax, [eax + eax*4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
push ecx
push eax
push dword [ebx + 0xc0]
call fcn.00406440
add esp, 0xc
mov dword [ebx + 0xc0], eax
mov dword [ebx + 0xc8], esi
mov edx, dword [ebx + 0xcc]
jmp 0x40a734
mov dword [ebp], ebx
cmp dword [ebp + 4], 0
jne 0x40a591
mov dword [ebp + 4], 0x400
mov eax, dword [ebp + 8]
or eax, dword [ebp + 0xc]
jne 0x40a59d
call fcn.004085f0
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], eax
jmp 0x40a59d
lea eax, [ebx + 0xb8]
push eax
push 0
push 1
push 2
call fcn.004100d0
add esp, 0x10
test eax, eax
je 0x40a76e
call fcn.00408460
push str.hloop_create_eventfds
push str._s:_socketpair_create_failed__n
jmp 0x40a69d
call fcn.00408460
push str.hloop_post_event
push str._s:_hloop_post_event_failed__n
push 4
push eax
call fcn.00407980
add esp, 0x10
jmp 0x40a75f
mov dword [ebx + 0xcc], 0
mov dword [ebx + 0xc4], 0
mov dword [ebx + 0xc8], 0x10
push 0x280
call fcn.00406500
add esp, 4
mov dword [ebx + 0xc0], eax
mov ecx, dword [ebx + 0xc8]
mov esi, dword [ebx + 0xc4]
cmp esi, ecx
je 0x40a5ed
mov dword [esp], edi
mov eax, dword [ebx + 0xc0]
mov edx, dword [ebx + 0xcc]
lea edi, [edx + esi]
cmp edi, ecx
jne 0x40a731
lea ecx, [edx + edx*4]
lea ecx, [eax + ecx*8]
shl esi, 3
lea edx, [esi + esi*4]
push edx
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov dword [ebx + 0xcc], 0
mov eax, dword [ebx + 0xc0]
xor edx, edx
mov edi, dword [esp]
add edx, dword [ebx + 0xc4]
lea ecx, [edx + edx*4]
movsd xmm0, qword [ebp + 0x20]
movsd qword [eax + ecx*8 + 0x20], xmm0
movups xmm0, xmmword [ebp]
movups xmm1, xmmword [ebp + 0x10]
movups xmmword [eax + ecx*8 + 0x10], xmm1
movups xmmword [eax + ecx*8], xmm0
inc dword [ebx + 0xc4]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [ebx + 0xb8]
push ebx
call fcn.0040b8f0
add esp, 8
mov esi, eax
mov dword [eax + 0xa8], 0x40c500
push eax
call fcn.0040ce00
add esp, 4
mov dword [esi + 0x20], 3
inc dword [ebx + 0x3c]
mov eax, dword [ebx + 0xbc]
jmp 0x40a5b9
Function at 0x40c2f0
Capabilities:
Create udp socket

Disassembly:
push edi
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x30]
xorps xmm0, xmm0
movups xmmword [esp + 0xc], xmm0
movups xmmword [esp], xmm0
xor esi, esi
test eax, eax
js 0x40c35c
mov edi, esp
push eax
push dword [esp + 0x30]
push edi
call fcn.0040fb20
add esp, 0xc
test eax, eax
jne 0x40c35c
movzx eax, word [esp]
push 0
push 2
push eax
call dword [sym.imp.WS2_32.dll_socket]
test eax, eax
js 0x40c364
push eax
push dword [esp + 0x2c]
call fcn.0040b8f0
add esp, 8
mov esi, eax
mov dword [eax + 0x28], 0x1000
push edi
call fcn.0040fb80
add esp, 4
push eax
push edi
push esi
call fcn.004090c0
add esp, 0xc
mov eax, esi
add esp, 0x1c
pop esi
pop edi
ret
push 0x445d3b
call sub.msvcrt.dll_perror
add esp, 4
jmp 0x40c35c

Function at 0x40cc70
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x30
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x30]
mov ebx, dword [edi + 0x44]
push ebx
call fcn.0040fb80
add esp, 4
push eax
push ebx
push esi
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
js 0x40ccdf
jne 0x40ccee
xorps xmm0, xmm0
movaps xmmword [esp + 0x10], xmm0
movaps xmmword [esp], xmm0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 0x40d640
mov dword [esp + 0x14], edi
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x18], eax
mov eax, esp
push eax
push dword [edi]
call fcn.0040a570
add esp, 8
xor esi, esi
mov eax, esi
jmp 0x40cd2d
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x40cd35
mov eax, dword [edi + 0xbc]
test eax, eax
mov ecx, 0x2710
cmovne ecx, eax
push 1
push ecx
push 0x40cd60
push dword [edi]
call fcn.0040b030
add esp, 0x10
mov dword [edi + 0xd8], eax
mov dword [eax + 0x18], edi
or byte [edi + 0x24], 0x80
push 4
push 0x40c630
push edi
call fcn.0040bb90
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x445daf
call sub.msvcrt.dll_perror
add esp, 4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi + 0x34], eax
push edi
call fcn.0040bc80
add esp, 4
jmp 0x40ccdb

Function at 0x40d140
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
push ebx
push edi
push esi
mov esi, edx
mov edi, dword [esp + 0x14]
mov eax, dword [ecx + 0x28]
cmp eax, 0x1fff
jle 0x40d178
cmp eax, 0x2000
je 0x40d186
cmp eax, 0x100000
je 0x40d1a4
cmp eax, 0x1000000
jne 0x40d1b3
push edi
push esi
push dword [ecx + 0xf8]
call fcn.0040f820
jmp 0x40d1bd
cmp eax, 0x100
je 0x40d186
cmp eax, 0x1000
jne 0x40d1b3
mov ebx, dword [ecx + 0x30]
mov ebp, dword [ecx + 0x44]
push ebp
call fcn.0040fb80
add esp, 4
push eax
push ebp
push 0
push edi
push esi
push ebx
call dword [sym.imp.WS2_32.dll_sendto]
jmp 0x40d1c0
push 0
push edi
push esi
push dword [ecx + 0x30]
call dword [sym.imp.WS2_32.dll_send]
jmp 0x40d1c0
push edi
push esi
push dword [ecx + 0x30]
call sub.msvcrt.dll__write
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x40d400
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebx
push edi
push esi
push eax
mov esi, ecx
mov dword [esp], 0x1c
mov edi, esp
push edi
push dword [ecx + 0x44]
push dword [ecx + 0x30]
call dword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
js 0x40d463
mov dword [esp], 0x1c
push edi
push dword [esi + 0x40]
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_getsockname]
cmp dword [esi + 0x28], 0x1000000
jne 0x40d4a3
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x40d4bc
mov ecx, dword [esi + 0x100]
test ecx, ecx
je 0x40d45b
push ecx
push eax
call fcn.0040f840
add esp, 8
push esi
call fcn.0040d5b0
jmp 0x40d4b2
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 0x34], eax
call fcn.00408460
mov edi, eax
mov ebx, dword [esi + 0x30]
push dword [esi + 0x34]
call fcn.0040f900
add esp, 4
push dword [esi + 0x34]
push eax
push ebx
push str.nio_connect
push str._s:_connfd_d_connect_error:__s:_d_n
push 3
push edi
call fcn.00407980
add esp, 0x1c
push esi
call fcn.0040d1d0
jmp 0x40d4b2
push esi
call fcn.00409200
add esp, 4
push esi
call fcn.00408be0
add esp, 4
add esp, 4
pop esi
pop edi
pop ebx
ret
mov eax, dword [esi + 0xfc]
test eax, eax
jne 0x40d4e9
mov eax, dword [0x445ff8]
mov eax, dword [eax]
test eax, eax
jne 0x40d4e9
push 0
call fcn.0040f440
add esp, 4
mov dword [esi + 0xfc], eax
or byte [esi + 0x25], 0x80
test eax, eax
je 0x40d51c
push dword [esi + 0x30]
push eax
call fcn.0040f6a0
add esp, 8
test eax, eax
je 0x40d512
mov dword [esi + 0xf8], eax
mov ecx, dword [esi + 0x100]
test ecx, ecx
jne 0x40d451
jmp 0x40d45b
mov eax, 0x412
jmp 0x40d469
mov eax, 0x411
jmp 0x40d469

Function at 0x40da10
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
xor edx, edx
test ecx, ecx
je 0x40da8e
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp ecx, 1
je 0x40da70
mov ebx, dword [esp + 0x1c]
and ebx, 0xfffffffe
xor edx, edx
nop dword [eax + eax]
mov ebp, dword [eax + 0xc]
add ebp, edx
and ebp, 3
movzx ecx, byte [eax + ebp + 8]
xor cl, byte [edi + edx]
mov byte [esi + edx], cl
mov ecx, dword [eax + 0xc]
add ecx, edx
inc ecx
and ecx, 3
movzx ecx, byte [eax + ecx + 8]
xor cl, byte [edi + edx + 1]
mov byte [esi + edx + 1], cl
add edx, 2
cmp ebx, edx
jne 0x40da40
mov ebx, dword [esp + 0x1c]
test bl, 1
je 0x40da90
mov ecx, dword [eax + 0xc]
add ecx, edx
and ecx, 3
movzx ecx, byte [eax + ecx + 8]
xor cl, byte [edi + edx]
mov byte [esi + edx], cl
jmp 0x40da90
xor ebx, ebx
add bl, byte [eax + 0xc]
and bl, 3
mov byte [eax + 0xc], bl
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x40daa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, dword [esp + 0x1c]
xor edx, edx
test eax, eax
je 0x40dbed
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
movzx esi, byte [esp + 0x24]
cmp eax, 8
jb 0x40db88
lea ebx, [eax - 1]
movzx ecx, byte [esp + 0x24]
and cl, 3
mov ch, bl
and ch, 3
add ch, cl
test ch, 4
jne 0x40db88
cmp ebx, 3
ja 0x40db88
mov ebx, ebp
sub ebx, edi
cmp ebx, 0x20
jb 0x40db88
movzx ecx, cl
mov ebx, dword [esp + 0x20]
add ecx, ebx
mov ebx, ebp
sub ebx, ecx
cmp ebx, 0x20
jb 0x40db88
xor edx, edx
cmp eax, 0x20
jb 0x40db4a
mov edx, eax
and edx, 0xffffffe0
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + 0x10]
mov ecx, esi
and ecx, 3
mov ebx, dword [esp + 0x20]
movups xmm2, xmmword [ebx + ecx]
xorps xmm2, xmm0
movups xmm0, xmmword [ebx + ecx + 0x10]
xorps xmm0, xmm1
movups xmmword [ebp], xmm2
movups xmmword [ebp + 0x10], xmm0
cmp edx, eax
je 0x40dbef
test al, 0x18
je 0x40db88
mov ecx, edx
mov edx, eax
and edx, 0xfffffff8
mov ebp, esi
and ebp, 3
nop word cs:[eax + eax]
movsd xmm0, qword [edi + ecx]
mov ebx, dword [esp + 0x20]
movsd xmm1, qword [ebx + ebp]
xorps xmm1, xmm0
mov ebx, dword [esp + 0x14]
movlps qword [ebx + ecx], xmm1
add ecx, 8
cmp edx, ecx
jne 0x40db60
cmp edx, eax
mov ebp, dword [esp + 0x14]
je 0x40dbef
mov ecx, edx
not ecx
test al, 1
je 0x40dbab
mov ebx, esi
and ebx, 3
mov edi, dword [esp + 0x20]
movzx ebx, byte [edi + ebx]
mov edi, dword [esp + 0x18]
xor bl, byte [edi + edx]
mov byte [ebp + edx], bl
or edx, 1
add ecx, eax
mov ebx, dword [esp + 0x20]
je 0x40dbef
nop word cs:[eax + eax]
lea ecx, [esi + edx]
and ecx, 3
movzx ecx, byte [ebx + ecx]
xor cl, byte [edi + edx]
mov byte [ebp + edx], cl
lea ecx, [esi + edx]
inc ecx
and ecx, 3
movzx ecx, byte [ebx + ecx]
xor cl, byte [edi + edx + 1]
mov byte [ebp + edx + 1], cl
add edx, 2
cmp eax, edx
jne 0x40dbc0
jmp 0x40dbef
xor eax, eax
add al, byte [esp + 0x24]
and al, 3
pop esi
pop edi
pop ebx
pop ebp
ret