Function at 0x410530
Capabilities:
Terminate process

Disassembly:
sub esp, 0x1fc
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x210]
push edi
call fcn.0040fb10
add esp, 4
test eax, eax
je 0x410567
push 0x423800
push str.Cannot_divide_by_zero._n
call fcn.004148f2
add esp, 8
push 1
call fcn.004147e7
mov ebx, dword [esp + 0x214]
cmp edi, ebx
je 0x410864
mov esi, dword [esp + 0x218]
cmp edi, esi
je 0x410864
mov ebp, dword [esp + 0x21c]
cmp edi, ebp
je 0x410864
xor eax, eax
cmp ebp, ebx
sete al
xor ecx, ecx
cmp ebp, esi
sete cl
or eax, ecx
jne 0x410864
cmp dword [edi + 0xa0], 1
jne 0x4105db
mov edx, dword [edi]
push ebp
push esi
push ebx
push edx
call fcn.00410210
mov ecx, dword [esi]
add esp, 0x10
xor eax, eax
test ecx, ecx
setne al
mov dword [esi + 0xa0], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fc
ret
push edi
push ebx
call fcn.0040fe70
add esp, 8
sub eax, 0
je 0x410849
dec eax
je 0x41082d
dec eax
jne 0x41083e
push ebx
push esi
call fcn.0040fb30
mov eax, dword [edi + 0xa0]
add esp, 8
dec eax
mov ebx, dword [esi + 0xa0]
dec ebx
mov ecx, dword [edi + eax*4]
mov edx, dword [edi + eax*4 - 4]
mov edi, dword [esi + ebx*4 - 4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*8 + 1]
mov ecx, dword [esi + ebx*4]
mov dword [esp + 0x1c], edx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
cmp edi, edx
jge 0x410658
cmp ebx, eax
jle 0x410658
lea edi, [edi + edi*4]
dec ebx
lea ecx, [edi + edi*4]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + ebx*4 - 4]
lea edi, [ecx + edx*8]
mov edx, ebx
sub edx, eax
xor eax, eax
lea ecx, [edx + 1]
test ecx, ecx
mov dword [ebp + 0xa0], ecx
jle 0x410681
mov ecx, ebp
mov dword [ecx], 0
mov edx, dword [ebp + 0xa0]
inc eax
add ecx, 4
cmp eax, edx
jl 0x41066d
mov ecx, dword [ebp + 0xa0]
lea eax, [ebx + 1]
mov dword [esp + 0x18], eax
dec ecx
lea eax, [esi + eax*4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jmp 0x4106a0
mov ecx, dword [esp + 0x10]
mov eax, edi
cdq
idiv dword [esp + 0x1c]
lea edx, [esp + 0x168]
push edx
push ecx
mov ebp, eax
mov eax, dword [esp + 0x218]
push ebp
push eax
call fcn.004102b0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x178]
push ecx
push edx
push esi
call fcn.0040fff0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x22c]
lea eax, [esp + 0xe0]
push eax
push ecx
push 1
push edx
call fcn.004102b0
lea eax, [esp + 0xf0]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.0040fe70
add esp, 0x34
test eax, eax
jne 0x41072d
mov edx, dword [esp + 0x21c]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push ecx
push esi
mov dword [edx + eax*4], ebp
call fcn.0040fb30
mov ebp, dword [esp + 0x224]
add esp, 8
jmp 0x410755
mov eax, dword [esp + 0x10]
lea edx, [ebp + 1]
mov ebp, dword [esp + 0x21c]
lea ecx, [esp + 0xc4]
push esi
push ecx
mov dword [ebp + eax*4], edx
lea edx, [esp + 0x28]
push edx
call fcn.0040fff0
add esp, 0xc
mov eax, dword [esp + 0x210]
push eax
push esi
call fcn.0040fe70
add esp, 8
cmp eax, 1
jne 0x410780
mov edx, dword [ebp]
push esi
inc edx
mov dword [ebp], edx
call fcn.0040fb00
add esp, 4
jmp 0x410808
mov ecx, dword [esp + 0x210]
push ecx
push esi
call fcn.0040fe70
add esp, 8
cmp eax, 2
jne 0x410808
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x4107bc
mov ecx, dword [esp + 0x18]
mov ebp, eax
mov eax, dword [esp + 0x14]
dec ebp
dec ebx
sub eax, 4
dec ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jmp 0x4107c0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esi + 0xa0]
lea ecx, [ebp - 2]
cmp ecx, edx
jge 0x410806
mov edi, dword [eax - 8]
cmp ebx, edx
jge 0x410808
mov ecx, dword [eax - 4]
cmp ebp, edx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
jge 0x410808
mov eax, dword [eax]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 6
add edi, edx
jmp 0x410808
xor edi, edi
mov eax, dword [esp + 0x210]
push eax
push esi
call fcn.0040fe70
add esp, 8
cmp eax, 2
je 0x41069c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fc
ret
push ebp
push 1
call fcn.0040fb60
push esi
call fcn.0040fb00
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fc
ret
push ebp
call fcn.0040fb00
push ebx
push esi
call fcn.0040fb30
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fc
ret
push 0x423800
push str.Parameters_to_longdiv_share_storage_n
call fcn.004148f2
add esp, 8
push 1
call fcn.004147e7
nop
nop
nop
sub esp, 0x1f0
push esi
mov esi, dword [esp + 0x204]
push edi
mov edi, dword [esp + 0x204]
cmp esi, edi
jne 0x4108b3
push 0x423800
push str.Input_and_result_parameters_to_MPIexpon_share_storage_n
call fcn.004148f2
add esp, 8
push 1
call fcn.004147e7
mov eax, dword [esp + 0x200]
lea ecx, [esp + 0xb0]
push eax
push ecx
call fcn.0040fb30
mov edx, dword [esp + 0x204]
lea eax, [esp + 0x14]
push edx
push eax
call fcn.0040fb30
push esi
push 1
call fcn.0040fb60
mov eax, dword [esp + 0x168]
add esp, 0x18
test eax, eax
jle 0x41097c
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.00410990
add esp, 4
test eax, eax
je 0x410927
lea edx, [esp + 0xc]
push esi
push edx
push esi
call fcn.004100b0
lea eax, [esp + 0x160]
push eax
push esi
push esi
push edi
call fcn.00410530
add esp, 0x1c
lea ecx, [esp + 0xb0]
lea edx, [esp + 8]
push ecx
lea eax, [esp + 0xb4]
push edx
push eax
push 2
call fcn.00410210
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.004103d0
lea eax, [esp + 0x16c]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
push edi
call fcn.00410530
mov eax, dword [esp + 0x178]
add esp, 0x28
test eax, eax
jg 0x4108f4
pop edi
pop esi
add esp, 0x1f0
ret