Function at 0x48e730
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xc0c
mov ebx, dword [esp + 0xc28]
test byte [ebx + 0x3f], 0xe0
je 0x48e754
xor eax, eax
add esp, 0xc0c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xc2c]
lea esi, [esp + 0x1a8]
mov dword [esp], esi
mov dword [esp + 4], eax
call dbg.x25519_ge_frombytes_vartime
test eax, eax
jne 0x48e747
mov edx, esi
lea eax, [esp + 0x50]
call dbg.fe_neg_impl
lea edx, [esp + 0x50]
mov eax, esi
call dbg.fe_carry_impl
lea edx, [esp + 0x220]
lea eax, [esp + 0x50]
call dbg.fe_neg_impl
lea edx, [esp + 0x50]
lea eax, [esp + 0x220]
call dbg.fe_carry_impl
mov eax, dword [ebx]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 0x2c]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [ebx + 0x30]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x20], edx
mov edx, dword [ebx + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x24], edx
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x3c]
cmp eax, 0x10000000
mov dword [esp + 0x2c], eax
ja 0x48e747
jae 0x48eaf0
xor eax, 0x10000000
or eax, edx
jne 0x48e877
mov eax, dword [esp + 0x24]
or eax, dword [esp + 0x20]
jne 0x48e747
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp eax, 0x14def9de
ja 0x48e747
jb 0x48e877
cmp edx, 0xa2f79cd6
ja 0x48e747
cmp eax, 0x14def9de
ja 0x48ed15
cmp edx, 0xa2f79cd5
ja 0x48ed15
lea edi, [esp + 0x428]
mov dword [esp], edi
lea ebp, [esp + 0x7a0]
call sym.adb.exe_SHA512_Init
mov dword [esp + 4], ebx
lea ebx, [esp + 0xf0]
mov dword [esp], edi
mov dword [esp + 8], 0x20
call dbg.SHA512_Update
mov eax, dword [esp + 0xc2c]
mov dword [esp], edi
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
call dbg.SHA512_Update
mov eax, dword [esp + 0xc24]
mov dword [esp], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc20]
mov dword [esp + 4], eax
call dbg.SHA512_Update
mov dword [esp + 4], edi
lea edi, [esp + 0x2e8]
mov dword [esp], ebx
call dbg.SHA512_Final
mov dword [esp], ebx
call dbg.x25519_sc_reduce
mov edx, ebx
lea eax, [esp + 0x500]
call dbg.slide
lea edx, [esp + 0x10]
lea eax, [esp + 0x600]
call dbg.slide
lea eax, [esp + 0x700]
lea ebx, [esp + 0x388]
mov dword [esp + 4], esi
mov dword [esp], eax
call dbg.x25519_ge_p3_to_cached
mov edx, esi
mov eax, ebx
lea esi, [esp + 0x248]
call dbg.ge_p3_to_p2
mov edx, ebx
mov eax, esi
call dbg.ge_p2_dbl
mov dword [esp], ebx
mov dword [esp + 4], esi
call dbg.x25519_ge_p1p1_to_p3
lea eax, [esp + 0x700]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.x25519_ge_add
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
mov dword [esp], ebp
mov dword [esp + 4], edi
call dbg.x25519_ge_p3_to_cached
mov dword [esp + 8], ebp
lea ebp, [esp + 0x840]
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.x25519_ge_add
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
mov dword [esp], ebp
mov dword [esp + 4], edi
call dbg.x25519_ge_p3_to_cached
mov dword [esp + 8], ebp
lea ebp, [esp + 0x8e0]
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.x25519_ge_add
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
mov dword [esp], ebp
mov dword [esp + 4], edi
call dbg.x25519_ge_p3_to_cached
mov dword [esp + 8], ebp
lea ebp, [esp + 0x980]
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.x25519_ge_add
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
mov dword [esp], ebp
mov dword [esp + 4], edi
call dbg.x25519_ge_p3_to_cached
mov dword [esp + 8], ebp
lea ebp, [esp + 0xa20]
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.x25519_ge_add
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
mov dword [esp], ebp
mov dword [esp + 4], edi
call dbg.x25519_ge_p3_to_cached
mov dword [esp + 8], ebp
lea ebp, [esp + 0xac0]
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.x25519_ge_add
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
mov dword [esp], ebp
mov dword [esp + 4], edi
call dbg.x25519_ge_p3_to_cached
mov dword [esp + 8], ebp
lea ebp, [esp + 0x130]
mov dword [esp + 4], ebx
mov ebx, 0xff
mov dword [esp], esi
call dbg.x25519_ge_add
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
lea eax, [esp + 0xb60]
mov dword [esp], eax
mov dword [esp + 4], edi
call dbg.x25519_ge_p3_to_cached
mov eax, ebp
call dbg.ge_p2_0
jmp 0x48eada
cmp byte [esp + ebx + 0x600], 0
jne 0x48eb9c
sub ebx, 1
cmp ebx, 0xffffffff
je 0x48ed5c
cmp byte [esp + ebx + 0x500], 0
je 0x48eac0
jmp 0x48eb9c
cmp edx, 0
ja 0x48e747
lea esi, [esi]
jmp 0x48e828
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
movzx eax, byte [esp + ebx + 0x500]
mov dword [esp + 4], edi
mov dword [esp], esi
mov edx, eax
shr dl, 7
add eax, edx
sar al, 1
movsx eax, al
lea eax, [eax + eax*4]
shl eax, 5
lea edx, [esp + 0x700]
add eax, edx
mov dword [esp + 8], eax
call dbg.x25519_ge_add
cmp byte [esp + ebx + 0x600], 0
jle 0x48ebf8
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
movzx eax, byte [esp + ebx + 0x600]
mov edx, edi
mov ecx, eax
shr cl, 7
add ecx, eax
mov eax, esi
sar cl, 1
movsx ecx, cl
imul ecx, ecx, 0x78
add ecx, 0x57a660
call dbg.ge_madd
mov dword [esp + 4], esi
sub ebx, 1
mov dword [esp], ebp
call dbg.x25519_ge_p1p1_to_p2
cmp ebx, 0xffffffff
je 0x48ed5c
mov edx, ebp
mov eax, esi
call dbg.ge_p2_dbl
cmp byte [esp + ebx + 0x500], 0
jg 0x48eb05
je 0x48eb44
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
movsx eax, byte [esp + ebx + 0x500]
lea ecx, [esp + 0x700]
mov dword [esp + 4], edi
mov dword [esp], esi
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
neg eax
lea eax, [eax + eax*4]
shl eax, 5
add eax, ecx
mov dword [esp + 8], eax
call dbg.x25519_ge_sub
jmp 0x48eb44
je 0x48eb84
mov dword [esp + 4], esi
mov dword [esp], edi
call dbg.x25519_ge_p1p1_to_p3
movsx eax, byte [esp + ebx + 0x600]
mov ecx, edi
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
imul eax, eax, 0xffffff88
lea edx, [esp + 0x310]
add eax, 0x57a660
mov dword [esp + 0xc], eax
mov eax, esi
call dbg.fe_add_impl
mov ecx, edi
lea edx, [esp + 0x310]
lea eax, [esp + 0x270]
call dbg.fe_sub_impl
mov eax, dword [esp + 0xc]
mov edx, esi
lea ecx, [eax + 0x28]
lea eax, [esp + 0xa0]
call dbg.fe_mul_impl
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x270]
lea eax, [esp + 0x78]
call dbg.fe_mul_impl
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x360]
lea edx, [eax + 0x50]
lea eax, [esp + 0xc8]
call dbg.fe_mul_impl
lea ecx, [esp + 0x338]
mov edx, ecx
lea eax, [esp + 0x2c0]
call dbg.fe_add_impl
lea ecx, [esp + 0x78]
mov eax, esi
lea edx, [esp + 0xa0]
call dbg.fe_sub_impl
lea ecx, [esp + 0x78]
lea edx, [esp + 0xa0]
lea eax, [esp + 0x270]
call dbg.fe_add_impl
lea edx, [esp + 0x2c0]
lea eax, [esp + 0xa0]
call dbg.fe_carry_impl
lea ecx, [esp + 0xc8]
lea edx, [esp + 0xa0]
lea eax, [esp + 0x298]
call dbg.fe_sub_impl
lea ecx, [esp + 0xc8]
lea edx, [esp + 0xa0]
lea eax, [esp + 0x2c0]
call dbg.fe_add_impl
jmp 0x48eb84
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp eax, 0x5812631a
ja 0x48e747
jb 0x48e877
cmp edx, 0x5cf5d3ed
ja 0x48e747
cmp eax, 0x5812631a
ja 0x48e747
jb 0x48e877
cmp edx, 0x5cf5d3ec
ja 0x48e747
jmp 0x48e877
lea eax, [esp + 0x700]
mov dword [esp], eax
mov dword [esp + 4], ebp
call dbg.x25519_ge_tobytes
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
lea eax, [esp + 0x700]
mov dword [esp + 8], 0x20
mov dword [esp], eax
call dbg.CRYPTO_memcmp
test eax, eax
sete al
movzx eax, al
jmp 0x48e749