Function at 0x4037f0
Capabilities:
Terminate process

Disassembly:
mov eax, dword [0x41c12c]
cmp dword [eax + 0x228], 0
je 0x403809
mov ecx, dword [esp + 4]
mov dword [eax + 0x22c], ecx
ret
mov eax, str._nMIRACL_error_from_routine
call fcn.004037b0
mov ecx, dword [0x41c12c]
mov eax, dword [ecx + 0x20]
cmp eax, 0x18
jge 0x40382e
mov edx, dword [ecx + eax*4 + 0x24]
mov eax, dword [edx*4 + 0x41b120]
jmp 0x403833
mov eax, 0x417bc0
call fcn.004037b0
push ebx
push esi
push edi
call fcn.0040ac18
add eax, 0x20
push eax
push 0xa
call fcn.0040aad9
add esp, 8
mov eax, dword [0x41c12c]
mov ebx, dword [eax + 0x20]
sub ebx, 1
js 0x403921
push ebp
lea ebp, [ebx*4 + 0x24]
jmp 0x403870
mov al, 0x20
mov esi, str.______________called_from
movsx edi, al
call fcn.0040ac18
add eax, 0x20
push eax
push edi
call fcn.0040aad9
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x403877
cmp ebx, 0x18
jge 0x4038d2
mov ecx, dword [0x41c12c]
mov edx, dword [ecx + ebp]
mov esi, dword [edx*4 + 0x41b120]
mov al, byte [esi]
test al, al
je 0x4038ff
movsx edi, al
call fcn.0040ac18
add eax, 0x20
push eax
push edi
call fcn.0040aad9
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x4038b1
jmp 0x4038ff
mov al, 0x3f
mov esi, 0x417bc0
lea esp, [esp]
movsx edi, al
call fcn.0040ac18
add eax, 0x20
push eax
push edi
call fcn.0040aad9
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x4038e0
call fcn.0040ac18
add eax, 0x20
push eax
push 0xa
call fcn.0040aad9
sub ebx, 1
add esp, 8
sub ebp, 4
test ebx, ebx
jge 0x403870
pop ebp
mov eax, dword [esp + 0x10]
add eax, 0xffffffff
cmp eax, 0x1b
ja case.default.0x403931
jmp dword [eax*4 + 0x403afc]
mov eax, str.Number_base_too_big_for_representation_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Division_by_zero_attempted_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Overflow___Number_too_big_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Internal_result_is_negative_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Input_format_error_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Illegal_number_base_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Illegal_parameter_usage_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Out_of_space_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Even_root_of_a_negative_number_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Raising_integer_to_negative_power_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Attempt_to_take_illegal_root_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Integer_operation_attempted_on_Flash_number_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Flash_overflow_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Numbers_too_big_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Log_of_a_non_positive_number_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Flash_to_double_conversion_failure_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.I_O_buffer_overflow_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.MIRACL_not_initialised___no_call_to_mirsys___n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Illegal_modulus__n
call fcn.004037b0
jmp 0x403aef
mov eax, str.No_modulus_defined_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Exponent_too_big_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Unsupported_Feature___check_mirdef.h_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Specified_double_length_type_isnt_double_length_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Specified_basis_is_NOT_irreducible_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Unable_to_control_Floating_point_rounding_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Base_must_be_binary__MR_ALWAYS_BINARY_defined_in_mirdef.h____n
call fcn.004037b0
jmp 0x403aef
mov eax, str.No_irreducible_basis_defined_n
call fcn.004037b0
jmp 0x403aef
mov eax, str.Composite_modulus_n
call fcn.004037b0
jmp 0x403aef
mov al, 0x55
mov esi, str.Undefined_error_n
jmp 0x403ad0
movsx edi, al
call fcn.0040ac18
add eax, 0x20
push eax
push edi
call fcn.0040aad9
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x403ad0
push 0
call fcn.0040b049
pop edi
pop esi
pop ebx
lea ecx, [ecx]
cmp byte [ecx], bh
inc eax
add byte [edi + 0x39], al
inc eax
add byte [esi + 0x39], dl
inc eax
add byte [ebp + 0x39], ah
inc eax
add byte [ecx + edi + 0x40], dh
add byte [ebx - 0x6dffbfc7], al
cmp dword [eax], eax
mov eax, dword [0xb0004039]
cmp dword [eax], eax
mov edi, 0xce004039
cmp dword [eax], eax
fnstsw word [ecx]
inc eax
add ah, ch
cmp dword [eax], eax
sti
cmp dword [eax], eax
or bh, byte [edx]
inc eax
add byte [ecx], bl
cmp al, byte [eax]
sub byte [edx], bh
inc eax
add byte [edi], dh
cmp al, byte [eax]
inc esi
cmp al, byte [eax]
push ebp
cmp al, byte [eax]
cmp al, byte fs:[eax]
jo 4209548
inc eax
add byte [edx + edi + 0x40], bh
add byte [eax - 0x6bffbfc6], cl
cmp al, byte [eax]
mov al, byte [0xac00403a]
cmp al, byte [eax]
mov eax, 0xcc00403a
int3
call fcn.0040ac18
add eax, 0x20
push eax
push 0x2d
call fcn.0040aad9
dec ecx
outsd dx, dword [esi]
add byte [eax], al
mov ecx, dword [0x41c12c]
add esi, 1
add esp, 8
cmp esi, dword [ecx + 0x20]
jl 0x403b80
call fcn.0040ac18
add eax, 0x20
push eax
push 0x3e
call fcn.0040aad9
mov eax, dword [0x41c12c]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + edx*4 + 0x24]
mov esi, dword [eax*4 + 0x41b120]
mov al, byte [esi]
add esp, 8
test al, al
je 0x403bf0
push edi
mov edi, edi
movsx edi, al
call fcn.0040ac18
add eax, 0x20
push eax
push edi
call fcn.0040aad9
mov al, byte [esi + 1]
add esi, 1
add esp, 8
test al, al
jne 0x403bd0
pop edi
call fcn.0040ac18
add eax, 0x20
push eax
push 0xa
call fcn.0040aad9
add esp, 8
pop esi
ret