joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1011bd50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 0x2c
call fcn.101cf170
mov eax, dword [0x10263fdc]
xor eax, esp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
push ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
push ebp
mov dword [esp + 0xc], eax
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x50]
movzx edx, byte [edi + 1]
movzx ebx, byte [edi + 5]
lea eax, [edi + 1]
mov dword [esp + 0x28], ecx
movzx ecx, byte [edi]
shl edx, 8
or ecx, edx
movzx edx, byte [eax + 1]
shl edx, 0x10
or ecx, edx
movzx edx, byte [eax + 2]
mov ebp, dword [esp + 0x48]
shl edx, 0x18
or ecx, edx
movzx edx, byte [eax + 3]
shl ebx, 8
or edx, ebx
movzx ebx, byte [eax + 6]
mov dword [esp + 0x2c], eax
movzx eax, byte [eax + 5]
shl ebx, 8
or ebx, eax
mov eax, ecx
shr eax, 8
shl ebx, 0x10
or edx, ebx
mov byte [esp + 0x31], al
mov eax, ecx
mov ebx, ecx
mov byte [esp + 0x30], cl
shr eax, 0x10
shr ecx, 0x18
mov byte [esp + 0x32], al
mov byte [esp + 0x33], cl
mov ecx, edx
mov eax, edx
mov dword [esp + 0x24], edx
mov byte [esp + 0x34], dl
shr ecx, 8
shr eax, 0x10
shr edx, 0x18
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
mov byte [esp + 0x35], cl
mov byte [esp + 0x36], al
mov byte [esp + 0x37], dl
test ebp, ebp
je 0x1011bf24
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
sub eax, ebp
mov dword [esp + 0x10], eax
dec dword [esp + 0x18]
test esi, esi
jne 0x1011be9d
mov ecx, dword [esp + 0x28]
push 1
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.10119c00
mov ebx, dword [esp + 0x2c]
mov eax, ebx
shr eax, 8
mov byte [esp + 0x3d], al
mov eax, dword [esp + 0x30]
mov ecx, ebx
shr ecx, 0x10
mov edx, ebx
shr edx, 0x18
mov byte [esp + 0x3e], cl
mov byte [esp + 0x3f], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x40], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
add esp, 0xc
inc dword [esp + 0x1c]
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x10]
mov byte [esp + 0x30], bl
mov byte [esp + 0x35], cl
mov byte [esp + 0x36], dl
mov cl, byte [esp + esi + 0x30]
xor cl, byte [ebp]
inc esi
mov byte [eax + ebp], cl
inc ebp
and esi, 7
cmp dword [esp + 0x18], 0
jne 0x1011be35
cmp dword [esp + 0x1c], 0
je 0x1011bf0b
mov eax, dword [esp + 0x2c]
mov byte [edi], bl
mov edx, ebx
shr edx, 8
mov byte [eax], dl
mov ecx, ebx
shr ecx, 0x10
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x24]
shr ebx, 0x18
mov byte [eax + 2], bl
mov byte [eax + 3], cl
mov edx, ecx
shr edx, 8
mov byte [eax + 4], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 5], dl
shr ecx, 0x18
mov byte [eax + 6], cl
mov eax, dword [esp + 0x14]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.101ce9e2
add esp, 0x2c
ret
mov ecx, dword [esp + 0x14]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.101ce9e2
add esp, 0x2c
ret
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
pop edi
mov dword [edx], esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101ce9e2
add esp, 0x2c
ret
Function at 0x1011da10
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.101cf170
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push ebp
mov ebp, ecx
shr ebp, 3
mov dword [esp + 4], ebp
cmp eax, ecx
jb 0x1011db07
push ebx
mov ebx, dword [esp + 0x10]
push esi
mov esi, dword [esp + 0x18]
push edi
nop
xor edi, edi
test ebp, ebp
je 0x1011dae9
lea ebx, [ebx]
movzx eax, byte [esi + 7]
cdq
shld edx, eax, 8
shl eax, 8
mov ecx, eax
movzx eax, byte [esi + 6]
mov ebp, edx
cdq
or ecx, eax
movzx eax, byte [esi + 5]
or ebp, edx
shld ebp, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [esi + 4]
or ebp, edx
shld ebp, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [esi + 3]
or ebp, edx
shld ebp, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [esi + 2]
or ebp, edx
shld ebp, ecx, 8
shl ecx, 8
cdq
or ecx, eax
movzx eax, byte [esi + 1]
or ebp, edx
shld ebp, ecx, 8
cdq
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
or ebp, edx
shld ebp, ecx, 8
cdq
shl ecx, 8
or ebp, edx
or ecx, eax
push ebp
push ecx
add esi, 8
call fcn.1011d7f0
xor dword [ebx + edi*8], eax
xor dword [ebx + edi*8 + 4], edx
mov ebp, dword [esp + 0x18]
inc edi
add esp, 8
cmp edi, ebp
jb 0x1011da50
call fcn.1011d6a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0x20], eax
cmp eax, ecx
jae 0x1011da40
pop edi
pop esi
pop ebx
pop ebp
pop ecx
ret

Function at 0x1011dbe0
Capabilities:
Hash data using sha256

Disassembly:
push edi
push 0x74
push 0
push esi
mov edi, ecx
call sub.MSVCR100.dll_memset
mov dword [esi], 0x6a09e667
mov dword [esi + 4], 0xbb67ae85
mov dword [esi + 8], 0x3c6ef372
mov dword [esi + 0xc], 0xa54ff53a
mov dword [esi + 0x10], 0x510e527f
mov dword [esi + 0x14], 0x9b05688c
mov dword [esi + 0x18], 0x1f83d9ab
mov dword [esi + 0x1c], 0x5be0cd19
mov eax, dword [edi]
xor dword [esi], eax
mov eax, dword [edi + 4]
xor dword [esi + 4], eax
mov eax, dword [edi + 8]
xor dword [esi + 8], eax
mov eax, dword [edi + 0xc]
xor dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
xor dword [esi + 0x10], eax
mov eax, dword [edi + 0x14]
xor dword [esi + 0x14], eax
mov eax, dword [edi + 0x18]
xor dword [esi + 0x18], eax
mov edi, dword [edi + 0x1c]
xor dword [esi + 0x1c], edi
add esp, 0xc
pop edi
ret
Function at 0x1011fbd0
Capabilities:
Hash data using sha256

Disassembly:
push 0xe8
push 0
push esi
call sub.MSVCR100.dll_memset
add esp, 0xc
mov dword [esi], 0xf3bcc908
mov dword [esi + 4], 0x6a09e667
mov dword [esi + 8], 0x84caa73b
mov dword [esi + 0xc], 0xbb67ae85
mov dword [esi + 0x10], 0xfe94f82b
mov dword [esi + 0x14], 0x3c6ef372
mov dword [esi + 0x18], 0x5f1d36f1
mov dword [esi + 0x1c], 0xa54ff53a
mov dword [esi + 0x20], 0xade682d1
mov dword [esi + 0x24], 0x510e527f
mov dword [esi + 0x28], 0x2b3e6c1f
mov dword [esi + 0x2c], 0x9b05688c
mov dword [esi + 0x30], 0xfb41bd6b
mov dword [esi + 0x34], 0x1f83d9ab
mov dword [esi + 0x38], 0x137e2179
mov dword [esi + 0x3c], 0x5be0cd19
ret

Function at 0x1011fc50
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov esi, edx
mov edi, ecx
call fcn.1011fbd0
mov edx, edi
lea ecx, [edi + 0x18]
lea eax, [esi + 8]
sub edx, esi
mov ebx, 2
jmp 0x1011fc70
mov esi, dword [ecx - 0x18]
mov edi, dword [ecx - 0x14]
xor dword [eax - 8], esi
xor dword [eax - 4], edi
mov esi, dword [edx + eax]
mov edi, dword [edx + eax + 4]
xor dword [eax], esi
xor dword [eax + 4], edi
mov esi, dword [ecx - 8]
mov edi, dword [ecx - 4]
xor dword [eax + 8], esi
xor dword [eax + 0xc], edi
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
xor dword [eax + 0x10], esi
xor dword [eax + 0x14], edi
add eax, 0x20
add ecx, 0x20
dec ebx
jne 0x1011fc70
pop edi
pop esi
pop ebx
ret
Function at 0x1012a9b0
Capabilities:
Hash data using sha1

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0x60
push 0
push esi
call sub.MSVCR100.dll_memset
add esp, 0xc
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
mov dword [esi + 0x10], 0xc3d2e1f0
mov eax, 1
pop esi
ret

