Function at 0x4a6da0
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 0x1c]
push edi
mov edi, dword [ebp + 0xc]
cmp esi, 2
je 0x4a6e23
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4a6def
push eax
push 0
lea eax, [ebp - 4]
push eax
push 0
call fcn.004825c0
add esp, 0x10
cmp dword [ebp - 4], 0xffffffff
je 0x4a6def
push 0x3a
push str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_ec_ecx_meth.c
push 0x66
push 0x10a
push 0x10
call fcn.00455e30
add esp, 0x14
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
je 0x4a6e1f
cmp edi, 0x40a
je 0x4a6e15
cmp edi, 0x43f
je 0x4a6e15
xor eax, eax
cmp edi, 0x40b
setne al
add eax, 0x38
jmp 0x4a6e1a
mov eax, 0x20
cmp dword [ebp + 0x18], eax
je 0x4a6e23
push 0x40
jmp 0x4a6dd1
push ebx
push 0x45
push str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_ec_ecx_meth.c
push 0x40
call fcn.004565a0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4a6e5c
push 0x47
push str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_ec_ecx_meth.c
push 0x41
push 0x10a
push 0x10
call fcn.00455e30
add esp, 0x14
xor eax, eax
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
jne 0x4a6e75
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push eax
push ebx
call fcn.0053dc00
add esp, 0xc
jmp case.0x4a6fa7.1036
cmp edi, 0x40a
je 0x4a6e95
cmp edi, 0x43f
je 0x4a6e95
xor eax, eax
cmp edi, 0x40b
setne al
add eax, 0x38
jmp 0x4a6e9a
mov eax, 0x20
push 0x4f
push str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_ec_ecx_meth.c
push eax
call fcn.00456650
mov esi, eax
add esp, 0xc
mov dword [ebx + 0x3c], esi
test esi, esi
jne 0x4a6ecd
push 0x51
push str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_ec_ecx_meth.c
push 0x41
push 0x10a
push 0x10
call fcn.00455e30
add esp, 0x14
jmp 0x4a6f21
cmp dword [ebp + 0x1c], 2
jne 0x4a6f62
cmp edi, 0x40a
je 0x4a6ef7
cmp edi, 0x43f
je 0x4a6ef7
xor eax, eax
cmp edi, 0x40b
setne al
add eax, 0x38
jmp 0x4a6efc
mov eax, 0x20
push eax
push esi
call fcn.0044b270
add esp, 8
test eax, eax
jg 0x4a6f3a
push 0x56
push str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_ec_ecx_meth.c
push esi
call fcn.00456640
add esp, 0xc
mov dword [ebx + 0x3c], 0
push 0x78
push str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_ec_ecx_meth.c
push ebx
call fcn.00456390
add esp, 0xc
xor eax, eax
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, 0x40a
jne 0x4a6f51
mov al, byte [esi + 0x1f]
and byte [esi], 0xf8
and al, 0x3f
or al, 0x40
mov byte [esi + 0x1f], al
jmp 0x4a6f95
cmp edi, 0x40b
jne 0x4a6f95
and byte [esi], 0xfc
or byte [esi + 0x37], 0x80
jmp 0x4a6f95
cmp edi, 0x40a
je 0x4a6f82
cmp edi, 0x43f
je 0x4a6f82
xor eax, eax
cmp edi, 0x40b
setne al
add eax, 0x38
jmp 0x4a6f87
mov eax, 0x20
push eax
mov eax, dword [ebp + 0x14]
push eax
push esi
call fcn.0053dc00
add esp, 0xc
lea eax, [edi - 0x40a]
cmp eax, 0x36
ja case.0x4a6fa7.1036
movzx eax, byte [eax + 0x4a7000]
jmp dword [eax*4 + 0x4a6fec]
push esi
push ebx
call fcn.00506360
jmp 0x4a6fd0
push esi
push ebx
call fcn.00505ff0
jmp 0x4a6fd0
push esi
push ebx
call fcn.005039d0
jmp 0x4a6fd0
push esi
push ebx
call fcn.00505990
add esp, 8
push ebx
push edi
push dword [ebp + 8]
call fcn.00452130
add esp, 0xc
mov eax, 1
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret