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

Disassembly:
enter 0x4596, 0xfffffffffffffff5
xchg esi, eax
inc ebp
cmc
loope 0x489d02
pop esi
fcom dword [esi + esi - 0x2752c7ec]
mov bl, 0xe1
je 0x489d56
xchg byte [ebx - 8], dh
popfd
cmp ebx, edx
xchg ebp, eax
xchg ecx, eax
invalid
lds ecx, [ebx + ebp*8 - 0x54]
push eax
jb 0x489d5f
jnp 0x489ced
sbb eax, esi
rcr byte [0x6bb614c9], 0xbf
invalid
in al, 0x39
in eax, dx
xor byte [edx - 0x79], bl
push ebx
mov cs, word [eax - 0x1a37eab]
and esi, edi
sub ch, byte [ecx + esi*2 + 0x5f8278a5]
mov edx, dword [esi + 0x50]
lea ebx, [ecx - 0x7c]
sti
das
bnd je 0x489cf3
jge 0x489cec
retf 0xc317
mov edx, 0xe835e13c
xor ch, bh
cmp esp, esi
loopne 0x489d9f
out 0xe0, al
cmp eax, 0x4b9634e9
lahf
inc edx
les ebx, [ecx]
int 0x10
jp 0x489d15
jmp 0x9f94339b
adc byte [edx - 0x59], bh
jae 0x489d1e
test al, 0x75
mov eax, dword [0xd703de7c]
or cl, byte [ecx + edx*2 + 0x7fa25885]
stosd dword es:[edi], eax
jbe 0x489df1
lodsd eax, dword [esi]
jns 0x489d28
push es
fisttp dword [edi]
rcl byte [ecx + ecx*4 + 0x5d], cl
sub dl, 0x37
jecxz 0x489dce
cmp ch, ah
xor esp, ebp
dec esi
xchg ebx, eax
inc edi
lcall 0xb6c5, 0xc815c11c
shl dword [edx + 0x4a395e2d], 1
mov byte [0x4a395e2d], al
push esp
daa
inc eax
xor edi, dword [edi + ecx*2]
sub byte [ebx - 0x19], bl
xchg esp, eax
or byte [edi], 0x7c
sbb ebp, dword [eax + 0x76]
add eax, 0x6d1e1162
or bh, byte [ecx - 0x40]
mov bl, 0xd4
cmpsd dword [esi], dword es:[edi]
sub byte [ebx + 0x3c], bl
dec edi
push ecx
and al, byte [ebp + 0x36]
cmp dword [edx + 0x2d], ecx
pop esi
loop 0x489d5f
test byte [ebp + 0x6d1e790a], 0x73
add byte [edi + 0x14], ah
sbb ebp, dword [eax + 0xf]
jl 0x489d6b
std
lcall 0x1f01, 0x721566e9
insb byte es:[edi], dx
or edi, dword [eax + 0x77]
add al, 0x63
adc byte [edi + ebx*8 + 0x3744cbb8], ch
aaa
push eax
and edi, dword [0x555a294e]
inc ecx
xor cl, byte [ebx + 0x63ec9ff8]
adc byte [edi + 4], dh
sbb ch, byte [ecx + 0xe]
jge 0x489e7b
jb 0x489e0b
add dword [esi + 0x15], esp
adc ax, 0xdaa9
mov ebp, 0x553241ce
cmp byte es:[ebx + 0x2c], cl
adc eax, 0xcebddaa9
inc ecx
test eax, 0x41cebdda
xor dl, byte [ebp + 0x26]
cmp byte [ebx + 0x2c], cl
pop edi
push eax
and eax, dword [edi + esi - 0x4d]
sub al, 0x7f
loopne 0x489e0c
je 0x489e4a
mov eax, 0x50cf9c03
fild dword [edi + edx - 0x78]
ror dword [edi + ebx - 0x80], cl
mov edx, dword [edi + eax*2]
fsub dword [ebx - 4]
scasd eax, dword es:[edi]
xor byte [ebx + 0x73e87724], bh
in al, dx
mov edi, 0xe7b42b20
js 0x489e08
pop esp
seto byte [ebx]
test bh, dl
xlatb
dec eax
adc ecx, dword [edi + ebx*8 - 0x782bb4c0]
sbb byte [ebx + 0x7bf06f3c], ah
in al, 0xb7
sub byte [ebx], dh
lodsb al, byte [esi]
jmp dword [eax + 0x6b]
ret
Function at 0x4a49ca
Capabilities:
Encode data using xor