Function at 0x1012aa20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xa0
call fcn.101cf170
mov eax, dword [0x10263fdc]
xor eax, esp
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa8]
push ebp
mov ebp, dword [esp + 0xa8]
push esi
mov esi, ecx
test eax, eax
je 0x1012abaa
push ebx
dec eax
push edi
lea edi, [ebp + 0xc]
shr eax, 3
add ebp, 0x14
inc eax
mov dword [esp + 0x18], eax
movzx eax, byte [esi + 1]
movzx ebx, byte [esi]
movzx ecx, byte [esi + 2]
movzx edx, byte [esi + 3]
shl eax, 8
or ebx, eax
movzx eax, byte [esi + 4]
shl ecx, 0x10
or ebx, ecx
movzx ecx, byte [esi + 5]
shl edx, 0x18
or ebx, edx
movzx edx, byte [esi + 6]
shl ecx, 8
or eax, ecx
movzx ecx, byte [esi + 7]
shl edx, 0x10
or eax, edx
mov dl, byte [edi]
shl ecx, 0x18
or eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov al, byte [ebp]
and dl, 0xdf
and al, 0xbf
or dl, 0x40
or al, 0x20
push edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
add esi, 8
mov byte [edi], dl
mov byte [ebp], al
call fcn.1011b500
lea ecx, [esp + 0x30]
push ecx
push edi
call fcn.1011b5d0
push 1
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x38]
push eax
call fcn.10119c00
push ebp
call fcn.1011b500
lea ecx, [esp + 0x48]
push ecx
push ebp
call fcn.1011b5d0
push 1
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.10119c00
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x40]
mov edx, dword [esp + 0x58]
xor dword [esp + 0x40], edx
xor ecx, ebx
xor ebx, dword [esp + 0x54]
mov dword [esp + 0x44], eax
mov eax, edi
mov byte [eax], bl
mov edx, ebx
shr edx, 8
mov byte [eax + 1], dl
mov edx, ebx
shr edx, 0x10
mov byte [eax + 2], dl
mov edx, dword [esp + 0x44]
shr ebx, 0x18
mov byte [eax + 3], bl
mov ebx, edx
add esp, 0x30
mov byte [eax + 4], dl
shr ebx, 8
mov byte [eax + 5], bl
mov ebx, edx
shr edx, 0x18
shr ebx, 0x10
mov byte [eax + 6], bl
mov byte [eax + 7], dl
mov eax, ebp
mov byte [eax], cl
mov edx, ecx
shr edx, 8
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 2], dl
shr ecx, 0x18
mov byte [eax + 3], cl
mov ecx, dword [esp + 0x10]
mov edx, ecx
shr edx, 8
mov byte [eax + 4], cl
mov byte [eax + 5], dl
mov edx, ecx
shr edx, 0x10
shr ecx, 0x18
dec dword [esp + 0x18]
mov byte [eax + 6], dl
mov byte [eax + 7], cl
jne 0x1012aa63
pop edi
pop ebx
mov ecx, dword [esp + 0xa4]
pop esi
pop ebp
xor ecx, esp
call fcn.101ce9e2
add esp, 0xa0
ret

