joyce8/EMBER2024-capa huggingface dataset:
Function at 0x409a51
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
call fcn.00406d62
xor ebx, ebx
cmp dword [0x4125a0], ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
jne 0x409b26
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebx
jne 0x409a91
xor eax, eax
jmp 0x409bea
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x40d46c
push edi
call esi
cmp eax, ebx
je 0x409a8a
push eax
call fcn.00406cff
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x4125a0], eax
call esi
push eax
call fcn.00406cff
mov dword [esp], 0x40d448
push edi
mov dword [0x4125a4], eax
call esi
push eax
call fcn.00406cff
mov dword [0x4125a8], eax
lea eax, [ebp - 8]
push eax
call fcn.004076db
test eax, eax
pop ecx
pop ecx
je 0x409af4
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.004074c4
add esp, 0x14
cmp dword [ebp - 8], 2
jne 0x409b26
push str.GetUserObjectInformationA
push edi
call esi
push eax
call fcn.00406cff
cmp eax, ebx
pop ecx
mov dword [0x4125b0], eax
je 0x409b26
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00406cff
pop ecx
mov dword [0x4125ac], eax
mov eax, dword [0x4125ac]
mov esi, dword [ebp - 0x10]
cmp eax, esi
je 0x409b9f
cmp dword [0x4125b0], esi
je 0x409b9f
push eax
call fcn.00406d6b
pop ecx
call eax
cmp eax, ebx
je 0x409b6c
lea ecx, [ebp - 0x14]
push ecx
push 0xc
lea ecx, [ebp - 0x20]
push ecx
push 1
push eax
push dword [0x4125b0]
call fcn.00406d6b
pop ecx
call eax
test eax, eax
je 0x409b6c
test byte [ebp - 0x18], 1
jne 0x409b9f
lea eax, [ebp - 0xc]
push eax
call fcn.00407712
test eax, eax
pop ecx
je 0x409b87
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.004074c4
add esp, 0x14
cmp dword [ebp - 0xc], 4
jb 0x409b96
or dword [ebp + 0x10], 0x200000
jmp 0x409bd0
or dword [ebp + 0x10], 0x40000
jmp 0x409bd0
mov eax, dword [0x4125a4]
cmp eax, esi
je 0x409bd0
push eax
call fcn.00406d6b
pop ecx
call eax
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x409bd0
mov eax, dword [0x4125a8]
cmp eax, esi
je 0x409bd0
push dword [ebp - 4]
push eax
call fcn.00406d6b
pop ecx
call eax
mov dword [ebp - 4], eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
push dword [0x4125a0]
call fcn.00406d6b
pop ecx
call eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0xe09074
Capabilities:
Encode data using xor