Disassembly:
and byte [esi + 0x53], bl
and byte [0xa2f2605e], dl
in al, 0x7b
xor dword [edx], ecx
popfd
push es
cmp dword [esi], 0xfbaf599f
mov bl, 0xa1
out dx, eax
ljmp 0x3279
mov ecx, 0x1ed3aeb7
stosd dword es:[edi], eax
jle 0x4a49ad
ja 0x4a49aa
shl ebp, cl
outsb dx, byte [esi]
pushfd
mov bl, 0xed
jno 0x4a4a10
ljmp 0x8d2:0xa0fb61e3
aaa
sbb ch, dl
fcom dword [ebx]
loope 0x4a4a65
cli
sub al, 0xbe
outsd dx, dword [esi]
or byte [edx], dl
int3
mov ah, 0xe
invalid

Function at 0x53b3e3
Capabilities:
Authenticate hmac

Disassembly:
push ecx
and dword [ebx + 0x25], edx
fdiv dword [edx + 0x74]
jb 0x53b459
pop ss
cld
xchg edx, eax
mov ebx, 0xb19bba71
add dword [0xbc5fd334], esp
mov edx, dword [ebx + 0x34]
xchg esi, eax
arpl dx, cx
cli
xchg edx, eax
add byte [ebx], ah
movsb byte es:[edi], byte [esi]
inc ebx
push ecx
sub ecx, dword [ecx - 0x70]
cmpsd dword [esi], dword es:[edi]
mov cl, 0x5c
ja 0x53b476
or al, 0x92
invalid
fcmovnb st(0), st(0)
lodsb al, byte [esi]

Function at 0x5af061
Capabilities:
Encode data using xor

Disassembly:
sbb dword [edx - 0x7249431b], esi
or dword [edx + 0x38], edi
mov cl, 0xc9
mov ch, 8
and eax, 0x64a897b3
cld
popal
push esp
push ss
mov cs, word [esi + 0x16]
in eax, 0xad
push ebp
out dx, eax
xor ch, dl
dec ebx
lea edi, [ebx + 0x4b0075f5]
or edx, dword [ebx]
sbb ebx, dword [edi - 0x48]
push ds
mov byte [0x3d4e4d8f], al
jg 0x5af02e
jg 0x5af02e
jg 0x5af02e
inc ch
insd dword es:[edi], dx
jnp 0x5af094
lodsd eax, dword [esi]
imul edx, dword [edi - 0x4d], 0x62a61bb7
cmpsd dword ds:[esi], dword es:[edi]
iretd
xor bl, ah
popfd
and al, 0x34
dec ebp
xchg ebx, eax
popfd
push cs
adc esp, esp
pop ebp
hlt
mov dword [0xcd279f85], 0x5c41317c
cmp ebx, edi
add al, 0xbf
and dh, byte [ebp + eax*4 - 0x53]
dec eax
aam 0xf0
pop ebp
push ss
loope 0x5af085
lahf
ret

Function at 0x5fac2f
Capabilities:
Encode data using xor

