Function at 0x10004810
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x364
push esi
push edi
push 0x2b
pop eax
mov dword [ebp - 0x20], eax
lea edi, [ebp - 0x38]
mov dword [ebp - 0x1c], eax
xorps xmm1, xmm1
mov dword [ebp - 0x18], 0xf
mov esi, str.too_small
mov dword [ebp - 0x14], 0xffffffa4
xorps xmm2, xmm2
movups xmm0, xmmword [ebp - 0x20]
mov dword [ebp - 0x20], 0xea426651
movsd dword es:[edi], dword [esi]
psubd xmm1, xmm0
mov dword [ebp - 0x1c], 0x27fe16c5
movaps xmm0, xmm1
mov dword [ebp - 0x18], 0x8d903b6f
psrldq xmm0, 8
paddd xmm1, xmm0
movsd dword es:[edi], dword [esi]
movups xmm0, xmm1
mov dword [ebp - 0x14], 0xe1df80ee
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
movsw word es:[edi], word [esi]
add eax, 0xa
mov dword [ebp - 0x40], eax
mov eax, dword [0x100260c4]
xor eax, 0x20764b69
mov dword [ebp - 0x10], eax
xor eax, 0x11d1f7d0
mov dword [ebp - 0x28], eax
xor eax, eax
mov edi, eax
mov ecx, eax
mov byte [ebp + ecx - 0x198], cl
inc ecx
cmp ecx, 0x100
jb 0x100048a5
mov esi, eax
mov dword [ebp - 8], 9
xor edx, edx
mov cl, byte [ebp + esi - 0x198]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 8]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x38]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x198]
mov byte [ebp + esi - 0x198], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x198], al
cmp esi, 0x100
jb 0x100048be
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x198]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x198]
mov byte [ebp + edi - 0x198], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x198], cl
movzx eax, byte [ebp + edi - 0x198]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x84], al
inc esi
cmp esi, 0x10
jb 0x10004908
movzx eax, byte [str.StartFragment:00000000]
xor ecx, ecx
mov byte [ebp - 0x74], cl
mov esi, 0x1ba1
mov dword [ebp - 0x20], 0x2d
mov edx, str.StartFragment:00000000
mov dword [ebp - 0x1c], 0x32
mov dword [ebp - 0x18], 0x5d
mov dword [ebp - 0x14], 0xffffff4a
jmp 0x100049a2
add esi, eax
inc edx
cmp esi, 0x2530
ja 0x100049e9
movzx eax, byte [edx]
test eax, eax
jne 0x10004994
mov edi, dword [ebp - 0x10]
xor edi, 0x5c8b730a
mov esi, edi
mov edx, edi
push ecx
or esi, 0x8c897e9b
call fcn.100011ca
add esp, 4
mov dword [ebp - 8], 0x1fae
mov eax, str.X25519_Private_Key
push 0x58
pop edx
add dword [ebp - 8], edx
lea eax, [eax + 2]
cmp dword [ebp - 8], 0x3c9
ja 0x100049fe
movzx edx, word [eax]
test edx, edx
jne 0x100049d1
jmp 0x10004a04
call fcn.1000156a
imul edi, dword [ebp - 0x28], 0x91b1da6c
call fcn.1000102d
xor ecx, ecx
jmp 0x100049a9
and esi, 0x3933d98
imul edi, edi, 0x628d94cc
mov dl, byte [str.StartFragment:00000000]
sub esi, 0xa9598a5
mov byte [ebp - 1], dl
mov eax, ecx
test dl, dl
je 0x10004a55
inc eax
cmp eax, 0x56c
je 0x10004a4d
cmp byte [eax + str.StartFragment:00000000], 0
jne 0x10004a1f
cmp eax, 0x1cdc
jle 0x10004a55
push ecx
mov edx, edi
call fcn.100011ca
mov dl, byte [str.StartFragment:00000000]
add esp, 4
mov byte [ebp - 1], dl
jmp 0x10004a55
mov esi, edi
and esi, 0x999326a8
lea eax, [esi - 0x33a7723a]
mov dword [ebp - 0x10], eax
movups xmm0, xmmword [ebp - 0x20]
mov dword [ebp - 0x20], 0x3b19a619
mov esi, str.ec_pkey_check
movaps xmm1, xmm2
mov dword [ebp - 0x1c], 0x6563f08
psubd xmm1, xmm0
mov dword [ebp - 0x18], 0x1224984d
movaps xmm0, xmm1
mov dword [ebp - 0x14], 0x4026d06c
psrldq xmm0, 8
lea edi, [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
paddd xmm1, xmm0
movups xmm0, xmm1
mov dword [ebp - 0x28], ecx
psrldq xmm0, 4
paddd xmm1, xmm0
movsd dword es:[edi], dword [esi]
movd eax, xmm1
movsd dword es:[edi], dword [esi]
add eax, 7
mov dword [ebp - 0x44], eax
mov eax, ecx
mov dword [ebp - 8], eax
movsw word es:[edi], word [esi]
mov esi, dword [ebp - 0x10]
mov edi, str.StartFragment:00000000
test dl, dl
je 0x10004ae2
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x10004ad9
inc edi
mov al, byte [edi]
test al, al
jne 0x10004aca
jmp 0x10004adf
sub esi, 0x57dcd994
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x198], al
lea edi, [esi + 0x205a5c1d]
inc eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 8], eax
cmp eax, 0x100
jb 0x10004abf
mov dword [ebp - 0x10], esi
mov edi, ecx
mov esi, dword [ebp - 0x28]
xor edx, edx
mov dword [ebp - 0x28], 0xd
mov eax, edi
mov cl, byte [ebp + edi - 0x198]
div dword [ebp - 0x28]
mov byte [ebp - 9], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x3c]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x198]
mov byte [ebp + edi - 0x198], al
inc edi
mov al, byte [ebp - 9]
mov byte [ebp + esi - 0x198], al
cmp edi, 0x100
jb 0x10004b05
mov esi, dword [ebp - 0x10]
xor eax, eax
mov edi, dword [ebp - 0x2c]
mov ecx, eax
mov edx, eax
mov dword [ebp - 8], eax
lea eax, [edx + 1]
movzx eax, al
mov dword [ebp - 0x2c], eax
push 0x4a
pop edx
mov al, byte [ebp + eax - 0x198]
mov byte [ebp - 9], al
movzx eax, al
mov dword [ebp - 0x28], eax
add eax, ecx
movzx eax, al
mov ecx, str.JQhhQPll
mov dword [ebp - 0x10], eax
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x10004b9f
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x10004b85
jmp 0x10004ba7
mov edi, esi
xor edi, 0xf0019560
xor edi, 0x939cdb38
call fcn.1000156a
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2c]
mov al, byte [ebp + ecx - 0x198]
mov byte [ebp + edx - 0x198], al
mov al, byte [ebp - 9]
mov byte [ebp + ecx - 0x198], al
movzx eax, byte [ebp + edx - 0x198]
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
movzx eax, al
mov al, byte [ebp + eax - 0x198]
xor al, byte [ebp + ecx - 0x20]
mov byte [ebp + ecx - 0x98], al
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0x10
mov ecx, dword [ebp - 0x10]
jb 0x10004b5c
mov al, byte [ebp - 1]
mov ecx, str.StartFragment:00000000
jmp 0x10004c16
sub al, 0x30
cmp al, 9
ja 0x10004c1c
inc ecx
mov al, byte [ecx]
test al, al
jne 0x10004c0d
jmp 0x10004c22
lea esi, [edi - 0x468fe653]
call fcn.100016e3
xor eax, eax
or esi, 0x7b7f7a5c
push 0x4a
mov byte [ebp - 0x88], al
mov edi, eax
xor esi, 0x233e656b
mov ecx, str.JQhhQPll
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x10004c5f
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x10004c45
jmp 0x10004c65
sub esi, 0x59bae93f
call fcn.1000102d
or esi, 0x35075a
mov dword [ebp - 0x3c], 0xc
mov dword [ebp - 0x38], 0xb
xor eax, eax
mov dword [ebp - 0x34], 0xffffffe9
mov dword [0x10026034], esi
sub edi, dword [ebp + eax*4 - 0x3c]
inc eax
cmp eax, 3
jl 0x10004c8d
mov ecx, dword [ebp - 0x40]
lea edx, [ebp - 0x84]
imul eax, esi, 0x48c91231
mov dword [0x100260c4], eax
call fcn.1001ab39
call eax
lea ecx, [ebp - 0x364]
mov dword [ebp - 0x364], 0x10010
push ecx
mov ecx, dword [ebp - 0x44]
lea edx, [ebp - 0x98]
push eax
call fcn.1001ab39
call eax
test eax, eax
je 0x10004f9d
push 3
xor ecx, ecx
mov dword [ebp - 0x24], 0x14
pop esi
mov edx, ecx
mov dword [ebp - 0x20], 0x16
mov dword [ebp - 0x1c], esi
mov eax, ecx
mov dword [ebp - 0x18], 0x22
mov dword [ebp - 0x14], 0xffffffb1
sub edx, dword [ebp + eax*4 - 0x24]
inc eax
cmp eax, 5
jl 0x10004d04
mov dword [ebp - 0x44], edx
mov eax, ecx
mov edx, ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], 0x4f
mov dword [ebp - 0x34], 0xffffffae
sub edx, dword [ebp + eax*4 - 0x3c]
inc eax
cmp eax, esi
jl 0x10004d26
push 0x30
pop esi
push 9
pop eax
mov dword [ebp - 0x20], eax
mov eax, dword [0x100260c4]
or eax, 0xfd603fc4
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x1c], 2
mov edx, ecx
mov dword [ebp - 0x18], 0x2f
mov dword [ebp - 0x14], 0xffffff96
imul edi, eax, 0x43453aef
add esi, dword [ebp + edx*4 - 0x20]
inc edx
cmp edx, 4
jl 0x10004d62
mov dword [ebp - 0x20], 0x1b
xorps xmm2, xmm2
mov dword [ebp - 0x1c], 0x24
mov dword [ebp - 0x18], 0x37
mov dword [ebp - 0x14], 0xffffff74
movups xmm1, xmmword [ebp - 0x20]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x5c], 0x53
movaps xmm0, xmm1
mov dword [ebp - 0x58], 0x55
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x54], 0x62
movups xmm0, xmm1
mov dword [ebp - 0x50], 0x39
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x4c], 0xfffffebd
movd eax, xmm1
add eax, 0x16
mov dword [ebp - 0x28], eax
lea esi, [edi - 0x7ec49fd4]
mov ecx, str.JQhhQPll
push esi
push edi
call fcn.10001674
pop ecx
pop ecx
push 0x4a
mov ecx, str.JQhhQPll
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x10004e0d
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x10004df3
jmp 0x10004e13
sub esi, 0x2451c7a
imul edx, edi, 0xba0fc01
xor eax, eax
mov ecx, eax
mov edi, eax
sub edi, dword [ebp + ecx*4 - 0x5c]
inc ecx
cmp ecx, 5
jl 0x10004e1f
push 0xf
mov dword [ebp - 0x10], edi
pop edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x41
mov dword [ebp - 0x18], 0x14
mov dword [ebp - 0x14], 0xffffff4f
movups xmm0, xmmword [ebp - 0x20]
mov dword [ebp - 0x70], 0x30
mov dword [ebp - 0x6c], 0x38
paddd xmm2, xmm0
mov dword [ebp - 0x68], 0x64
movaps xmm0, xmm2
mov dword [ebp - 0x64], 2
psrldq xmm0, 8
paddd xmm2, xmm0
mov dword [ebp - 0x60], 0xffffff40
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd ecx, xmm2
add ecx, 0x4d
mov dword [ebp - 8], ecx
sub edi, dword [ebp + eax*4 - 0x70]
inc eax
cmp eax, 5
jl 0x10004e94
push 0x4a
mov dword [ebp - 0x48], edi
or edx, 0x63888bc3
mov ecx, str.JQhhQPll
pop edi
lea eax, [edi - 0x30]
push 9
pop edi
cmp ax, di
ja 0x10004ec9
add ecx, 2
movzx eax, word [ecx]
mov edi, eax
test ax, ax
jne 0x10004eaf
jmp 0x10004ecf
sub esi, 0x9fa019d
imul edi, edx, 0x404a0006
call fcn.1000189a
xor eax, eax
cmp byte [str.StartFragment:00000000], al
je 0x10004f0d
inc eax
cmp eax, 0x1b1e
je 0x10004ef7
cmp byte [eax + str.StartFragment:00000000], 0
jne 0x10004ee4
jmp 0x10004f0d
push esi
push esi
mov ecx, str.JQhhQPll
call fcn.10001674
pop ecx
mov edi, esi
pop ecx
xor edi, 0xe545fa5f
imul eax, edi, 0x4ed66e85
mov dword [0x100260c4], eax
imul ecx, eax, 0xcbe5da69
push ecx
push str.StartFragment:00000000
mov edx, ecx
mov dword [0x10026034], ecx
call fcn.10001c3e
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x3c], 0x2a
mov dword [ebp - 0x38], 0x1b
mov ecx, eax
mov dword [ebp - 0x34], 0xffffffbb
sub eax, dword [ebp + ecx*4 - 0x3c]
inc ecx
cmp ecx, 3
jl 0x10004f4c
mov ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x360], ecx
jne 0x10004f98
mov ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x35c], ecx
jne 0x10004f98
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x358], ecx
jne 0x10004f98
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x354], ecx
jne 0x10004f98
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x350], ecx
jne 0x10004f98
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x34c], ecx
je 0x10004f9f
mov eax, dword [ebp - 0x48]
jmp 0x10004f9f
mov eax, edi
pop edi
pop esi
leave
ret