Disassembly:
jmp 0xe0907e
add byte [eax], al
pushal
call 0xe09084
pop ebp
sub ebp, 0x10
sub ebp, 0xa09074
jmp 0xe0909a
mov eax, 0xa09074
add eax, ebp
add eax, 0x4c
mov ecx, 0x5bc
mov edx, 0x8c551898
xor byte [eax], dl
inc eax
dec ecx
jne 0xe090b1
jmp 0xe090c4
adc edx, dword [ebp + 0x13]
adc dword [eax + ebx*4 + 0x59199898], esp
pushal
cwde
cwde
cwde
wait
push ebp
and byte [ecx + 0x22989898], dl
mov al, 0x98
cwde
cwde
outsd dx, dword [esi]
jp 0xe0907c
push eax
adc ebx, dword [ecx]
xchg esp, eax
cwde
cwde
cwde
wait
pop ebp
enter 0xfffffffffffffc15, 0xffffffffffffffbc
adc dword fs:[esp + edi*4 - 0x468b6710], ebx
cwde
invalid
Function at 0x8aeb74
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
jle 0x7dfe54
jmp 0xcdcbfa
cmp ebx, edi
jmp 0x79ed7c
ret
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 0x10]
sbb si, dx
xor esi, ebx
lea esi, [edi + ebx]
cmp edi, 0x5e8d6e30
sar esi, 1
clc
mov eax, dword [eax + esi*4]
stc
cmp dl, dl
cmc
push edx
xchg dl, dl
mov edx, dword [ebp + 0xc]
cmp bx, dx
add eax, ecx
jmp 0xcb784d
mov dword [ebp - 0xc], eax
jmp 0xc322e1
je 0x8906db
mov eax, 0x5a4d
stc
cmp word [ecx], ax
jmp 0x8906d5
jb 0xc8ada1
mov esi, dword [ebp - 0x10]
jmp 0x8db2ba
pop ebp
ret
test ecx, ecx
je 0xcc52e4
lea ebx, [ebp - 0x114]
adc dl, bl
rcr dl, cl
cmp eax, 0x59ac6110
sub ebx, eax
cmc
sal dl, cl
mov dword [ebp - 8], eax
jmp 0xce7d78
ja 0xd054fc
mov eax, esi
clc
sub eax, dword [edx + ecx + 0x10]
jmp 0x83fa00
test eax, eax
jmp 0xcb5038
je 0xd3354f
xor eax, eax
pop esi
mov esp, ebp
pop ebp
jmp 0x7de035
jae 0xc8ada1
lea eax, [eax + ecx]
dec cl
mov cl, byte [eax]
mov esi, eax
clc
cmp esp, eax
test si, 0x1975
test cl, cl
jmp 0xd96328
push ebp
mov ebp, esp
cmp eax, 0x4be47229
mov ecx, dword [ebp + 8]
stc
clc
lea esp, [esp - 0x114]
cmp eax, 0x52dc5a83
push esi
cmp ecx, 0x3cda3bb6
test esi, eax
stc
test ecx, ecx
je 0x8906db
mov esi, dword [ebp + 0xc]
test sp, di
test esi, esi
jmp 0x80bd5d
jne 0x8906db
mov edx, dword [eax + ecx + 0x78]
mov dword [ebp - 4], edx
test edx, edx
je 0x8906db
mov eax, dword [eax + ecx + 0x7c]
test di, sp
push ebx
clc
push edi
cmp edx, esi
cmp si, 0xdbf
stc
mov dword [ebp - 0x10], eax
test bx, 0x512d
mov dword [ebp - 8], 0xffffffff
cmp esi, 0xffff
jmp 0x860de0
add esi, edx
cmp eax, esi
jmp 0x8937c7
mov esp, ebp
jmp 0x8360e2
js 0xcdcc00
jmp 0x7dfe57
je 0xcdcc00
mov eax, dword [edx + ecx + 0x20]
cmc
add eax, ecx
cmc
stc
sub ebx, ebx
jmp 0xc9143e
jne 0xd9632e
pop edi
pop ebx
bts si, sp
add eax, ecx
pop esi
jmp 0xc08d20
dec edi
jmp 0x7fba87
jns 0xcb50a6
lea edi, [esi - 1]
jmp 0xcb50af
jle 0xcdcbba
lea ebx, [esi + 1]
mov ecx, dword [ebp + 8]
cmc
test bh, cl
jmp 0x7cdfd9
call fcn.00cc217d
lea esp, [esp + 4]
jmp 0x8671bf
je 0xc74d1b
cmp eax, edx
jmp 0x818716
mov eax, dword [ebp + 8]
xchg ch, ch
sar dl, 0x9c
shrd ecx, ebx, 0xfa
mov ecx, dword [ebp - 4]
test di, 0x20ce
mov edx, dword [ecx + eax + 0x24]
shr cx, 0xec
btr cx, 0x40
lea ecx, [edx + esi*2]
rcl dx, cl
movzx edx, word [ecx + eax]
xadd ch, ch
xchg cl, ch
mov dword [ebp - 8], edx
ror cx, cl
mov ecx, eax
sar ah, 0xc9
rcr dx, cl
sbb edx, ebx
mov edx, dword [ebp - 4]
rcl al, 0xea
mov eax, dword [ebp - 8]
cmp si, sp
cmp eax, dword [edx + ecx + 0x14]
jae 0xc74d1b
mov esi, dword [edx + ecx + 0x1c]
cmc
stc
lea eax, [esi + eax*4]
mov eax, dword [eax + ecx]
cmp edi, ebp
test eax, eax
jmp 0xcdb669
jmp 0xcdcc00
mov ecx, esi
sub ecx, eax
cmp ecx, 0x104
jmp 0xd353ce
inc esi
test cl, cl
jmp 0xc74d15
mov edi, dword [edx + ecx + 0x18]
clc
stc
cmc
test edi, edi
jmp 0xc3a869
mov eax, dword [ecx + 0x3c]
cmp dword [eax + ecx], 0x4550
jmp 0x8b7d4c
jae 0xc74d1b
sub edi, edi
test ecx, eax
jmp 0x83dcaf
je 0xc74d1b
cmp cl, 0x2e
je 0xcf4655
mov cl, byte [esi + 1]
jmp 0xcf84eb
Function at 0x100021e0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
sub esp, 0x104
push ebx
mov ebx, dword [esp + 0x10c]
push ebp
push esi
mov eax, dword [ebx + 0x8c]
mov ebp, dword [ebx]
cmp eax, 2
push edi
je 0x1000236a
mov eax, dword [ebx + 0x270]
test eax, eax
jne 0x10002361
mov eax, dword [ebx + 0x2e0]
test eax, eax
jne 0x10002361
mov esi, dword [esp + 0x11c]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x94]
push eax
mov edi, 0x80
push ecx
push esi
mov dword [esp + 0x1c], edi
call dword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
je 0x10002270
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
push ebx
call fcn.1002aea0
push eax
push esi
push str.getpeername___failed_with_errno__d:__s
push ebp
call fcn.10026040
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
mov dword [esp + 0x10], edi
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
push eax
push esi
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x100022c0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
push esi
push ebx
call fcn.1002aea0
push eax
push esi
push str.getsockname___failed_with_errno__d:__s
push ebp
call fcn.10026040
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
lea ecx, [ebx + 0x130]
lea esi, [ebx + 0x102]
push ecx
lea edx, [esp + 0x98]
push esi
push edx
call fcn.10002380
add esp, 0xc
test eax, eax
jne 0x1000230c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push ebx
call fcn.1002aea0
push eax
push esi
push str.ssrem_inet_ntop___failed_with_errno__d:__s
push ebp
call fcn.10026040
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
lea edi, [ebx + 0x58]
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
lea eax, [ebx + 0x164]
lea ecx, [ebx + 0x134]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
movsw word es:[edi], word [esi]
call fcn.10002380
add esp, 0xc
test eax, eax
jne 0x10002361
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push ebx
call fcn.1002aea0
push eax
push esi
push str.ssloc_inet_ntop___failed_with_errno__d:__s
push ebp
call fcn.10026040
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret
push ebx
call fcn.10002160
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x104
ret