Disassembly:
cmp cl, byte [esp + ecx*2 - 0x7b6fb2ff]
popal
enter 0xfffffffffffff351, 2
ficomp word [esi + 0x1db0f3b]
nop
ja 0x5fac20
call [edx - 0x17]
push ss
mov edi, 0x3075686c
leave
pop edi
bound edx, qword [eax]
sbb dword [eax], esi
js 0x5fac0b
jg 0x5fac93
stc
lcall 0x4fa0, 0x20f63be9
cmp al, 0xdd
arpl ax, si
popal
lahf
mov ebp, 0x6be9f7c8
mov ecx, 0x650989da
pop esp
lds esp, [edi - 0x67]
cli
sbb eax, 0x9090a7b
out 0xca, al
mov edi, 0x980d675e
sbb dh, byte [ebp + 0x905d00c]
xchg ecx, eax
mov bh, 0xaf
rol byte [0xafb79109], 1
adc al, 0x98
inc edi
xor al, 0xe
pop edi
add edi, esp
sub bl, bh
enter 0xffffffffffffc626, 0x61
outsb dx, byte [esi]
std
adc byte [edx + ecx + 0x75df4235], bl
stc
pop esi
dec ecx
xchg byte [esi - 0x7c], cl
mov bh, 0x98
and al, 0x17
jns 0x5fac5f
add esi, dword [eax + 0xc]
invalid
imul esp
call 0xc52e9817
fistp qword [ebp + 0x7e]
les edi, [esi - 0x71e10a03]
mov dl, 0x97
out 0xf3, eax
jmp 0xc291178
Function at 0x62d669
Capabilities:
Encode data using xor