Function at 0x1012ace0
Capabilities:
Hash data with md5

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0x5c
push 0
push esi
call sub.MSVCR100.dll_memset
add esp, 0xc
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
mov eax, 1
pop esi
ret
Function at 0x10135ec0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, dword [esp + 0xc]
xor eax, eax
push esi
test edx, edx
je 0x10135ed7
test byte [edx + 0x5c], 2
mov esi, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._
jne 0x10135edc
mov esi, 0x1022c090
test ebp, ebp
jle 0x10135fa5
push ebx
push edi
mov edi, dword [esp + 0x14]
inc edi
jmp 0x10135ef0
movzx edx, byte [edi - 1]
cmp ebp, 3
jl 0x10135f41
movzx ebx, byte [edi]
shl edx, 8
or edx, ebx
movzx ebx, byte [edi + 1]
shl edx, 8
or edx, ebx
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
movzx ebx, byte [ebx + esi]
mov byte [ecx], bl
mov ebx, edx
shr ebx, 0xc
and ebx, 0x3f
movzx ebx, byte [ebx + esi]
mov byte [ecx + 1], bl
mov ebx, edx
shr ebx, 6
and ebx, 0x3f
movzx ebx, byte [ebx + esi]
mov byte [ecx + 2], bl
and edx, 0x3f
mov dl, byte [edx + esi]
mov byte [ecx + 3], dl
jmp 0x10135f89
shl edx, 0x10
cmp ebp, 2
jne 0x10135f51
movzx ebx, byte [edi]
shl ebx, 8
or edx, ebx
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
movzx ebx, byte [ebx + esi]
mov byte [ecx], bl
mov ebx, edx
shr ebx, 0xc
and ebx, 0x3f
movzx ebx, byte [ebx + esi]
mov byte [ecx + 1], bl
cmp ebp, 1
jne 0x10135f78
lea edx, [ebp + 0x3c]
jmp 0x10135f82
shr edx, 6
and edx, 0x3f
movzx edx, byte [edx + esi]
mov byte [ecx + 2], dl
mov byte [ecx + 3], 0x3d
sub ebp, 3
add ecx, 4
add eax, 4
add edi, 3
test ebp, ebp
jg 0x10135ef0
pop edi
pop ebx
pop esi
mov byte [ecx], 0
pop ebp
ret
pop esi
mov byte [ecx], al
pop ebp
ret
Function at 0x1015a410
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.101cf170
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x64]
push ebx
push esi
push edi
mov edi, dword [esp + 0x20]
inc edi
test byte [ecx + 0x30], 1
je 0x1015a45b
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 8]
lea ebx, [edi + ecx]
cmp ebx, eax
jbe 0x1015a44b
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
add dword [esi + 0x14], ecx
add dword [esi + 0x18], ecx
sub eax, ecx
sub dword [esi + 0xc], ecx
mov dword [esi + 8], eax
jmp 0x1015a466
mov eax, dword [esp + 0x18]
cmp edi, dword [eax + 8]
ja 0x1015a444
mov esi, eax
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 8]
movzx ebx, byte [ecx + eax - 1]
mov ecx, dword [edx + 0x3cc]
push ecx
call fcn.1003a750
push eax
call fcn.100471c0
add esp, 8
test eax, 0x200000
je 0x1015a49f
or edx, 0xffffffff
sub edx, ebx
add dword [esi + 8], edx
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret
push ebp
mov ebp, dword [esi + 8]
lea eax, [ebx + edi]
mov esi, ebp
sub esi, eax
xor esi, eax
mov ecx, ebp
xor ecx, eax
or esi, ecx
xor esi, ebp
shr esi, 0x1f
mov eax, 0x100
dec esi
mov dword [esp + 0x18], eax
cmp ebp, eax
jae 0x1015a4cb
mov eax, ebp
mov dword [esp + 0x18], ebp
xor edi, edi
test eax, eax
je 0x1015a527
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x14]
mov ecx, ebx
shr ecx, 0x1f
lea edx, [eax + ebp - 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], edx
lea esp, [esp]
mov edx, ebx
sub edx, edi
shr edx, 0x1f
mov eax, edi
shr eax, 0x1f
xor dl, al
xor cl, al
or dl, cl
mov ecx, dword [esp + 0x10]
xor dl, cl
dec dl
movzx eax, dl
mov edx, dword [esp + 0x24]
movzx edx, byte [edx]
dec dword [esp + 0x24]
xor edx, ebx
and eax, edx
not eax
inc edi
and esi, eax
cmp edi, dword [esp + 0x18]
jb 0x1015a4f0
mov ecx, dword [esp + 0x1c]
not esi
and esi, 0xff
lea eax, [esi - 1]
shr eax, 0x1f
not esi
shr esi, 0x1f
and eax, esi
neg eax
inc ebx
and ebx, eax
sub ebp, ebx
mov dword [ecx + 8], ebp
mov dword [esp + 0x24], eax
not eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
pop ebp
pop edi
and eax, 1
pop esi
or eax, edx
pop ebx
pop ecx
ret
Function at 0x1015a570
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xa8
call fcn.101cf170
mov eax, dword [0x10263fdc]
xor eax, esp
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 8]
push ebp
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x14], eax
sub eax, ebp
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0xc]
push esi
xor esi, esi
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
cmp eax, ebp
jb 0x1015a5c6
cmp ebp, 0x40
jbe 0x1015a5df
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.101ce9e2
add esp, 0xa8
ret
push ebx
lea ebx, [esp + 0x30]
neg ebx
and ebx, 0x3f
lea ecx, [ebp + 0x100]
lea ebx, [esp + ebx + 0x30]
mov dword [esp + 0x24], ebx
cmp eax, ecx
jbe 0x1015a606
sub eax, ebp
sub eax, 0x100
mov dword [esp + 0xc], eax
push edi
push ebp
push esi
push ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
call sub.MSVCR100.dll_memset
mov edi, dword [esp + 0x1c]
mov eax, edi
add esp, 0xc
xor ecx, ecx
cmp eax, dword [esp + 0x14]
jae 0x1015a6ba
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xc0]
sub eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x30], eax
jmp 0x1015a64a
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov edx, edi
xor edx, dword [esp + 0x24]
xor esi, ebx
lea eax, [edx - 1]
not edx
shr edx, 0x1f
shr eax, 0x1f
and eax, edx
mov edx, edi
xor edx, ebx
mov ebx, dword [esp + 0x28]
or esi, edx
neg eax
xor esi, edi
mov edx, eax
or edx, dword [esp + 0x1c]
shr esi, 0x1f
inc dword [esp + 0x10]
neg esi
and edx, esi
mov esi, dword [esp + 0x18]
and eax, ecx
mov dword [esp + 0x1c], edx
or esi, eax
mov eax, dword [esp + 0x30]
and dl, byte [eax + edi]
inc ecx
or byte [ecx + ebx - 1], dl
mov edx, ecx
sub edx, ebp
xor edx, ebp
mov eax, ecx
xor eax, ebp
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
inc edi
and ecx, edx
mov dword [esp + 0x18], esi
cmp edi, dword [esp + 0x14]
jb 0x1015a646
xor eax, eax
pop edi
test ebp, ebp
je 0x1015a6ee
mov ecx, esi
xor ecx, 0x20
mov dl, byte [ecx + ebx]
mov cl, byte [esi + ebx]
mov edx, dword [esp + 0x28]
mov byte [edx + eax], cl
inc esi
mov ecx, esi
sub ecx, ebp
xor ecx, ebp
mov edx, esi
xor edx, ebp
or ecx, edx
xor ecx, esi
shr ecx, 0x1f
neg ecx
inc eax
and esi, ecx
cmp eax, ebp
jb 0x1015a6c1
mov ecx, dword [esp + 0xb0]
pop ebx
pop esi
pop ebp
xor ecx, esp
mov eax, 1
call fcn.101ce9e2
add esp, 0xa8
ret
Function at 0x10175830
Capabilities:
Get common file path

