Function at 0x47f7f0
Capabilities:
Encode data using xor
Encrypt data using curve25519
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
mov esi, 1
push ebx
sub esp, 0x25c
mov dword [esp + 0x54], eax
mov eax, edx
mov edx, ecx
mov ecx, dword [eax]
lea edi, [esp + 0xa0]
lea ebp, [esp + 0xc8]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 4]
and byte [esp + 0x58], 0xf8
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
shr eax, 0x18
and eax, 0x7f
mov ebx, eax
or ebx, 0x40
lea eax, [esp + 0x78]
mov byte [esp + 0x77], bl
call fcn.0047c930
mov edx, dword [esp + 0x78]
xor eax, eax
mov ecx, 0xa
rep stosd dword es:[edi], eax
mov edi, ebp
mov dword [esp + 0xa0], 1
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x50], 0xfe
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x80]
mov cl, 0xa
rep stosd dword es:[edi], eax
lea edi, [esp + 0x118]
mov dword [esp + 0xf8], edx
mov edx, dword [esp + 0x84]
mov cl, 0xa
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0x88]
rep stosd dword es:[edi], eax
mov edi, 1
mov dword [esp + 0x118], 1
mov dword [esp + 0x100], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x104], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x114], edx
mov edx, ebx
xor ebx, ebx
movzx ecx, dl
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
and ecx, 7
sar dword [esp + 4], cl
and dword [esp + 4], 1
xor eax, dword [esp + 4]
mov ecx, eax
xor eax, eax
neg ecx
jmp 0x47f95a
mov edi, dword [esp + eax*4 + 0xa0]
mov edx, dword [esp + eax*4 + 0xf0]
xor edx, edi
and edx, ecx
xor edi, edx
xor dword [esp + eax*4 + 0xf0], edx
mov dword [esp + eax*4 + 0xa0], edi
add eax, 1
cmp eax, 0xa
jne 0x47f953
xor eax, eax
jmp 0x47f98c
mov ebx, dword [ebp + eax*4]
mov esi, dword [esp + eax*4 + 0x118]
mov edx, esi
xor edx, ebx
and edx, ecx
xor ebx, edx
xor edx, esi
mov dword [ebp + eax*4], ebx
mov dword [esp + eax*4 + 0x118], edx
add eax, 1
cmp eax, 0xa
jne 0x47f981
lea ecx, [esp + 0x118]
lea edx, [esp + 0xf0]
lea eax, [esp + 0x208]
call fcn.0047ce60
mov ecx, ebp
lea edx, [esp + 0xa0]
lea eax, [esp + 0x230]
call fcn.0047ce60
mov ecx, ebp
lea edx, [esp + 0xa0]
lea eax, [esp + 0x190]
call fcn.0047cd80
lea ecx, [esp + 0x118]
lea edx, [esp + 0xf0]
lea eax, [esp + 0x1b8]
call fcn.0047cd80
lea ecx, [esp + 0x190]
lea edx, [esp + 0x208]
lea eax, [esp + 0x118]
call fcn.0047d0c0
lea ecx, [esp + 0x230]
mov eax, ebp
lea edx, [esp + 0x1b8]
call fcn.0047d0c0
lea edx, [esp + 0x230]
lea eax, [esp + 0x140]
call fcn.0047dbe0
lea edx, [esp + 0x190]
lea eax, [esp + 0x168]
call fcn.0047dbe0
mov ecx, ebp
lea edx, [esp + 0x118]
lea eax, [esp + 0x1e0]
call fcn.0047cd80
mov ecx, ebp
lea edx, [esp + 0x118]
lea eax, [esp + 0x1b8]
call fcn.0047ce60
lea ecx, [esp + 0x140]
lea edx, [esp + 0x168]
lea eax, [esp + 0xa0]
call fcn.0047d0c0
lea ecx, [esp + 0x140]
lea edx, [esp + 0x168]
lea eax, [esp + 0x230]
call fcn.0047ce60
lea edx, [esp + 0x1b8]
mov eax, ebp
call fcn.0047dbe0
mov eax, 0x1db42
mul dword [esp + 0x230]
mov esi, eax
mov edi, edx
shrd esi, edx, 0x1a
mov dword [esp + 0x48], eax
mov eax, 0x1db42
mul dword [esp + 0x234]
mov dword [esp + 8], esi
shr edi, 0x1a
add dword [esp + 8], eax
mov eax, 0x1db42
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], edi
adc dword [esp + 0xc], edx
mov ebx, dword [esp + 0xc]
mul dword [esp + 0x238]
shrd ecx, ebx, 0x19
mov dword [esp + 0x10], ecx
shr ebx, 0x19
add dword [esp + 0x10], eax
mov eax, 0x1db42
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x10]
adc dword [esp + 0x14], edx
mov esi, dword [esp + 0x14]
mul dword [esp + 0x23c]
shrd ebx, esi, 0x1a
mov dword [esp + 0x18], ebx
shr esi, 0x1a
add dword [esp + 0x18], eax
mov eax, 0x1db42
mov dword [esp + 0x1c], esi
adc dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
shrd edx, ecx, 0x19
shr ecx, 0x19
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mul dword [esp + 0x240]
add dword [esp + 0x20], eax
mov eax, 0x1db42
adc dword [esp + 0x24], edx
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mul dword [esp + 0x244]
shrd esi, edi, 0x1a
mov dword [esp + 0x28], esi
shr edi, 0x1a
add dword [esp + 0x28], eax
mov eax, 0x1db42
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], edi
mov edi, 0x13
adc dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x2c]
mul dword [esp + 0x248]
shrd ecx, ebx, 0x19
mov dword [esp + 0x30], ecx
shr ebx, 0x19
add dword [esp + 0x30], eax
mov eax, 0x1db42
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x30]
adc dword [esp + 0x34], edx
mov esi, dword [esp + 0x34]
mul dword [esp + 0x24c]
shrd ebx, esi, 0x1a
mov dword [esp + 0x38], ebx
shr esi, 0x1a
add dword [esp + 0x38], eax
mov eax, 0x1db42
mov dword [esp + 0x3c], esi
adc dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
shrd edx, ecx, 0x19
mov dword [esp + 0x40], edx
shr ecx, 0x19
mul dword [esp + 0x250]
add dword [esp + 0x40], eax
mov eax, 0x1db42
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x40]
adc dword [esp + 0x44], edx
mov ebx, dword [esp + 0x44]
mul dword [esp + 0x254]
shrd ecx, ebx, 0x1a
shr ebx, 0x1a
add ecx, eax
adc ebx, edx
mov eax, ecx
mov edx, ebx
and esi, 0x3ffffff
shrd eax, ebx, 0x19
shr edx, 0x19
imul ebx, edx, 0x13
mul edi
xor edi, edi
add edx, ebx
add esi, eax
adc edi, edx
mov eax, esi
shrd eax, edi, 0x1a
mov edx, edi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 8]
shr edx, 0x1a
mov dword [esp + 0x4c], edx
and esi, 0x3ffffff
and ecx, 0x1ffffff
mov dword [esp + 0x118], esi
and eax, 0x1ffffff
mov edx, eax
mov eax, dword [esp + 0x48]
add eax, edx
mov edi, eax
and edi, 0x1ffffff
mov dword [esp + 0x11c], edi
mov edi, dword [esp + 0x10]
shr eax, 0x19
lea edx, [esp + 0x1e0]
and edi, 0x3ffffff
add eax, edi
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x18]
and eax, 0x1ffffff
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x20]
and eax, 0x3ffffff
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x28]
and eax, 0x1ffffff
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x30]
and eax, 0x3ffffff
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x38]
and eax, 0x1ffffff
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x40]
and eax, 0x3ffffff
mov dword [esp + 0x138], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x13c], ecx
call fcn.0047dbe0
lea ecx, [esp + 0x118]
lea edx, [esp + 0x140]
lea eax, [esp + 0x208]
call fcn.0047cd80
mov ecx, ebp
lea edx, [esp + 0x78]
lea eax, [esp + 0x118]
call fcn.0047d0c0
mov eax, ebp
lea ecx, [esp + 0x208]
lea edx, [esp + 0x230]
call fcn.0047d0c0
sub dword [esp + 0x50], 1
mov eax, dword [esp + 0x50]
cmp eax, 0xffffffff
je 0x47fdbd
sar eax, 3
mov ebx, dword [esp + 0xc8]
movzx edx, byte [esp + eax + 0x58]
mov esi, dword [esp + 0x118]
mov edi, dword [esp + 0xa0]
mov eax, dword [esp + 4]
jmp 0x47f930
mov esi, dword [esp + 4]
xor eax, eax
neg esi
mov ecx, dword [esp + eax*4 + 0xf0]
mov ebx, dword [esp + eax*4 + 0xa0]
mov edx, ecx
xor edx, ebx
and edx, esi
xor ebx, edx
xor edx, ecx
mov dword [esp + eax*4 + 0xa0], ebx
mov dword [esp + eax*4 + 0xf0], edx
add eax, 1
cmp eax, 0xa
jne 0x47fdc5
xor al, al
mov ecx, dword [ebp + eax*4]
mov edx, dword [esp + eax*4 + 0x118]
xor edx, ecx
and edx, esi
xor ecx, edx
xor dword [esp + eax*4 + 0x118], edx
mov dword [ebp + eax*4], ecx
add eax, 1
cmp eax, 0xa
jne 0x47fdf5
mov edx, ebp
mov eax, ebp
call fcn.0047f3b0
lea edx, [esp + 0xa0]
mov ecx, ebp
mov eax, edx
call fcn.0047d0c0
mov eax, dword [esp + 0x54]
lea edx, [esp + 0xa0]
call fcn.0047cb10
add esp, 0x25c
pop ebx
pop esi
pop edi
pop ebp
ret