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

Disassembly:
mov eax, 0x28
call fcn.00490990
mov eax, dword [0x84dfc0]
xor eax, esp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
push ebp
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x4c]
movzx edx, byte [edi + 1]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edi]
shl edx, 8
or ecx, edx
lea eax, [edi + 1]
movzx edx, byte [eax + 1]
mov dword [esp + 0x28], eax
inc eax
inc eax
shl edx, 0x10
or ecx, edx
movzx edx, byte [eax]
inc eax
movzx ebx, byte [eax + 1]
shl edx, 0x18
or ecx, edx
movzx edx, byte [eax]
inc eax
mov ebp, dword [esp + 0x40]
inc eax
shl ebx, 8
or edx, ebx
movzx ebx, byte [eax + 1]
movzx eax, byte [eax]
shl ebx, 8
or ebx, eax
mov eax, ecx
shr eax, 8
shl ebx, 0x10
or edx, ebx
mov byte [esp + 0x2d], al
mov eax, ecx
mov ebx, ecx
mov byte [esp + 0x2c], cl
shr eax, 0x10
shr ecx, 0x18
mov byte [esp + 0x2e], al
mov byte [esp + 0x2f], cl
mov ecx, edx
mov eax, edx
mov dword [esp + 0x20], edx
mov byte [esp + 0x30], dl
shr ecx, 8
shr eax, 0x10
shr edx, 0x18
cmp dword [esp + 0x44], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x31], cl
mov byte [esp + 0x32], al
mov byte [esp + 0x33], dl
je 0x57599a
dec dword [esp + 0x18]
test esi, esi
jne 0x57590a
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00574d90
mov ebx, dword [esp + 0x24]
mov eax, ebx
shr eax, 8
mov ecx, ebx
shr ecx, 0x10
mov edx, ebx
shr edx, 0x18
mov byte [esp + 0x35], al
mov eax, dword [esp + 0x28]
mov byte [esp + 0x36], cl
mov byte [esp + 0x37], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x38], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
add esp, 8
inc dword [esp + 0x10]
mov byte [esp + 0x2c], bl
mov byte [esp + 0x31], cl
mov byte [esp + 0x32], dl
mov byte [esp + 0x33], al
mov cl, byte [esp + esi + 0x2c]
mov eax, dword [esp + 0x3c]
xor cl, byte [eax]
inc esi
mov byte [ebp], cl
inc eax
inc ebp
and esi, 7
cmp dword [esp + 0x18], 0
mov dword [esp + 0x3c], eax
jne 0x5758a8
cmp dword [esp + 0x10], 0
je 0x575981
mov eax, dword [esp + 0x28]
mov byte [edi], bl
mov edx, ebx
shr edx, 8
mov byte [eax], dl
inc eax
mov ecx, ebx
shr ecx, 0x10
mov byte [eax], cl
mov ecx, dword [esp + 0x20]
inc eax
shr ebx, 0x18
mov byte [eax], bl
mov byte [eax + 1], cl
inc eax
inc eax
mov edx, ecx
shr edx, 8
mov byte [eax], dl
inc eax
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
shr ecx, 0x18
mov byte [eax + 1], cl
mov eax, dword [esp + 0x14]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
mov ecx, dword [esp + 0x14]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
pop edi
mov dword [edx], esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
Function at 0x5759c0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov eax, dword [esp + 8]
cmp eax, 0x80
push ebx
push esi
push edi
mov edi, dword [esp + 0x10]
mov byte [edi], 0
jle 0x5759da
mov eax, 0x80
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x5759ea
cmp ecx, 0x400
jle 0x5759ef
mov ecx, 0x400
test eax, eax
jle 0x575a0c
mov esi, dword [esp + 0x18]
push ebp
mov edx, edi
sub esi, edi
mov ebp, eax
mov edi, edi
mov bl, byte [esi + edx]
mov byte [edx], bl
inc edx
sub ebp, 1
jne 0x575a00
pop ebp
cmp eax, 0x80
movzx edx, byte [edi + eax - 1]
jge 0x575a3e
mov esi, edi
sub esi, eax
lea esp, [esp]
movzx ebx, byte [esi + eax]
add ebx, edx
and ebx, 0xff
movzx edx, byte [ebx + 0x7c6318]
mov byte [eax + edi], dl
inc eax
cmp eax, 0x80
jl 0x575a20
lea edx, [ecx + 7]
neg ecx
sar edx, 3
mov eax, 0x80
and ecx, 7
sub eax, edx
lea esi, [eax + edi]
mov ebx, 0xff
sar ebx, cl
movzx ecx, byte [esi]
and ebx, ecx
movzx ecx, byte [ebx + 0x7c6318]
mov byte [esi], cl
test eax, eax
je 0x575a86
lea esp, [esp]
movzx ebx, byte [esi + edx - 1]
dec esi
xor ebx, ecx
movzx ecx, byte [ebx + 0x7c6318]
dec eax
mov byte [esi], cl
test eax, eax
jne 0x575a70
lea ecx, [edi + 0xfc]
lea eax, [edi + 0x7e]
mov edx, 0x40
movzx esi, byte [eax + 1]
movzx edi, byte [eax]
shl esi, 8
or esi, edi
and esi, 0xffff
mov dword [ecx], esi
sub ecx, 4
sub eax, 2
sub edx, 1
jne 0x575a94
pop edi
pop esi
pop ebx
ret