Disassembly:
push ecx
push ebp
push esi
push str.kernel32
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
jne 0x1017584a
pop esi
pop ebp
pop ecx
ret
push ebx
push edi
push str.LoadLibraryExA
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, dword [esp + 0x18]
mov edi, eax
push 0x10238fe0
push ebx
mov dword [esp + 0x18], edi
call dword [sym.imp.MSVCR100.dll_strpbrk]
add esp, 8
test eax, eax
je 0x10175897
test edi, edi
je 0x10175888
push 8
push 0
push ebx
call edi
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
test edi, edi
je 0x101758bd
push str.AddDllDirectory
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x101758bd
push 0x800
push 0
push ebx
call edi
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov edi, eax
test edi, edi
je 0x10175970
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x101758d6
sub eax, edx
lea eax, [eax + edi + 1]
push eax
call dword [0x10263bac]
mov esi, eax
add esp, 4
test esi, esi
je 0x10175966
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x10175966
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10175904
sub eax, edx
mov ecx, 0x5c
mov word [eax + esi], cx
mov eax, esi
lea edx, [eax + 1]
jmp 0x10175920
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10175920
sub eax, edx
lea edx, [eax + esi]
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x10175930
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1017595d
push 8
push 0
push esi
call eax
push esi
mov ebp, eax
call dword [0x10263bb0]
add esp, 4
pop edi
pop ebx
pop esi
mov eax, ebp
pop ebp
pop ecx
ret
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, eax
push esi
call dword [0x10263bb0]
add esp, 4
pop edi
pop ebx
pop esi
mov eax, ebp
pop ebp
pop ecx
ret
Function at 0x10175980
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x194
mov eax, dword [0x10263fdc]
xor eax, esp
mov dword [esp + 0x190], eax
test byte [esp + 0x198], 2
je 0x101759df
lea eax, [esp]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x101759c5
mov eax, dword [esp]
cmp al, 2
jne 0x101759bf
shr eax, 8
cmp al, 2
je 0x101759df
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 2
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.101ce9e2
add esp, 0x194
ret
push str.iphlpapi.dll
call fcn.10175830
add esp, 4
mov dword [0x10267dbc], eax
test eax, eax
je 0x10175a0a
push str.if_nametoindex
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x10175a0a
mov dword [0x10267dc0], eax
push 3
push 2
push 0
push 6
call fcn.10189870
add esp, 0x10
neg eax
sbb eax, eax
neg eax
push 0x10269c20
mov dword [0x10269c28], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ecx, dword [esp + 0x190]
xor ecx, esp
xor eax, eax
call fcn.101ce9e2
add esp, 0x194
ret
Function at 0x1017ef40
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 0x1017ef83
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x2733
sete cl
mov dword [edx], 0
mov eax, ecx
neg eax
sbb eax, eax
and eax, 0x19
add eax, 0x38
ret
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
xor eax, eax
ret