Function at 0x10002890
Capabilities:
Set socket configuration

Disassembly:
mov ecx, dword [esp + 8]
push esi
push edi
mov edi, dword [esp + 0xc]
lea eax, [esp + 0xc]
push 4
mov esi, dword [edi]
push eax
push 1
push 6
push ecx
mov dword [esp + 0x20], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jge 0x100028d9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.1002aea0
push eax
push str.Could_not_set_TCP_NODELAY:__s_n
push esi
call fcn.10025fd0
add esp, 0x14
pop edi
pop esi
ret
push str.TCP_NODELAY_set_n
push esi
call fcn.10025fd0
add esp, 8
pop edi
pop esi
ret
Function at 0x100028f0
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0xc
mov eax, dword [0x10052840]
push esi
test eax, eax
mov dword [esp + 8], 0x4020
mov dword [esp + 4], 0
mov dword [esp + 0xc], 4
jne 0x10002943
push 3
push 2
push eax
push 6
call fcn.1002b570
add esp, 0x10
test eax, eax
je 0x10002937
mov dword [0x10052840], 2
pop esi
add esp, 0xc
ret
mov dword [0x10052840], 1
jmp 0x10002948
cmp eax, 2
je 0x1000298f
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xc]
lea ecx, [esp + 4]
push eax
push ecx
push 0x1001
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x10002977
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
cmp edx, eax
jg 0x1000298f
lea eax, [esp + 8]
push 4
push eax
push 0x1001
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
pop esi
add esp, 0xc
ret
Function at 0x10002c70
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0xc
push esi
mov esi, dword [esp + 0x14]
xor eax, eax
push edi
mov ecx, dword [esi + 0x520]
mov edi, dword [esp + 0x1c]
test ecx, ecx
lea ecx, [esp + 0x18]
push 4
push ecx
push 8
setne al
push 0xffff
push edi
mov dword [esp + 0x2c], eax
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jge 0x10002cbc
push edi
push str.Failed_to_set_SO_KEEPALIVE_on_fd__d_n
push esi
call fcn.10025fd0
add esp, 0xc
pop edi
pop esi
add esp, 0xc
ret
mov edx, dword [esi + 0x524]
mov dword [esp + 8], 1
push edx
call fcn.10038970
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x528]
push eax
call fcn.10038970
add esp, 8
lea eax, [eax + eax*4]
lea ecx, [esp + 0x1c]
lea edx, [esp + 8]
push 0
push 0
lea eax, [eax + eax*4]
push ecx
push 0
push 0
lea eax, [eax + eax*4]
push 0xc
push edx
push 0x98000004
shl eax, 3
push edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x10002d41
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
push str.Failed_to_set_SIO_KEEPALIVE_VALS_on_fd__d:__d_n
push esi
call fcn.10025fd0
add esp, 0x10
pop edi
pop esi
add esp, 0xc
ret
Function at 0x10003300
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x1d8]
test ecx, ecx
je 0x10003311
xor eax, eax
ret
mov eax, dword [eax + 0x190]
cmp eax, 0xffffffff
jne 0x1000331f
xor eax, eax
ret
push 2
lea ecx, [esp + 8]
push 1
push ecx
push eax
call dword [sym.imp.WS2_32.dll_recv]
neg eax
sbb eax, eax
neg eax
ret
Function at 0x10006f60
Capabilities:
Get hostname

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
mov edi, dword [esp + 0x10]
push edi
push esi
mov byte [esi], 0
call dword [sym.imp.WS2_32.dll_gethostname]
test eax, eax
mov byte [esi + edi - 1], 0
jne 0x10006f92
push 0x2e
push esi
call fcn.10039460
add esp, 8
test eax, eax
je 0x10006f90
mov byte [eax], 0
xor eax, eax
pop edi
pop esi
ret