Disassembly:
jns 0x62d61e
jle 0x62d637
std
sub byte [esi + ebx - 0x564c9b4b], bh
mov edi, dword [edx]
stc
cmp bh, cl
xor edi, esp
add eax, 0x63996ede
and ch, ah
jle 0x62d5d7
sub ah, ch
and al, 0xe1
dec edx
sub dword [ecx - 0x53], 0x5040bd5e
mov ebp, 0x42715040
push eax
jno 0x62d634
inc edx
movsb byte es:[edi], byte [esi]
push eax
cmp eax, 0x2f3402d1
mov dl, 0x1c
push ss
mov eax, 0xee9f9b67
wait
lahf
out dx, al
dec ecx
mov fs, word [esi]
add ebp, edi
or ebp, ebx
scasd eax, dword es:[edi]
jbe 0x62d629
push cs
mov edx, 0x842b52d2
loop 0x62d5ca
mov al, byte [0xa7cb7abf]
into
invalid
inc ecx
xor cl, byte [esi]
fucompi st(0)
enter 0xfffffffffffff51b, 0xffffffffffffffe8
xchg edx, eax
sub eax, 0x3e239ef5
cmc
sahf
and edi, dword [esi]
pop eax
outsb dx, byte [esi]
mov dl, 0x6f
ror esi, 0x6d
xchg ecx, eax
jge 0x62d651
or eax, 0x1ba6a6ea
fcompi st(4)
shl dword [eax - 0x61], 1
les ebx, [edi + 0x11ed01dd]
add byte [edx], cl
jl 0x62d649
mov es, word [ebx]
stosd dword es:[edi], eax
dec ecx
xchg ebp, eax
invalid
push 0x44
jl 0x62d5f1
loop 0x62d5ef
jns 0x62d653
jecxz 0x62d6ca
pop es
lahf
jg 0x62d5fd
pop esi
add al, 0xae
aas
neg byte [eax]
out 0x75, eax
jo 0x62d5ed
sar dword [esi + 0x1f], 0x4e
scasb al, byte es:[edi]
or ch, ch
test al, 0xbd
dec esi
cmp byte [ecx + 0xf71da32], dh
jle 0x62d5fd
mov esp, 0xfd00723a
dec edi
pop ebx
cmp al, 0x2f
salc
loopne 0x62d6a8
add esi, dword [ecx - 0x7d]
les ecx, [ecx]
dec eax
pop ebp
sti
lea ecx, [esi]
pop ds
movsb byte es:[edi], byte [esi]
xor bh, byte [ebx - 0x63]
sbb al, 0x5c
out 0xb, al
or esp, dword [ecx]
int3
cmp eax, dword [ecx + 0x1774ad2e]
inc esi
xor eax, 0x4a8fd073
or ebp, dword [edi + 0x17bfb86]
iretd
js 0x62d64e
push edx
adc al, 0x5c
scasb al, byte es:[edi]
mov al, byte [0x5a6b1316]
invalid
Function at 0x407e70
Capabilities:
Enumerate pe sections

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
xor ecx, ecx
push esi
push edi
mov eax, dword [ebp]
mov edi, dword [ebp + 4]
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], 0
mov cx, word [eax + 0x14]
cmp word [eax + 6], 0
lea ebx, [ecx + eax + 0x18]
jbe 0x407f73
add ebx, 0x10
mov eax, dword [ebx]
test eax, eax
jne 0x407ef6
mov edx, dword [esp + 0x20]
mov esi, dword [edx + 0x38]
test esi, esi
jle 0x407f56
mov eax, dword [ebp + 0x34]
mov edx, dword [ebx - 4]
push eax
mov ecx, edi
push 4
push 0x1000
add ecx, edx
push esi
push ecx
call dword [ebp + 0x1c]
add esp, 0x14
test eax, eax
je 0x407f7e
mov eax, dword [ebx - 4]
mov ecx, esi
mov edx, ecx
add edi, eax
xor eax, eax
mov dword [ebx - 8], edi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x407f52
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x1c]
add ecx, eax
push ecx
push edx
call fcn.00407e60
add esp, 8
test eax, eax
je 0x407f7e
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebx]
push eax
mov eax, dword [ebx - 4]
mov edx, edi
push 4
push 0x1000
add edx, eax
push ecx
push edx
call dword [ebp + 0x1c]
add esp, 0x14
test eax, eax
je 0x407f7e
mov ecx, dword [ebx - 4]
mov esi, dword [ebx + 4]
mov eax, edi
mov edi, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [ebx]
mov edx, ecx
add esi, edi
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx - 8], eax
mov edi, dword [esp + 0x24]
mov ecx, dword [ebp]
mov eax, dword [esp + 0x10]
xor edx, edx
inc eax
mov dx, word [ecx + 6]
add ebx, 0x28
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x407ea3
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
Function at 0x407f90
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2c]
xor ecx, ecx
mov eax, dword [edi]
mov edx, dword [edi + 0x3c]
push edx
mov cx, word [eax + 0x14]
lea esi, [ecx + eax + 0x18]
mov eax, dword [ecx + eax + 0x20]
push eax
mov dword [esp + 0x1c], eax
call fcn.004080e0
push esi
push edi
mov dword [esp + 0x28], eax
call fcn.00408110
mov ecx, dword [edi]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x24]
add esp, 0x10
mov dword [esp + 0x20], eax
mov eax, 1
mov dword [esp + 0x24], 0
add esi, 0x28
cmp word [ecx + 6], ax
mov dword [esp + 0x10], eax
jbe 0x4080ac
mov edx, dword [edi + 0x3c]
mov eax, dword [esi + 8]
push edx
push eax
mov dword [esp + 0x34], eax
call fcn.004080e0
push esi
push edi
mov ebx, eax
call fcn.00408110
mov edx, dword [esp + 0x24]
mov ebp, eax
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebx
je 0x408056
mov eax, dword [esp + 0x1c]
add eax, edx
cmp eax, ebx
ja 0x408056
lea ecx, [esp + 0x14]
push ecx
push edi
call fcn.00408140
add esp, 8
test eax, eax
je 0x4080cc
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ebp
mov eax, dword [esi + 0x24]
mov dword [esp + 0x20], eax
jmp 0x40808b
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x20]
test eax, 0x2000000
je 0x408074
test ecx, 0x2000000
je 0x408074
or ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x40807f
or eax, ecx
and eax, 0xfdffffff
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
sub ebp, edx
add ebp, eax
mov dword [esp + 0x1c], ebp
mov ecx, dword [edi]
mov eax, dword [esp + 0x10]
xor edx, edx
inc eax
mov dx, word [ecx + 6]
add esi, 0x28
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x407ff2
mov eax, 1
mov dword [esp + 0x24], eax
lea eax, [esp + 0x14]
push eax
push edi
call fcn.00408140
add esp, 8
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x18
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret
Function at 0x408140
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x41e588
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
jne 0x40817d
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
mov edx, dword [edi + 0xc]
test edx, 0x2000000
je 0x4081d8
mov ebx, dword [edi]
mov eax, dword [edi + 4]
cmp ebx, eax
jne 0x4081c1
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x2c]
test eax, eax
jne 0x4081b0
mov eax, dword [ecx]
mov edi, dword [ecx + 0x3c]
cmp dword [eax + 0x38], edi
je 0x4081b0
mov eax, esi
xor edx, edx
div edi
test edx, edx
jne 0x4081c1
mov edx, dword [ecx + 0x34]
push edx
push 0x4000
push esi
push ebx
call dword [ecx + 0x20]
add esp, 0x10
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
mov eax, edx
mov ecx, edx
shr eax, 0x1d
shr ecx, 0x1e
and eax, 1
and ecx, 1
mov esi, edx
shr esi, 0x1f
lea eax, [ecx + eax*2]
test edx, 0x4000000
lea ecx, [esi + eax*2]
mov esi, dword [ecx*4 + 0x426130]
je 0x408208
or esi, 0x200
push 0
mov ecx, 0x4299d8
call fcn.0040b360
mov ecx, eax
call fcn.0040b0c0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea edx, [esp + 0xc]
mov ebx, eax
push edx
call fcn.00404b90
add esp, 4
mov ecx, eax
mov dword [esp + 0x24], 0
call fcn.0040b0c0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [esp + 0xc]
mov ebx, eax
mov dword [esp + 0x24], 0xffffffff
call fcn.0040b010
mov ecx, dword [edi + 8]
mov edx, dword [edi]
lea eax, [esp + 0x30]
push eax
push esi
push ecx
push edx
call ebx
mov ecx, dword [esp + 0x1c]
pop edi
neg eax
sbb eax, eax
pop esi
neg eax
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret
Function at 0x40ad50
Capabilities:
Hide graphical window