Function at 0x1017f000
Capabilities:
Write file on windows

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
xor ebx, ebx
cmp dword [esi + 0x7b4], ebx
je 0x1017f09c
push edi
cmp dword [esi + 0x1d8], ebx
je 0x1017f056
push 1
push esi
call fcn.1017cbe0
mov eax, dword [esi + 0x16c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esi + 0x1d8]
push edx
push eax
push esi
call ecx
push ebx
push esi
mov edi, eax
call fcn.1017cbe0
add esp, 0x24
mov eax, edi
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x14]
test eax, eax
js 0x1017f096
cmp eax, 2
jg 0x1017f096
mov edx, dword [esi + 0x168]
mov edi, dword [sym.imp.MSVCR100.dll_fwrite]
push edx
push 1
lea eax, [eax + eax*2 + 0x10239b2c]
push 2
push eax
call edi
mov ecx, dword [esi + 0x168]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ecx
push 1
push edx
push eax
call edi
add esp, 0x20
pop edi
pop esi
mov eax, ebx
pop ebx
ret
pop esi
mov eax, ebx
pop ebx
ret

Function at 0x1017f190
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x108
mov eax, dword [0x10263fdc]
xor eax, esp
mov dword [esp + 0x104], eax
push esi
mov esi, dword [esp + 0x110]
cmp dword [esi + 0x7b4], 0
jne 0x1017f1c2
cmp dword [esi + 0x170], 0
je 0x1017f2b0
mov ecx, dword [esp + 0x114]
lea eax, [esp + 0x118]
push eax
push ecx
lea edx, [esp + 0xc]
push 0x100
push edx
call fcn.101889f0
lea eax, [esp + 0x14]
add esp, 0x10
lea edx, [eax + 1]
jmp 0x1017f1f0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1017f1f0
sub eax, edx
mov edx, dword [esi + 0x170]
push edi
mov edi, eax
test edx, edx
je 0x1017f227
cmp dword [esi + 0xe20], 0
jne 0x1017f227
lea ecx, [esp + 8]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x1017f213
mov dword [esi + 0xe20], 1
mov byte [esp + edi + 8], 0xa
inc edi
cmp dword [esi + 0x7b4], 0
je 0x1017f2af
cmp dword [esi + 0x1d8], 0
je 0x1017f281
push 1
push esi
call fcn.1017cbe0
mov eax, dword [esi + 0x16c]
mov edx, dword [esi + 0x1d8]
push eax
push edi
lea ecx, [esp + 0x18]
push ecx
push 0
push esi
call edx
push 0
push esi
call fcn.1017cbe0
add esp, 0x24
pop edi
pop esi
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.101ce9e2
add esp, 0x108
ret
mov eax, dword [esi + 0x168]
push ebx
mov ebx, dword [sym.imp.MSVCR100.dll_fwrite]
push eax
push 1
push 2
push 0x10239b2c
call ebx
mov ecx, dword [esi + 0x168]
push ecx
push 1
lea edx, [esp + 0x24]
push edi
push edx
call ebx
add esp, 0x20
pop ebx
pop edi
mov ecx, dword [esp + 0x108]
pop esi
xor ecx, esp
call fcn.101ce9e2
add esp, 0x108
ret