Function at 0x10007000
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using des via winapi
Encrypt or decrypt via wincrypt

Disassembly:
sub esp, 0x20
push 0xf0000000
push 1
push 0
lea eax, [esp + 0xc]
push 0
push eax
mov dword [esp + 0x18], 8
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x10007029
add esp, 0x20
ret
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0xc], ecx
lea edx, [esp + 0x18]
mov dword [esp + 0x10], ecx
push edx
mov dword [esp + 0x18], ecx
push eax
mov dword [esp + 0x20], ecx
mov byte [esp + 0x14], 8
mov dword [esp + 0x24], ecx
mov byte [esp + 0x15], 2
mov dword [esp + 0x18], 0x6601
mov dword [esp + 0x1c], 8
call fcn.10007100
lea ecx, [esp + 0x20]
push 8
push ecx
call fcn.10005f80
mov ecx, dword [esp + 0x10]
add esp, 0x10
lea edx, [esp + 8]
lea eax, [esp + 0xc]
push edx
push 0
push 0
push 0x14
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x100070a8
mov edx, dword [esp]
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
add esp, 0x20
ret
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 4]
mov dword [eax + 4], ecx
lea ecx, [esp + 4]
push edx
mov edx, dword [esp + 0xc]
push ecx
push eax
push 0
push 0
push 0
push edx
call dword [sym.imp.ADVAPI32.dll_CryptEncrypt]
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov ecx, dword [esp]
push 0
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, 1
add esp, 0x20
ret
Function at 0x10007210
Capabilities:
Hash data using md4
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
lea ebx, [edi + edi]
push ebx
call dword [0x10048b70]
mov esi, eax
add esp, 4
test esi, esi
jne 0x10007245
pop edi
pop esi
pop ebp
mov eax, 0x1b
pop ebx
pop ecx
ret
push edi
push ebp
push esi
call fcn.100072f0
add esp, 0xc
lea eax, [esp + 0x10]
push 0xf0000000
push 1
push 0
push 0
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
mov edi, dword [esp + 0x20]
test eax, eax
je 0x100072cf
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0
push 0x8002
push edx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x100072c2
mov eax, dword [esp + 0x1c]
push 0
push ebx
push esi
push eax
mov dword [esp + 0x30], 0x10
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push 0
push ecx
push edi
push 2
push edx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov ecx, dword [esp + 0x10]
push 0
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
add edi, 0x10
xor edx, edx
push esi
mov dword [edi], edx
mov byte [edi + 4], dl
call dword [0x10048b74]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x10008100
Capabilities:
Create thread

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
push 0
push 0
push eax
push ecx
push 0
push 0
call fcn.1003a594
add esp, 0x18
test eax, eax
je 0x10008123
cmp eax, 0xffffffff
jne 0x10008125
xor eax, eax
ret

