Function at 0x109136e0
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.109180c3
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 8], 1
je 0x109139b8
mov ecx, dword [esp + 0x48]
push ebp
push esi
mov esi, dword [esp + 0x44]
lea eax, [esi + 0xc]
push ecx
push eax
call sym.L2.exe_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.L2.exe_mpptrials
mov edx, dword [esp + 0x54]
add esp, 4
push eax
push ebp
push edx
lea eax, [esi + 0x1c]
push eax
call sym.L2.exe_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.L2.exe_mpptrials
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
add esp, 4
push eax
push ecx
push edx
push ebp
call sym.L2.exe_mpprnd_w
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x20]
push eax
push ecx
push edi
call sym.L2.exe_mple
add esp, 0x24
test eax, eax
je 0x109137c1
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.L2.exe_mpbzero
lea edx, [esp + 0x2c]
push edx
call sym.L2.exe_mpbzero
lea eax, [esp + 0x3c]
push eax
call sym.L2.exe_mpbzero
lea ecx, [esp + 0x20]
push ecx
call sym.L2.exe_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.L2.exe_mpmul
add esp, 0x14
cmp dword [esp + 0x10], 0
je 0x1091381f
lea eax, [edi + edi]
push ebx
push eax
call sym.L2.exe_mpmsbset
add esp, 8
test eax, eax
jne 0x109138f0
mov ecx, dword [esp + 0x4c]
push ebx
lea eax, [esi + 0xc]
push eax
push ecx
call sym.L2.exe_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.L2.exe_mpprnd_w
mov edx, dword [esp + 0x38]
mov eax, dword [esi + 0x20]
push edx
push eax
push edi
call sym.L2.exe_mple
add esp, 0x24
test eax, eax
je 0x1091388b
push ebp
call sym.L2.exe_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 0x109138bc
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x2c]
push edx
push eax
push edi
call sym.L2.exe_mple
add esp, 0xc
test eax, eax
je 0x109138d6
push ebp
call sym.L2.exe_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.L2.exe_mpbzero
add esp, 8
mov dword [esp + 0x10], 1
jmp 0x109137f0
lea edx, [esp + 0x1c]
push edx
call sym.L2.exe_mpbfree
add esp, 4
mov dword [esp + 0x10], 0
jmp 0x109137f0
push ebx
lea eax, [edi + edi]
push eax
push esi
call sym.L2.exe_mpbset
lea eax, [esi + 0x1c]
push ebx
push eax
call sym.L2.exe_mpbsubone
push ebx
lea eax, [esp + 0x40]
push edi
push eax
call sym.L2.exe_mpbset
push ebx
push ebp
call sym.L2.exe_mpbsubone
push ebx
lea ecx, [esp + 0x60]
push edi
push ecx
call sym.L2.exe_mpbset
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
push edx
push edi
push eax
push edi
push ebx
call sym.L2.exe_mpmul
add esp, 0x48
push ebx
lea eax, [edi + edi]
push eax
lea ecx, [esp + 0x1c]
push ecx
call sym.L2.exe_mpnset
lea edx, [esp + 0x20]
push edx
lea eax, [esi + 0xc]
push eax
lea eax, [esi + 0x14]
push eax
call sym.L2.exe_mpninv
lea ecx, [esi + 0x34]
push edi
push ecx
call sym.L2.exe_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.L2.exe_mpbmod_w
lea edx, [esi + 0x3c]
push edi
push edx
call sym.L2.exe_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.L2.exe_mpbmod_w
add esp, 0x48
lea eax, [esi + 0x1c]
push eax
push ebp
add esi, 0x44
push esi
call sym.L2.exe_mpninv
push ebx
call fcn.10917fe6
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