Function at 0x407f50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, edx
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
xor esi, esi
lea edx, [eax + edx*2]
movzx ebx, byte [eax + 1]
cmp byte [eax], ch
lea eax, [eax + 2]
lea edi, [esi + ebx]
jne 0x407fa0
cmp esi, edi
ja 0x408008
cmp edi, dword [esp + 0x1c]
ja 0x408016
add esi, dword [esp + 0x18]
nop word [eax + eax]
test ebx, ebx
je 0x407fa2
dec ebx
cmp byte [esi], cl
lea esi, [esi + 1]
jne 0x407f90
jmp 0x407fff
ja 0x407fa8
cmp eax, edx
mov esi, edi
jne 0x407f63
mov edi, dword [esp + 0x24]
movzx ecx, cx
mov al, 1
add edi, ebp
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, byte [ebp]
lea esi, [ebp + 1]
test dl, dl
js 0x407fe0
mov ebp, esi
sub ecx, edx
jns 0x407ff7
jmp 0x408001
cmp esi, edi
je 0x408026
movzx esi, byte [ebp + 1]
and edx, 0x7f
add ebp, 2
shl edx, 8
or edx, esi
sub ecx, edx
js 0x408001
xor al, 1
cmp ebp, edi
jne 0x407fc0
jmp 0x408001
xor eax, eax
and al, 1
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
mov edx, edi
push 0x4ef9d8
call fcn.004e8bc0
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0x4ef9d8
call fcn.004e89d0
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x4ef9c8
call fcn.004e8a30
int3

Function at 0x40938e
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov esi, dword [esp + 0x18]
mov eax, ecx
not eax
cmp esi, 0x40
jb 0x4094af
add edx, 0x10
xor ecx, ecx
mov edi, 0xff
cmp esi, 0xf
jbe 0x4094d2
movzx ebx, byte [edx - 2]
movzx ebp, byte [edx - 1]
mov dword [esp], esi
mov esi, ecx
mov ecx, eax
shr ecx, 0x18
mov ebx, dword [ebx*4 + 0x4f07b8]
xor ebx, dword [ebp*4 + 0x4f03b8]
movzx ebp, byte [edx - 3]
xor ebx, dword [ebp*4 + 0x4f0bb8]
movzx ebp, byte [edx - 4]
xor ebx, dword [ebp*4 + 0x4f0fb8]
movzx ebp, byte [edx - 5]
xor ebx, dword [ebp*4 + 0x4f13b8]
movzx ebp, byte [edx - 6]
xor ebx, dword [ebp*4 + 0x4f17b8]
movzx ebp, byte [edx - 7]
xor ebx, dword [ebp*4 + 0x4f1bb8]
movzx ebp, byte [edx - 8]
xor ebx, dword [ebp*4 + 0x4f1fb8]
movzx ebp, byte [edx - 9]
xor ebx, dword [ebp*4 + 0x4f23b8]
movzx ebp, byte [edx - 0xa]
xor ebx, dword [ebp*4 + 0x4f27b8]
movzx ebp, byte [edx - 0xb]
xor ebx, dword [ebp*4 + 0x4f2bb8]
movzx ebp, byte [edx - 0xc]
xor ebx, dword [ebp*4 + 0x4f2fb8]
movzx ebp, byte [edx - 0xd]
xor ecx, ebp
mov ebp, eax
xor ebx, dword [ecx*4 + 0x4f33b8]
movzx ecx, byte [edx - 0xe]
shr ebp, 0x10
and ebp, edi
xor ebp, ecx
movzx ecx, byte [edx - 0xf]
xor ebx, dword [ebp*4 + 0x4f37b8]
mov ebp, eax
and eax, edi
shr ebp, 8
and ebp, edi
xor ebp, ecx
movzx ecx, byte [edx - 0x10]
xor ebx, dword [ebp*4 + 0x4f3bb8]
mov ebp, eax
xor ebp, ecx
mov ecx, esi
mov esi, dword [esp]
mov eax, ebx
inc ecx
xor eax, dword [ebp*4 + 0x4f3fb8]
cmp ecx, 4
lea ebx, [esi - 0x10]
jne 0x4094a2
xor ecx, ecx
cmp ebx, 0x3f
jbe 0x4094ac
add edx, 0x10
mov esi, ebx
jmp 0x4093ae
add esi, 0xfffffff0
test esi, esi
je 0x4094c8
mov bl, byte [edx]
inc edx
xor bl, al
shr eax, 8
movzx ecx, bl
xor eax, dword [ecx*4 + 0x4f03b8]
dec esi
jne 0x4094b3
not eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0xf
mov edx, esi
push 0x4f03a8
call fcn.004e8970