Function at 0x10009a90
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x190
lea eax, [esp]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x10009aca
mov ax, word [esp]
cmp al, 2
jne 0x10009ac4
xor ecx, ecx
mov cl, ah
cmp cl, al
jne 0x10009ac4
xor eax, eax
add esp, 0x190
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 2
add esp, 0x190
ret

Function at 0x100122a0
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x104
mov eax, dword [esp + 0x108]
push eax
call fcn.1003b41d
add esp, 4
mov byte [esp], 0
test eax, eax
je 0x100122ed
lea ecx, [esp]
push 0x104
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov al, byte [esp]
test al, al
je 0x100122ed
lea edx, [esp]
push edx
call dword [0x10048b7c]
add esp, 4
add esp, 0x104
ret
xor eax, eax
add esp, 0x104
ret
Function at 0x10013180
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
lea eax, [ecx + eax*2 + 0xc]
push eax
call dword [0x10048b70]
mov edi, eax
add esp, 4
test edi, edi
jne 0x100131a3
pop edi
pop esi
ret
lea eax, [edi + 0xc]
push ebx
mov dword [edi], esi
mov dword [edi + 4], eax
mov ebx, dword [esi + 0xc]
mov edx, eax
add edx, ebx
mov ebx, dword [esp + 0x18]
mov dword [edi + 8], edx
mov ecx, dword [esi + 0x10]
cmp ebx, ecx
push ebp
jbe 0x100131ee
push eax
call dword [esi]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 4]
push ebx
push eax
push ecx
call dword [esi + 4]
mov ebx, dword [edi + 8]
mov eax, dword [esi + 0xc]
mov edx, dword [edi + 4]
add ebx, eax
push edx
push ebx
call dword [esi + 8]
mov eax, dword [esi + 0x14]
add esp, 0x18
mov dword [esp + 0x1c], eax
jmp 0x100131f2
mov ebx, dword [esp + 0x18]
mov ecx, dword [edi + 4]
push ecx
call dword [esi]
mov edx, dword [edi + 8]
push edx
call dword [esi]
mov eax, dword [esp + 0x24]
add esp, 8
xor ebp, ebp
test eax, eax
jbe 0x10013258
mov dword [esp + 0x1c], eax
mov ebp, eax
mov al, byte [ebx]
mov cl, byte [0x1004552c]
xor al, cl
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], al
mov edx, dword [edi + 4]
push 1
push ecx
push edx
call dword [esi + 4]
mov al, byte [ebx]
mov dl, byte [0x1004552d]
xor al, dl
lea ecx, [esp + 0x20]
mov byte [esp + 0x20], al
mov edx, dword [edi + 8]
push 1
push ecx
push edx
inc ebx
call dword [esi + 4]
mov eax, dword [esp + 0x34]
add esp, 0x18
dec eax
mov dword [esp + 0x1c], eax
jne 0x10013211
cmp ebp, dword [esi + 0x10]
jae 0x10013284
mov eax, dword [edi + 4]
push 1
push 0x1004552c
push eax
call dword [esi + 4]
mov ecx, dword [edi + 8]
push 1
push 0x1004552d
push ecx
call dword [esi + 4]
mov eax, dword [esi + 0x10]
add esp, 0x18
inc ebp
cmp ebp, eax
jb 0x1001325d
pop ebp
mov eax, edi
pop ebx
pop edi
pop esi
ret
Function at 0x1001c1a0
Capabilities:
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0xf0000000
push 1
push 0
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x1001c1d1
mov ecx, dword [esi]
lea eax, [esi + 4]
push eax
push 0
push 0
push 0x8003
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
pop esi
ret