Disassembly:
push 0xffffffffffffffff
push 0x41ec18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
mov eax, dword [esp + 0x20]
push esi
push edi
push 0
push eax
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0xcf0000
push 0x42aa80
push 0x429a00
push 0
mov dword [0x429a68], eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edx, dword [0x4299f8]
mov ecx, dword [0x429978]
mov esi, eax
mov eax, dword [0x429910]
sub eax, edx
push eax
push ecx
call fcn.00407a00
add esp, 8
lea edx, [esp + 0x28]
mov ecx, 0x4299d8
mov edi, eax
push edx
push 0x12
call fcn.0040b360
mov ecx, eax
call fcn.0040b0c0
push eax
lea ecx, [esp + 0x10]
call fcn.0040afe0
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0
call fcn.0040b0c0
push eax
push edi
call fcn.00408500
add esp, 8
call eax
test esi, esi
jne 0x40ae27
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0xffffffff
call fcn.0040b010
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
mov eax, dword [esp + 0x2c]
push eax
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0xffffffff
call fcn.0040b010
mov ecx, dword [esp + 0x18]
pop edi
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x1c
ret

Function at 0x40be70
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x41ec5f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
mov eax, dword [esp + 0x28]
push esi
push eax
lea ecx, [esp + 0xc]
mov dword [esp + 8], 0
call fcn.0040afb0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], 1
push ecx
mov ecx, eax
call fcn.0040c080
mov esi, dword [esp + 0x28]
push eax
mov ecx, esi
call fcn.0040afb0
mov dword [esp + 4], 1
lea ecx, [esp + 8]
mov byte [esp + 0x20], 0
call fcn.0040b010
mov ecx, dword [esp + 0x18]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x20
ret
Function at 0x402030
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
call fcn.00403bc0
cmp dword [esi + 8], eax
jne 0x4020e6
mov eax, dword [ebp + 8]
push ebx
mov bl, byte [esi + 0xc]
push edi
mov dword [esi + 8], eax
mov edi, eax
mov byte [ebp + 8], bl
call fcn.00403bc0
cmp edi, eax
je 0x402069
push dword [ebp + 8]
push edi
call fcn.00403bd0
add esp, 8
cmp dword [esi + 4], 0
lea ecx, [ebp + 8]
mov eax, dword [esi + 8]
pop edi
mov byte [esi + 0xc], bl
pop ebx
push 4
mov dword [ebp + 8], 1
push ecx
jne 0x4020b3
push 1
push 6
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4020e6
push 0x4013f0
push str.all_your_TCP_packets_will_be_buffered
push str.Failed_to_set_socket_option__TCP_NODELAY___
call fcn.00403cf0
push eax
call fcn.004011c0
add esp, 8
jmp 0x4020d5
push 0x20
push 0xffff
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4020e6
push 0x4013f0
push str.Failed_to_enable_broadcast_on_UDP_socket
call fcn.00403cf0
push eax
call fcn.004011c0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
pop esi
pop ebp
ret 4

