Function at 0x407780
Capabilities:
Terminate process

Disassembly:
mov eax, dword [0x427f40]
cmp dword [eax + 0x228], 0
je 0x407799
mov ecx, dword [esp + 4]
mov dword [eax + 0x22c], ecx
ret
mov eax, str._nMIRACL_error_from_routine
call fcn.00407740
mov ecx, dword [0x427f40]
mov eax, dword [ecx + 0x1c]
cmp eax, 0x18
jge 0x4077be
mov edx, dword [ecx + eax*4 + 0x20]
mov eax, dword [edx*4 + 0x426398]
jmp 0x4077c3
mov eax, 0x42352c
call fcn.00407740
push ebx
push esi
push edi
call fcn.0041542e
add eax, 0x20
push eax
push 0xa
call fcn.004152ef
add esp, 8
mov eax, dword [0x427f40]
mov ebx, dword [eax + 0x1c]
sub ebx, 1
js 0x407891
push ebp
lea ebp, [ebx*4 + 0x20]
jmp 0x407800
mov al, 0x20
mov esi, str.______________called_from
movsx edi, al
call fcn.0041542e
add eax, 0x20
push eax
push edi
call fcn.004152ef
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x407807
cmp ebx, 0x18
jge 0x407842
mov ecx, dword [0x427f40]
mov edx, dword [ecx + ebp]
mov eax, dword [edx*4 + 0x426398]
call fcn.00407740
jmp 0x40786f
mov al, 0x3f
mov esi, 0x42352c
lea esp, [esp]
movsx edi, al
call fcn.0041542e
add eax, 0x20
push eax
push edi
call fcn.004152ef
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x407850
call fcn.0041542e
add eax, 0x20
push eax
push 0xa
call fcn.004152ef
sub ebx, 1
add esp, 8
sub ebp, 4
test ebx, ebx
jge 0x407800
pop ebp
mov eax, dword [esp + 0x10]
add eax, 0xffffffff
cmp eax, 0x1b
ja case.default.0x4078a1
jmp dword [eax*4 + 0x407a6c]
mov eax, str.Number_base_too_big_for_representation_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Division_by_zero_attempted_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Overflow___Number_too_big_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Internal_result_is_negative_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Input_format_error_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Illegal_number_base_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Illegal_parameter_usage_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Out_of_space_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Even_root_of_a_negative_number_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Raising_integer_to_negative_power_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Attempt_to_take_illegal_root_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Integer_operation_attempted_on_Flash_number_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Flash_overflow_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Numbers_too_big_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Log_of_a_non_positive_number_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Flash_to_double_conversion_failure_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.I_O_buffer_overflow_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.MIRACL_not_initialised___no_call_to_mirsys___n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Illegal_modulus__n
call fcn.00407740
jmp 0x407a5f
mov eax, str.No_modulus_defined_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Exponent_too_big_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Unsupported_Feature___check_mirdef.h_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Specified_double_length_type_isnt_double_length_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Specified_basis_is_NOT_irreducible_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Unable_to_control_Floating_point_rounding_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Base_must_be_binary__MR_ALWAYS_BINARY_defined_in_mirdef.h____n
call fcn.00407740
jmp 0x407a5f
mov eax, str.No_irreducible_basis_defined_n
call fcn.00407740
jmp 0x407a5f
mov eax, str.Composite_modulus_n
call fcn.00407740
jmp 0x407a5f
mov al, 0x55
mov esi, str.Undefined_error_n
jmp 0x407a40
movsx edi, al
call fcn.0041542e
add eax, 0x20
push eax
push edi
call fcn.004152ef
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x407a40
push 0
call fcn.0041585f
pop edi
pop esi
pop ebx
lea ecx, [ecx]
test al, 0x78
inc eax
add byte [edi - 0x39ffbf88], dh
js 0x407ab7
add ch, dl
js 0x407abb
add ah, ah
js 0x407abf
add bl, dh
js 0x407ac3
add byte [edx], al
jns 0x407ac7
add byte [ecx], dl
jns 0x407acb
add byte [eax], ah
jns 0x407acf
add byte [edi], ch
jns 0x407ad3
add byte [esi], bh
jns 0x407ad7
add byte [ebp + 0x79], cl
inc eax
add byte [ecx + edi*2 + 0x40], bl
add byte [ebx + 0x79], ch
inc eax
add byte [edx + 0x79], bh
inc eax
add byte [ecx - 0x67ffbf87], cl
jns 0x407aef
add byte [edi - 0x49ffbf87], ah
jns 0x407af7
add ch, al
jns 0x407afb
add ah, dl
jns 0x407aff
add al, ah
jns 0x407b03
add ah, ch
jns 0x407b07
add al, bh
jns 0x407b0b
add byte [edx + edi*2], al
inc eax
add byte [eax], dl
jp 0x407b13
add byte [edx + edi*2], bl
inc eax
add byte [eax], ch
jp 0x407b1b
add ah, cl
int3
add al, ch
cmp ecx, ebx
add byte [eax], al
call fcn.0041542e
add eax, 0x20
push eax
push 0x2d
and byte [eax + 0x6a], dl
sub eax, 0xd7efe8
call fcn.004152ef
mov ecx, dword [0x427f40]
add esi, 1
add esp, 8
add byte [ebx + 0x427f400d], cl
jg 0x407b47
add byte [ebx - 0x3b7cfe3a], al
mov byte [ecx], 0x83
les ecx, [eax]
or byte [ebx], bh
jno 0x407b2b
cmp esi, dword [ecx + 0x1c]
jl 0x407af0
call fcn.0041542e
add eax, 0x20
push eax
push 0x3e
call fcn.004152ef
fld dword [eax]
add byte [ebx + 0x6a5020c0], al
notrack call fcn.004152ef
mov eax, dword [0x427f40]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + edx*4 + 0x20]
mov esi, dword [eax*4 + 0x426398]
mov al, byte [esi]
add esp, 8
nop
and byte [ebx + 0x63988534], cl
inc edx
add byte [edx + 0x8c48306], cl
test al, al
je 0x407b60
push edi
mov edi, edi
movsx edi, al
call fcn.0041542e
add eax, 0x20
push eax
push edi
add byte [ebx + 0x575020c0], al
call fcn.004152ef
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x407b40
pop edi
call fcn.0041542e
add eax, 0x20
push eax
push 0xa
call fcn.004152ef
add esp, 8
pop esi
ret