Function at 0x575ac0
Capabilities:
Encode data using xor

Disassembly:
cmp dword [esp + 0x18], 0
je 0x575ad4
mov dword [esp + 0x18], fcn.00576660
jmp fcn.0056cc10
mov dword [esp + 0x18], fcn.00577420
jmp fcn.0056cdb0
Function at 0x578fe0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 0x28
call fcn.00490990
mov eax, dword [0x84dfc0]
xor eax, esp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
push ebx
push ebp
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x4c]
movzx edx, byte [edi + 1]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edi]
lea eax, [edi + 1]
mov dword [esp + 0x28], eax
inc eax
inc eax
shl edx, 0x10
shl ecx, 0x18
or ecx, edx
movzx edx, byte [eax - 1]
inc eax
movzx ebx, byte [eax + 1]
shl edx, 8
inc eax
or ecx, edx
movzx edx, byte [eax - 2]
or ecx, edx
movzx edx, byte [eax - 1]
inc eax
shl ebx, 0x10
shl edx, 0x18
or edx, ebx
movzx ebx, byte [eax]
movzx eax, byte [eax + 1]
shl ebx, 8
or ebx, eax
mov ebp, dword [esp + 0x40]
mov eax, ecx
shr eax, 0x18
mov byte [esp + 0x2c], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x2d], al
or edx, ebx
mov eax, ecx
shr eax, 8
mov byte [esp + 0x2e], al
mov eax, edx
shr eax, 0x18
mov byte [esp + 0x30], al
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x31], al
mov eax, edx
shr eax, 8
cmp dword [esp + 0x44], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov byte [esp + 0x2f], cl
mov byte [esp + 0x32], al
mov byte [esp + 0x33], dl
je 0x5791ac
mov ebx, dword [esp + 0x3c]
dec dword [esp + 0x18]
test esi, esi
jne 0x579124
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.00578290
mov ecx, dword [esp + 0x24]
mov eax, ecx
shr eax, 0x18
mov byte [esp + 0x34], al
mov edx, ecx
shr edx, 0x10
mov eax, ecx
shr eax, 8
mov byte [esp + 0x36], al
mov byte [esp + 0x35], dl
mov edx, dword [esp + 0x28]
mov eax, edx
shr eax, 0x18
mov byte [esp + 0x38], al
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x39], al
mov eax, edx
shr eax, 8
add esp, 8
inc dword [esp + 0x10]
mov byte [esp + 0x2f], cl
mov byte [esp + 0x32], al
mov byte [esp + 0x33], dl
mov al, byte [esp + esi + 0x2c]
xor al, byte [ebx]
inc esi
mov byte [ebp], al
inc ebp
inc ebx
and esi, 7
cmp dword [esp + 0x18], 0
jne 0x5790c0
cmp dword [esp + 0x10], 0
je 0x579193
mov eax, ecx
shr eax, 0x18
mov byte [edi], al
mov eax, dword [esp + 0x28]
mov ebx, ecx
shr ebx, 0x10
mov byte [eax], bl
mov ebx, ecx
inc eax
shr ebx, 8
mov byte [eax], bl
mov byte [eax + 1], cl
inc eax
inc eax
mov ecx, edx
shr ecx, 0x18
mov byte [eax], cl
mov ecx, edx
inc eax
shr ecx, 0x10
mov byte [eax], cl
inc eax
mov ecx, edx
shr ecx, 8
mov byte [eax], cl
mov byte [eax + 1], dl
mov edx, dword [esp + 0x14]
pop edi
mov dword [edx], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
mov eax, dword [esp + 0x14]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
mov ecx, dword [esp + 0x14]
pop edi
mov dword [ecx], esi
mov ecx, dword [esp + 0x30]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
Function at 0x57a6d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 0x28
call fcn.00490990
mov eax, dword [0x84dfc0]
xor eax, esp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
push ebp
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x4c]
movzx edx, byte [edi + 1]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edi]
shl edx, 8
or ecx, edx
lea eax, [edi + 1]
movzx edx, byte [eax + 1]
mov dword [esp + 0x28], eax
inc eax
inc eax
shl edx, 0x10
or ecx, edx
movzx edx, byte [eax]
inc eax
movzx ebx, byte [eax + 1]
shl edx, 0x18
or ecx, edx
movzx edx, byte [eax]
inc eax
mov ebp, dword [esp + 0x40]
inc eax
shl ebx, 8
or edx, ebx
movzx ebx, byte [eax + 1]
movzx eax, byte [eax]
shl ebx, 8
or ebx, eax
mov eax, ecx
shr eax, 8
shl ebx, 0x10
or edx, ebx
mov byte [esp + 0x2d], al
mov eax, ecx
mov ebx, ecx
mov byte [esp + 0x2c], cl
shr eax, 0x10
shr ecx, 0x18
mov byte [esp + 0x2e], al
mov byte [esp + 0x2f], cl
mov ecx, edx
mov eax, edx
mov dword [esp + 0x20], edx
mov byte [esp + 0x30], dl
shr ecx, 8
shr eax, 0x10
shr edx, 0x18
cmp dword [esp + 0x44], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x31], cl
mov byte [esp + 0x32], al
mov byte [esp + 0x33], dl
je 0x57a8a0
dec dword [esp + 0x18]
test esi, esi
jne 0x57a80c
mov ecx, dword [esp + 0x24]
push 1
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.0053e0d0
mov ebx, dword [esp + 0x28]
mov eax, ebx
shr eax, 8
mov ecx, ebx
shr ecx, 0x10
mov edx, ebx
shr edx, 0x18
mov byte [esp + 0x39], al
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x3a], cl
mov byte [esp + 0x3b], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x3c], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
add esp, 0xc
inc dword [esp + 0x10]
mov byte [esp + 0x2c], bl
mov byte [esp + 0x31], cl
mov byte [esp + 0x32], dl
mov byte [esp + 0x33], al
mov cl, byte [esp + esi + 0x2c]
mov eax, dword [esp + 0x3c]
xor cl, byte [eax]
inc esi
mov byte [ebp], cl
inc eax
inc ebp
and esi, 7
cmp dword [esp + 0x18], 0
mov dword [esp + 0x3c], eax
jne 0x57a7a8
cmp dword [esp + 0x10], 0
je 0x57a887
mov eax, dword [esp + 0x28]
mov byte [edi], bl
mov edx, ebx
shr edx, 8
mov byte [eax], dl
inc eax
mov ecx, ebx
shr ecx, 0x10
mov byte [eax], cl
mov ecx, dword [esp + 0x20]
inc eax
shr ebx, 0x18
mov byte [eax], bl
mov byte [eax + 1], cl
inc eax
inc eax
mov edx, ecx
shr edx, 8
mov byte [eax], dl
inc eax
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
shr ecx, 0x18
mov byte [eax + 1], cl
mov eax, dword [esp + 0x14]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
mov ecx, dword [esp + 0x14]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
pop edi
mov dword [edx], esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0048d1f2
add esp, 0x28
ret
Function at 0x57d920
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x18
call fcn.00490990
mov eax, dword [0x84dfc0]
xor eax, esp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2c]
push ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0xc], eax
test edx, edx
jle 0x57d9b3
mov eax, dword [esp + 0x28]
push ebx
push esi
push edi
mov esi, eax
lea edi, [esp + 0x1c]
mov ebx, ecx
sub esi, edi
sub ebx, eax
mov dword [esp + 0x10], edx
mov edi, edi
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
push ebp
call fcn.0057c6a0
add esp, 0xc
xor ecx, ecx
lea edi, [esi + ebx]
jmp 0x57d990
lea edx, [esp + ecx + 0x1c]
mov al, byte [esi + edx]
xor al, byte [edx]
inc ecx
cmp ecx, 8
mov byte [esp + ecx + 0x13], al
mov byte [edi + edx], al
jl 0x57d990
add esi, 8
sub dword [esp + 0x10], 1
jne 0x57d970
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
pop ebp
xor ecx, esp
call fcn.0048d1f2
add esp, 0x18
ret
Function at 0x57ecf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x70
call fcn.00490990
mov eax, dword [0x84dfc0]
xor eax, esp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
push ebx
mov ebx, dword [esp + 0x78]
mov edx, dword [ebx + 4]
push ebp
mov ebp, dword [ebx]
push esi
push edi
lea esi, [ebx + 0x10]
mov ecx, 8
lea edi, [esp + 0x5c]
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x30]
mov ecx, 8
lea edi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
test ecx, ecx
je 0x57edfa
xor eax, eax
push ecx
lea ecx, [ebx + 0x50]
push ecx
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
call fcn.004909c0
mov eax, dword [ebx + 8]
push eax
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x6c]
call fcn.0057e520
add esp, 0x10
xor ecx, ecx
xor eax, eax
mov edi, edi
movzx esi, byte [esp + eax + 0x1c]
movzx edx, byte [esp + eax + 0x3c]
add esi, ecx
movzx ecx, byte [esp + eax + 0x1d]
add edx, esi
mov byte [esp + eax + 0x3c], dl
sar edx, 8
add ecx, edx
movzx edx, byte [esp + eax + 0x3d]
add ecx, edx
movzx edx, byte [esp + eax + 0x1e]
mov byte [esp + eax + 0x3d], cl
sar ecx, 8
add edx, ecx
movzx ecx, byte [esp + eax + 0x3e]
add edx, ecx
movzx ecx, byte [esp + eax + 0x1f]
mov byte [esp + eax + 0x3e], dl
sar edx, 8
add ecx, edx
movzx edx, byte [esp + eax + 0x3f]
add ecx, edx
mov byte [esp + eax + 0x3f], cl
add eax, 4
sar ecx, 8
cmp eax, 0x20
jl 0x57ed90
mov eax, dword [ebx + 0xc]
cdq
add ebp, eax
adc dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
xor eax, eax
shld edx, ebp, 3
add ebp, ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea esi, [esp + 0x1c]
mov eax, ebp
test edx, edx
jl 0x57ee4a
jg 0x57ee36
test eax, eax
jbe 0x57ee4a
mov byte [esi], al
mov cl, 8
inc esi
call fcn.006d0430
test edx, edx
jg 0x57ee36
jl 0x57ee4a
test eax, eax
ja 0x57ee36
mov eax, dword [ebx + 8]
push eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x60]
call fcn.0057e520
mov ecx, dword [ebx + 8]
push ecx
lea edx, [esp + 0x44]
lea ecx, [esp + 0x64]
call fcn.0057e520
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, 8
lea esi, [esp + 0x5c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.0048d1f2
add esp, 0x70
ret
Function at 0x5849b0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
push ebx
mov ebx, dword [esp + 0x10]
cmp ecx, dword [ebx + 4]
push esi
push edi
jge 0x5849c9
mov esi, ebx
mov ebx, eax
jmp 0x5849cb
mov esi, eax
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 8]
jg 0x5849db
mov eax, edi
jmp 0x5849e5
push eax
push edi
call fcn.00502160
add esp, 8
test eax, eax
jne 0x5849ed
pop edi
pop esi
pop ebx
ret
xor eax, eax
cmp dword [ebx + 4], eax
jle 0x584a09
mov edx, dword [esi]
mov ecx, dword [ebx]
mov edx, dword [edx + eax*4]
xor edx, dword [ecx + eax*4]
mov ecx, dword [edi]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [ebx + 4]
jl 0x5849f4
cmp eax, dword [esi + 4]
jge 0x584a20
mov edi, edi
mov edx, dword [esi]
mov edx, dword [edx + eax*4]
mov ecx, dword [edi]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, dword [esi + 4]
jl 0x584a10
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
test eax, eax
jle 0x584a41
mov ecx, dword [edi]
lea ecx, [ecx + eax*4 - 4]
mov edx, dword [ecx]
sub ecx, 4
test edx, edx
jne 0x584a3e
dec eax
test eax, eax
jg 0x584a30
mov dword [edi + 4], eax
cmp dword [edi + 4], 0
jne 0x584a4e
mov dword [edi + 0xc], 0
pop edi
pop esi
mov eax, 1
pop ebx
ret
Function at 0x584cc0
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, 4
call fcn.00490990
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
xor ebp, ebp
push ebx
mov dword [esp + 0x10], ebp
call fcn.0053a360
push ebx
call fcn.0053a3f0
mov esi, eax
add esp, 8
test esi, esi
je 0x584ef1
push edi
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 4]
add eax, eax
cmp eax, dword [esi + 8]
jg 0x584d03
mov eax, esi
jmp 0x584d0d
push eax
push esi
call fcn.00502160
add esp, 8
test eax, eax
je 0x584ef0
mov ecx, dword [edi + 4]
sub ecx, 1
js 0x584ea4
mov eax, dword [edi]
mov eax, dword [eax + ecx*4]
mov edx, eax
shr edx, 1
and edx, 0x8000
mov ebp, eax
and ebp, 0x20000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x40000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x80000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x100000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x200000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x400000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x800000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x1000000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x2000000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x4000000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x8000000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x10000000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x20000000
or edx, ebp
shr edx, 1
mov ebp, eax
and ebp, 0x40000000
or edx, ebp
shr edx, 1
and eax, reloc.WS2_32.dll_accept
or edx, eax
mov eax, dword [esi]
shr edx, 1
mov dword [eax + ecx*8 + 4], edx
mov edx, dword [edi]
mov eax, dword [edx + ecx*4]
mov edx, eax
and edx, 0x8000
add edx, edx
mov ebp, eax
and ebp, 0x4000
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x2000
or edx, ebp
mov ebp, eax
add edx, edx
and ebp, 0x1000
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x800
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x400
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x200
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x100
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x80
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x40
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x20
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 0x10
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 8
or edx, ebp
add edx, edx
mov ebp, eax
and ebp, 4
or edx, ebp
mov ebp, eax
add edx, edx
and ebp, 2
or edx, ebp
and eax, 1
add edx, edx
or edx, eax
sub ecx, 1
mov eax, dword [esi]
mov dword [eax + ecx*8 + 8], edx
jns 0x584d21
mov ebp, dword [esp + 0x10]
mov eax, dword [edi + 4]
add eax, eax
mov dword [esi + 4], eax
test eax, eax
jle 0x584ec7
mov ecx, dword [esi]
lea ecx, [ecx + eax*4 - 4]
mov edx, dword [ecx]
sub ecx, 4
test edx, edx
jne 0x584ec4
dec eax
test eax, eax
jg 0x584eb6
mov dword [esi + 4], eax
cmp dword [esi + 4], 0
jne 0x584ed4
mov dword [esi + 0xc], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push eax
push esi
push ecx
call fcn.00584a60
add esp, 0xc
test eax, eax
je 0x584ef0
mov ebp, 1
pop edi
push ebx
call fcn.0053a3b0
add esp, 4
pop esi
mov eax, ebp
pop ebp
pop ebx
pop ecx
ret
Function at 0x5af280
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xc
call fcn.00490990
push ebp
push esi
mov esi, dword [esp + 0x54]
push edi
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x10]
push ecx
xor ebp, ebp
push ebp
xor edi, edi
call fcn.00596ea0
add esp, 0xc
test eax, eax
je 0x5af2dc
lea esp, [esp]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
shl edx, 0xa
test eax, edx
je 0x5af2c0
inc edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x10]
push edx
inc ebp
push ebp
call fcn.00596ea0
add esp, 0xc
test eax, eax
jne 0x5af2b0
test edi, edi
jne 0x5af300
push 0x109
push str.._ssl_t1_enc.c
push 0x44
push 0x11c
push 0x14
call fcn.004f6240
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xc
ret
mov eax, dword [esp + 0x4c]
cdq
idiv edi
push ebx
mov ebx, eax
cmp edi, 1
jne 0x5af317
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x4c]
push esi
push 0
push eax
call fcn.0048d310
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
push 0
mov dword [esp + 0x30], 0
call fcn.00596ea0
add esp, 0x18
test eax, eax
je 0x5af3ff
lea esp, [esp]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
shl eax, 0xa
test ecx, eax
je 0x5af3db
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5af40c
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push esi
push ebp
push edx
mov edx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x5c]
and edx, 1
add edx, ebx
push edx
mov edx, dword [esp + 0x68]
push edi
push eax
call fcn.005aee80
add esp, 0x34
test eax, eax
je 0x5af42a
add edi, ebx
test esi, esi
jle 0x5af3db
mov eax, dword [esp + 0x54]
mov ecx, ebp
sub ecx, eax
mov ebp, esi
lea esp, [esp]
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
sub ebp, 1
jne 0x5af3d0
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x14]
inc eax
push edx
push eax
mov dword [esp + 0x24], eax
call fcn.00596ea0
add esp, 0xc
test eax, eax
jne 0x5af350
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0xc
ret
push 0x114
push str.._ssl_t1_enc.c
push 0x146
push 0x11c
push 0x14
call fcn.004f6240
add esp, 0x14
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xc
ret
Function at 0x5b15e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.00490990
push ebp
mov ebp, dword [esp + 0x18]
push esi
push edi
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x64]
inc ebp
test byte [ecx + 0x38], 1
je 0x5b1628
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 4]
lea edx, [ecx + ebp]
cmp edx, eax
jbe 0x5b161b
pop edi
pop esi
xor eax, eax
pop ebp
pop ecx
ret
add dword [esi + 0xc], ecx
add dword [esi + 0x10], ecx
sub eax, ecx
mov dword [esi + 4], eax
jmp 0x5b1633
mov eax, dword [esp + 0x18]
cmp ebp, dword [eax + 4]
ja 0x5b1614
mov esi, eax
test dword [edi + 0x100], 0x200
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
push ebx
movzx ebx, byte [ecx + edx - 1]
je 0x5b1686
cmp dword [edi + 0x88], 0
jne 0x5b1686
mov eax, dword [edi + 0x58]
push 8
add eax, 8
push 0x7d309c
push eax
call fcn.0050b4f0
add esp, 0xc
test eax, eax
jne 0x5b1679
test bl, 1
jne 0x5b1679
mov eax, dword [edi + 0x58]
or dword [eax], 8
mov ecx, dword [edi + 0x58]
test byte [ecx], 8
je 0x5b1686
test ebx, ebx
jbe 0x5b1686
dec ebx
mov edx, dword [edi + 0x80]
mov eax, dword [edx]
push eax
call fcn.0052c630
add esp, 4
test eax, 0x200000
je 0x5b16b1
or ecx, 0xffffffff
sub ecx, ebx
add dword [esi + 4], ecx
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
pop ecx
ret
mov edi, dword [esi + 4]
lea eax, [ebx + ebp]
mov esi, edi
sub esi, eax
xor esi, eax
mov edx, edi
xor edx, eax
or esi, edx
xor esi, edi
shr esi, 0x1f
mov ecx, 0xff
lea eax, [edi - 1]
dec esi
mov dword [esp + 0x18], ecx
cmp eax, ecx
jae 0x5b16df
mov ecx, eax
mov dword [esp + 0x18], eax
xor ebp, ebp
test ecx, ecx
jbe 0x5b1737
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0xc]
mov ecx, ebx
shr ecx, 0x1f
lea eax, [edi + edx - 1]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
lea ecx, [ecx]
mov edx, ebx
sub edx, ebp
shr edx, 0x1f
mov eax, ebp
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 ebp
and esi, eax
cmp ebp, dword [esp + 0x18]
jb 0x5b1700
mov edx, dword [esp + 0x1c]
not esi
and esi, 0xff
lea ecx, [esi - 1]
shr ecx, 0x1f
not esi
shr esi, 0x1f
and ecx, esi
neg ecx
lea eax, [ebx + 1]
and eax, ecx
sub edi, eax
shl eax, 8
or dword [edx], eax
pop ebx
mov dword [edx + 4], edi
mov eax, ecx
pop edi
and eax, 1
not ecx
pop esi
or eax, ecx
pop ebp
pop ecx
ret