Function at 0x4020f0
Capabilities:
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
call fcn.00403bc0
cmp dword [esi + 8], eax
jne 0x4021de
xor eax, eax
cmp dword [esi + 4], eax
push edi
setne al
push 0
inc eax
push eax
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
call fcn.00403bc0
cmp edi, eax
jne 0x402134
push 0x4013f0
push str.Failed_to_create_socket
jmp 0x4021c7
call fcn.00403bc0
cmp dword [esi + 8], eax
jne 0x4021dd
push ebx
mov bl, byte [esi + 0xc]
mov dword [esi + 8], edi
mov byte [ebp - 4], bl
call fcn.00403bc0
cmp edi, eax
je 0x402161
push dword [ebp - 4]
push edi
call fcn.00403bd0
add esp, 8
cmp dword [esi + 4], 0
lea ecx, [ebp - 4]
mov eax, dword [esi + 8]
mov byte [esi + 0xc], bl
pop ebx
push 4
mov dword [ebp - 4], 1
push ecx
jne 0x4021aa
push 1
push 6
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4021dd
push 0x4013f0
push str.all_your_TCP_packets_will_be_buffered
push str.Failed_to_set_socket_option__TCP_NODELAY___
call fcn.00403cf0
push eax
call fcn.004011c0
add esp, 8
jmp 0x4021cc
push 0x20
push 0xffff
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4021dd
push 0x4013f0
push str.Failed_to_enable_broadcast_on_UDP_socket
call fcn.00403cf0
push eax
call fcn.004011c0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x402510
Capabilities:
Connect socket
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
mov eax, dword [0x409004]
xor eax, ebp
mov dword [ebp - 4], eax
movzx eax, word [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x12c], eax
call fcn.00402000
lea esi, [edi + 0x18]
mov dword [edi + 0x10], 0
lea eax, [ebp - 0x148]
mov dword [edi + 0x14], 0
cmp esi, eax
je 0x402570
mov ecx, esi
call fcn.00402460
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, edi
call fcn.004020f0
push dword [ebp - 0x12c]
mov ecx, ebx
call fcn.004034d0
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00403b20
push dword [0x4091fc]
push dword [0x4091f8]
movups xmm0, xmmword [eax]
push dword [ebp + 0x14]
movups xmmword [ebp - 0x14], xmm0
push dword [ebp + 0x10]
call fcn.00403c00
add esp, 0x1c
mov ecx, edi
test al, al
je 0x4025e4
push 0x10
lea eax, [ebp - 0x14]
push eax
call fcn.004021f0
push eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x402623
call fcn.00403b60
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403fca
mov esp, ebp
pop ebp
ret 0x10
call fcn.00402200
mov bl, al
mov byte [ebp - 0x12c], bl
test bl, bl
je 0x4025fe
push 0
mov ecx, edi
call fcn.00402210
push 0x10
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.004021f0
push eax
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
js 0x402638
push dword [ebp - 0x12c]
mov ecx, edi
call fcn.00402210
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403fca
mov esp, ebp
pop ebp
ret 0x10
call fcn.00403b60
mov esi, eax
test bl, bl
je 0x402762
cmp esi, 1
jne 0x402759
mov ecx, edi
mov dword [ebp - 0x128], 0
call fcn.004021f0
inc dword [ebp - 0x128]
lea ecx, [ebp + 0x10]
mov dword [ebp - 0x124], eax
call fcn.00403c20
push 0
push 0xf4240
push edx
push eax
call fcn.00404290
lea ecx, [ebp + 0x10]
mov dword [ebp - 0x13c], eax
call fcn.00403c20
push 0
push 0xf4240
push edx
push eax
call fcn.00404340
mov dword [ebp - 0x138], eax
mov ecx, edi
lea eax, [ebp - 0x13c]
push eax
push 0
lea eax, [ebp - 0x128]
push eax
push 0
call fcn.004021f0
inc eax
push eax
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x402752
mov ecx, edi
call fcn.004021f0
mov esi, eax
call fcn.00403bc0
cmp esi, eax
je 0x40271f
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x12c], 0x10
push eax
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
call fcn.004021f0
push eax
call dword [sym.imp.WS2_32.dll_getpeername]
cmp eax, 0xffffffff
je 0x40271f
push dword [ebp - 0x20]
call dword [sym.imp.WS2_32.dll_ntohl]
push eax
lea ecx, [ebp - 0x134]
call fcn.00402f90
jmp 0x402736
mov eax, dword [0x4091d8]
mov ecx, dword [0x4091dc]
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], ecx
lea eax, [ebp - 0x134]
push 0x4091d8
push eax
call fcn.00403290
add esp, 8
test al, al
je 0x402752
xor esi, esi
jmp 0x402759
call fcn.00403b60
mov esi, eax
push 1
mov ecx, edi
call fcn.00402210
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00403fca
mov esp, ebp
pop ebp
ret 0x10
Function at 0x402810
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
mov dword [esi], 0
test eax, eax
jne 0x40284e
push 0x4013f0
push str.Cannot_receive_data_from_the_network__the_destination_buffer_is_invalid_
call fcn.00403cf0
push eax
call fcn.004011c0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, 4
pop esi
pop ebp
ret 0xc
push 0
push dword [ebp + 0xc]
push eax
call fcn.004021f0
push eax
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40286d
mov dword [esi], eax
xor eax, eax
pop esi
pop ebp
ret 0xc
jne 0x402879
mov eax, 3
pop esi
pop ebp
ret 0xc
call fcn.00403b60
pop esi
pop ebp
ret 0xc

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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
mov edx, ecx
mov dword [ebp - 4], edx
push edi
mov edi, dword [ebp + 0xc]
test ebx, ebx
je 0x402958
test edi, edi
je 0x402958
push esi
mov esi, dword [ebp + 0x10]
xor ecx, ecx
mov dword [esi], 0
push 0
mov eax, edi
sub eax, ecx
push eax
lea eax, [ecx + ebx]
mov ecx, edx
push eax
call fcn.004021f0
push eax
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
js 0x40293a
mov ecx, dword [esi]
mov edx, dword [ebp - 4]
add ecx, eax
mov dword [esi], ecx
cmp ecx, edi
jb 0x402905
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.00403b60
cmp eax, 1
jne 0x402931
cmp dword [esi], 0
mov ecx, 2
pop esi
pop edi
cmovne eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x4013f0
push str.Cannot_send_data_over_the_network__no_data_to_send_
call fcn.00403cf0
push eax
call fcn.004011c0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
pop edi
mov eax, 4
pop ebx
mov esp, ebp
pop ebp
ret 0xc