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

Disassembly:
sub esp, 0x30
push ebx
push edi
mov edi, dword [esp + 0x44]
add edi, 1
sar edi, 1
mov eax, edi
shl eax, 6
add eax, 0x18
push eax
call fcn.15053eb3
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 8], 1
je 0x15001548
mov ecx, dword [esp + 0x48]
push ebp
push esi
mov esi, dword [esp + 0x44]
lea eax, [esi + 0xc]
push ecx
push eax
call sym.Core.dll_mpnsetw
add esp, 8
push ebx
lea eax, [esi + 0xc]
mov ebp, edi
shl ebp, 5
push eax
push ebp
mov dword [esp + 0x58], ebp
call sym.Core.dll_mpptrials
mov edx, dword [esp + 0x54]
add esp, 4
push eax
push ebp
push edx
lea eax, [esi + 0x1c]
push eax
call sym.Core.dll_mpprnd_w
add esp, 0x18
push ebx
lea eax, [esi + 0xc]
push eax
mov eax, dword [esp + 0x54]
push eax
lea ebp, [esi + 0x28]
call sym.Core.dll_mpptrials
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
add esp, 4
push eax
push ecx
push edx
push ebp
call sym.Core.dll_mpprnd_w
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x20]
push eax
push ecx
push edi
call sym.Core.dll_mple
add esp, 0x24
test eax, eax
je 0x15001351
mov edx, dword [ebp + 8]
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x1c]
mov dword [ebp], edx
mov edx, dword [esi + 0x20]
mov dword [ebp + 4], edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x1c], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x20], ecx
mov dword [esp + 0x20], ecx
mov dword [ebp + 8], edx
mov dword [esi + 0x24], eax
lea ecx, [esp + 0x1c]
push ecx
call sym.Core.dll_mpbzero
lea edx, [esp + 0x2c]
push edx
call sym.Core.dll_mpbzero
lea eax, [esp + 0x3c]
push eax
call sym.Core.dll_mpbzero
lea ecx, [esp + 0x20]
push ecx
call sym.Core.dll_mpnzero
add esp, 0x10
lea esp, [esp]
mov edx, dword [esi + 0x2c]
mov eax, dword [esi + 0x20]
push edx
push edi
push eax
push edi
push ebx
call sym.Core.dll_mpmul
add esp, 0x14
cmp dword [esp + 0x10], 0
je 0x150013af
lea eax, [edi + edi]
push ebx
push eax
call sym.Core.dll_mpmsbset
add esp, 8
test eax, eax
jne 0x15001480
mov ecx, dword [esp + 0x4c]
push ebx
lea eax, [esi + 0xc]
push eax
push ecx
call sym.Core.dll_mpptrials
mov edx, dword [esp + 0x58]
add esp, 4
push eax
mov eax, dword [esp + 0x54]
push edx
push eax
lea ecx, [esp + 0x30]
push ecx
call sym.Core.dll_mpprnd_w
mov edx, dword [esp + 0x38]
mov eax, dword [esi + 0x20]
push edx
push eax
push edi
call sym.Core.dll_mple
add esp, 0x24
test eax, eax
je 0x1500141b
push ebp
call sym.Core.dll_mpbfree
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebp + 4], edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
jmp 0x1500144c
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x2c]
push edx
push eax
push edi
call sym.Core.dll_mple
add esp, 0xc
test eax, eax
je 0x15001466
push ebp
call sym.Core.dll_mpbfree
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [ebp], ecx
mov dword [ebp + 4], edx
mov dword [ebp + 8], eax
lea ecx, [esp + 0x20]
push ecx
call sym.Core.dll_mpbzero
add esp, 8
mov dword [esp + 0x10], 1
jmp 0x15001380
lea edx, [esp + 0x1c]
push edx
call sym.Core.dll_mpbfree
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x15001380
push ebx
lea eax, [edi + edi]
push eax
push esi
call sym.Core.dll_mpbset
lea eax, [esi + 0x1c]
push ebx
push eax
call sym.Core.dll_mpbsubone
push ebx
lea eax, [esp + 0x40]
push edi
push eax
call sym.Core.dll_mpbset
push ebx
push ebp
call sym.Core.dll_mpbsubone
push ebx
lea ecx, [esp + 0x60]
push edi
push ecx
call sym.Core.dll_mpbset
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
push edx
push edi
push eax
push edi
push ebx
call sym.Core.dll_mpmul
add esp, 0x48
push ebx
lea eax, [edi + edi]
push eax
lea ecx, [esp + 0x1c]
push ecx
call sym.Core.dll_mpnset
lea edx, [esp + 0x20]
push edx
lea eax, [esi + 0xc]
push eax
lea eax, [esi + 0x14]
push eax
call sym.Core.dll_mpninv
lea ecx, [esi + 0x34]
push edi
push ecx
call sym.Core.dll_mpnsize
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x18]
push ebx
push edx
push eax
lea ecx, [esp + 0x54]
push ecx
call sym.Core.dll_mpbmod_w
lea edx, [esi + 0x3c]
push edi
push edx
call sym.Core.dll_mpnsize
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x18]
push ebx
push eax
push ecx
lea edx, [esp + 0x78]
push edx
call sym.Core.dll_mpbmod_w
add esp, 0x48
lea eax, [esi + 0x1c]
push eax
push ebp
add esi, 0x44
push esi
call sym.Core.dll_mpninv
push ebx
call fcn.15053e98
add esp, 0x10
pop esi
xor eax, eax
pop ebp
pop edi
pop ebx
add esp, 0x30
ret
pop edi
or eax, 0xffffffff
pop ebx
add esp, 0x30
ret