Function at 0x1001c1e0
Capabilities:
Hash data via wincrypt

Disassembly:
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
push 0
push eax
mov eax, dword [edx + 4]
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
ret
Function at 0x10026230
Capabilities:
Send data
Send data on socket

Disassembly:
mov eax, dword [esp + 8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
push eax
push esi
mov edi, dword [esi + eax*4 + 0x190]
call fcn.100262c0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add esp, 8
push 0
push eax
push ecx
push edi
call dword [sym.imp.WS2_32.dll_send]
mov ebx, dword [esp + 0x24]
mov edi, eax
cmp edi, 0xffffffff
mov dword [ebx], 0
jne 0x100262b4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
cmp ebp, 0x2733
jne 0x1002628e
pop edi
pop esi
mov dword [ebx], 0x51
pop ebp
xor eax, eax
pop ebx
ret
push ebp
push esi
call fcn.1002aea0
mov edx, dword [esi]
push eax
push str.Send_failure:__s
push edx
call fcn.10026040
mov eax, dword [esi]
add esp, 0x14
mov dword [eax + 0x4724], ebp
mov dword [ebx], 0x37
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x100262c0
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
mov edx, ecx
push ebx
shl edx, 4
push esi
push edi
mov edi, dword [edx + eax + 0x1bc]
lea esi, [edx + eax + 0x1b8]
mov ebx, dword [eax + ecx*4 + 0x190]
mov edx, dword [esi + 8]
sub edi, edx
mov edx, dword [eax + 0x308]
test byte [edx + 0x3c], 3
je 0x10026382
cmp dword [eax + ecx*4 + 0x1a8], 0x100263d0
jne 0x10026382
cmp dword [esi], 0
je 0x10026310
test edi, edi
je 0x10026382
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebx
call fcn.100258d0
add esp, 0x10
cmp eax, 0xffffffff
je 0x10026382
test al, 1
je 0x10026382
cmp dword [esi], 0
jne 0x10026355
push 0x8000
mov dword [esi + 4], 0x8000
call dword [0x10048b70]
mov edi, dword [esi + 4]
add esp, 4
mov dword [esi], eax
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi]
test eax, eax
je 0x1002637b
mov ecx, dword [esi + 8]
push 0
add eax, ecx
push edi
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x10026382
mov ecx, dword [esi + 8]
pop edi
add ecx, eax
mov dword [esi + 8], ecx
pop esi
pop ebx
ret
mov dword [esi + 4], 0
pop edi
pop esi
pop ebx
ret

Function at 0x100267b0
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push 0
push eax
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x100267e1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2733
neg eax
sbb eax, eax
and al, 0xe7
add eax, 0x51
ret
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
xor eax, eax
ret
Function at 0x1002bf70
Capabilities:
Send data
Send data on socket

Disassembly:
mov al, byte [esp + 0xc]
push ebx
mov ebx, dword [esp + 0xc]
push esi
mov esi, dword [esp + 0xc]
push edi
push 0
lea ecx, [esp + 0x14]
mov edx, dword [esi + 0x190]
mov edi, dword [esi]
push 3
push ecx
push edx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], bl
mov byte [esp + 0x22], al
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jge 0x1002bfbd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push edi
call fcn.10026040
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
push eax
push ebx
push str.SENT
push ecx
call fcn.1002bfe0
add esp, 0x10
pop edi
pop esi
pop ebx
ret