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

Disassembly:
sub esp, 0xa8
push ebx
mov ebx, dword [esp + 0xb0]
push ebp
push esi
lea eax, [esp + 0x18]
push edi
push eax
call fcn.004565a0
lea ecx, [esp + 0x58]
add esp, 4
push ecx
call fcn.004565a0
lea eax, [ebx + 0xa28]
add esp, 4
push eax
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x40], eax
call fcn.00456880
lea eax, [esp + 0x24]
push 1
push eax
call fcn.004565d0
add esp, 0x10
test eax, eax
jne 0x4221b8
lea ecx, [esp + 0x1c]
push ecx
call fcn.00456900
lea edx, [esp + 0x58]
add esp, 4
push edx
call fcn.00456900
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret
mov ecx, dword [esp + 0x24]
xor eax, eax
cmp dword [esp + 0x20], eax
lea edx, [esp + 0x1c]
setne al
test dword [ecx], eax
jne 0x422200
push edx
call fcn.00456900
lea eax, [esp + 0x58]
add esp, 4
push eax
call fcn.00456900
add esp, 4
lea ecx, [esp + 0x1c]
push ecx
push str._Zu_is_not_odd_in_smallmpqs_n
call fcn.00456570
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret
push 2
push edx
call fcn.00457f70
mov ebp, eax
add esp, 8
mov dword [esp + 0x70], ebp
cmp ebp, 0x82
jle 0x42224b
push str.input_too_big_n
call fcn.004b7f6d
lea eax, [esp + 0x20]
add esp, 4
push eax
call fcn.00456900
lea ecx, [esp + 0x58]
add esp, 4
push ecx
call fcn.00456900
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret
cmp dword [ebx + 0xea8], 0x3039
je 0x422289
cmp dword [ebx + 0x424], 0
je 0x422289
lea edi, [esp + 0x1c]
mov esi, 0x5d64d0
call fcn.0044ca50
push eax
call fcn.0044cfb0
mov edx, dword [ebx + 0x424]
push eax
push str.starting_smallmpqs_on_C_d:__s_n
push edx
call fcn.00443960
add esp, 0x10
cmp ebp, 0x3c
jge 0x422388
lea eax, [esp + 0x40]
push eax
call fcn.004565a0
lea ecx, [esp + 0x20]
add esp, 4
push ecx
call fcn.0044a5f0
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
cmp edi, 1
jbe 0x422388
push 0
push edi
lea esi, [esp + 0x48]
call fcn.0044cae0
mov eax, esi
add esp, 8
mov esi, ebx
call fcn.004464e0
mov ebp, 0x3039
cmp dword [ebx + 0xea8], ebp
je 0x422301
mov esi, dword [ebx + 0x424]
test esi, esi
je 0x422301
push edi
mov ecx, edi
call fcn.0044cd00
push eax
push str.prp_d___u_n
push esi
call fcn.00443960
add esp, 0x10
lea edx, [esp + 0x1c]
push edi
push edx
mov eax, edx
push eax
call fcn.00456800
add esp, 0xc
lea eax, [esp + 0x1c]
mov esi, ebx
call fcn.004464e0
cmp dword [ebx + 0xea8], ebp
je 0x422357
cmp dword [ebx + 0x424], 0
je 0x422357
lea edi, [esp + 0x1c]
mov esi, 0x5d64d0
call fcn.0044ca50
push eax
call fcn.0044cfb0
mov ecx, dword [ebx + 0x424]
push eax
push str.prp_d___s_n
push ecx
call fcn.00443960
add esp, 0x10
mov edx, dword [esp + 0x38]
push 1
push edx
call fcn.00456980
lea eax, [esp + 0x24]
push eax
call fcn.00456900
lea ecx, [esp + 0x60]
add esp, 0xc
push ecx
call fcn.00456900
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret
push 0x5d5ce4
push 0x5d5ce8
push ebp
lea edi, [esp + 0x24]
call fcn.00421de0
add esp, 0xc
lea edi, [esp + 0x74]
call fcn.004445e0
lea edx, [esp + 0x90]
push edx
call fcn.004565a0
lea eax, [esp + 0xb0]
add esp, 4
push eax
call fcn.004565a0
fld qword [0x5b47f8]
fstp qword [0x5d5cf0]
add esp, 4
cmp dword [ebx + 0xe94], 0
je 0x4223e9
mov ecx, dword [ebx + 0xe98]
mov dword [0x5d5ce8], ecx
push 0x10
mov dword [0x5d5cf8], 0x20
call fcn.004b7263
add esp, 4
cmp dword [ebx + 0xe6c], 0
mov dword [esp + 0x14], eax
je 0x422414
mov edx, dword [ebx + 0xe70]
mov dword [eax], edx
jmp 0x42241a
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
cmp dword [ebx + 0xe8c], 0
je 0x42242f
mov edx, dword [ebx + 0xe90]
mov dword [0x5d5ce4], edx
lea edi, [esp + 0x1c]
call fcn.0044cfb0
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov eax, dword [0x5d5cf8]
lea ebx, [edi + eax*2]
push 0x10
add ebx, eax
call fcn.004b7263
mov ebp, eax
lea ecx, [ebx*4]
add esp, 4
xor esi, esi
push ecx
mov dword [esp + 0x30], ebp
mov dword [ebp + 8], ebx
mov dword [ebp], esi
mov dword [ebp + 4], esi
call fcn.004b7263
add esp, 4
push 0x10
mov dword [ebp + 0xc], eax
call fcn.004b7263
mov ebp, eax
lea eax, [edi + edi*4]
add eax, eax
add eax, eax
lea edx, [edi + edi*4]
add eax, eax
add esp, 4
add edx, edx
push eax
mov dword [ebp + 8], edx
mov dword [ebp], esi
mov dword [ebp + 4], esi
call fcn.004b7263
mov dword [ebp + 0xc], eax
mov eax, dword [0x5d5ce4]
add esp, 4
shl eax, 0xf
lea esi, [edi*4]
push esi
mov dword [esp + 0x2c], eax
call fcn.004b7263
add esp, 4
push 0x10
mov dword [esp + 0x80], eax
call fcn.004b7263
mov ecx, dword [esp + 0x18]
add esp, 4
mov ebx, eax
push esi
mov dword [ecx + 0xc], ebx
call fcn.004b7263
add esp, 4
push esi
mov dword [ebx + 4], eax
call fcn.004b7263
add esp, 4
push esi
mov dword [ebx], eax
call fcn.004b7263
add esp, 4
push edi
mov dword [ebx + 8], eax
call fcn.004b7263
add esp, 4
lea esi, [edi*8]
push esi
mov dword [ebx + 0xc], eax
call fcn.004b7263
add esp, 4
push esi
mov dword [esp + 0x64], eax
call fcn.004b7263
add esp, 4
push 0x40
push 0x8000
mov dword [esp + 0x70], eax
call fcn.004ba124
push 0x30
mov dword [esp + 0x8c], eax
call fcn.004b7263
mov esi, eax
lea eax, [esi + 0x10]
add esp, 0xc
push eax
call fcn.004565a0
add esp, 4
push 0x100
mov dword [esp + 0x38], 0x20
call fcn.004b7263
add esp, 4
push 0x100
mov dword [esp + 0x40], eax
call fcn.004b7263
lea edx, [esp + 0x20]
add esp, 4
mov dword [esp + 0x64], eax
push edx
mov eax, edi
call fcn.00423200
movzx eax, al
add esp, 4
push eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x20]
push eax
mov ecx, eax
push ecx
call fcn.00459570
lea edx, [esp + 0xac]
add esp, 0xc
push edx
call fcn.004565a0
add esp, 4
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xa4]
push ecx
call fcn.00457ad0
push 1
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x64]
push eax
call fcn.0045a010
add esp, 0x14
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x94]
push edx
call fcn.00457ad0
mov edi, dword [esp + 0x30]
push edi
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x64]
push ecx
call fcn.00459570
add esp, 0x14
lea edx, [esp + 0x54]
push 2
push edx
call fcn.00457f70
push 1
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x64]
push ecx
call fcn.004570a0
add esp, 0x14
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x94]
push eax
call fcn.00457ad0
lea ecx, [esp + 0x98]
push edi
push ecx
mov edx, ecx
push edx
call fcn.00456800
add esp, 0x14
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x58]
push ecx
call fcn.00457ad0
mov eax, dword [esp + 0x64]
xor edx, edx
add esp, 8
cmp dword [esp + 0x58], edx
setne dl
test dword [eax], edx
jne 0x42268e
lea ecx, [esp + 0x54]
push 1
push ecx
mov edx, ecx
push edx
call fcn.00456ad0
add esp, 0xc
lea eax, [esp + 0x54]
push eax
mov ecx, eax
push ecx
call fcn.0045a760
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov ecx, dword [0x5d650c]
add esp, 8
neg eax
sbb eax, eax
and eax, dword [edx]
mov edx, dword [0x5d6574]
mov dword [esi + 0x1c], eax
cmp dword [ecx + edx*4 - 4], eax
ja 0x4226c8
mov eax, esi
call fcn.00423100
mov eax, dword [esi + 0x1c]
push eax
call fcn.00445c30
add esp, 4
test eax, eax
jns 0x4226ec
push str.prime_not_found_in_binary_search_n
call fcn.004b7f6d
add esp, 4
push 1
call fcn.004b856d
lea ecx, [esp + 0x1c]
push ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], 1
mov dword [esi + 0x2c], 0
call fcn.00423e40
lea edx, [esp + 0x20]
add esp, 4
push edx
mov eax, esi
call fcn.00423fc0
mov eax, dword [ebx]
mov edi, dword [esp + 0x18]
add esp, 4
mov dword [eax], 1
mov eax, dword [esp + 0x7c]
mov ecx, dword [ebx]
lea edx, [esp + 0x1c]
push edx
push eax
push edi
mov dword [ecx + 4], 2
call fcn.00421b40
mov ecx, dword [edi]
mov eax, 2
add esp, 0xc
mov dword [esp + 0x6c], ecx
cmp ecx, eax
jbe 0x4227a5
mov edx, dword [edi]
mov ecx, dword [edi + 0xc]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x60]
sub ebx, edi
mov dword [esp + 0x10], edx
lea edx, [edi + 0x10]
mov dword [esp + 0x30], ebx
lea ecx, [ecx]
mov edi, dword [ecx + 0xc]
movzx edi, byte [edi + eax]
mov ebx, dword [ecx]
mov ebx, dword [ebx + eax*4]
shl ebx, 0x10
or edi, ebx
mov ebx, dword [esp + 0x30]
mov dword [ebx + edx], edi
mov edi, dword [ecx + 0xc]
mov ebx, dword [ecx]
movzx edi, byte [edi + eax]
mov ebx, dword [ebx + eax*4]
shl ebx, 0x10
or edi, ebx
mov dword [edx], edi
inc eax
add edx, 8
cmp eax, dword [esp + 0x10]
jb 0x422770
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
push eax
push ecx
push edx
push edi
call fcn.00424290
fld qword [0x5b43e8]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
mov edx, dword [esp + 0x7c]
mov edi, dword [ecx + edx*4 - 4]
mov dword [esp + 0x98], edi
imul edi, dword [0x5d5ce8]
add esp, 0x10
mov dword [esp + 0x30], edi
call fcn.004bdd80
mov eax, edi
mov dword [esp + 0x10], eax
fstp qword [esp + 0x40]
fild dword [esp + 0x10]
test eax, eax
jns 0x422803
fadd qword [0x5b4428]
call fcn.004bdd80
fmul qword [0x5d5cf0]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
fdiv qword [esp + 0x40]
or eax, 0xc00
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x70]
dec eax
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
mov ebx, eax
sar ebx, 1
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov cl, byte [esp + 0x10]
sub bl, cl
fldcw word [esp + 0x18]
fild dword [esp + 0x28]
test edx, edx
jns 0x422854
fadd qword [0x5b4428]
fmul qword [0x5b43f0]
call fcn.004bdd80
fdiv qword [esp + 0x40]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov al, byte [esp + 0x10]
add bl, al
dec bl
cmp dword [0x5d5f9c], 0
fldcw word [esp + 0x18]
mov byte [esp + 0x10], bl
jle 0x422938
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x9c]
push ecx
push edx
lea eax, [esp + 0x24]
push eax
push str.n___Zd___d_digits_and__d_bits__n
call fcn.00456570
push str._sieve_params__n
call fcn.004b7f6d
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x80]
add esp, 0x14
push ecx
push edx
push str.factor_base:__d_primes__max_prime___u__n
call fcn.004b7f6d
mov eax, dword [0x5d5ce8]
add esp, 0xc
push eax
push edi
push str.large_prime_cutoff:__u___d__pmax__n
call fcn.004b7f6d
mov eax, dword [esp + 0x34]
add esp, 0xc
push 0x8000
shr eax, 0xf
push eax
push str.sieve_interval:__d_blocks_of_size__d_n
call fcn.004b7f6d
mov ecx, dword [esp + 0x44]
add esp, 0xc
push ecx
push str.multiplier_is__u_n
call fcn.004b7f6d
movzx edx, bl
push edx
push str.trial_factoring_cutoff_at__d_bits_n
call fcn.004b7f6d
push str._sieving_in_progress__n
call fcn.004b7f6d
add esp, 0x14
mov edi, dword [esp + 0x80]
xor ebx, ebx
mov dword [esp + 0x6c], ebx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x3c]
cmp ebx, dword [esp + 0x34]
jae 0x42296e
mov edx, dword [esi]
mov dword [eax + ebx*8], edx
mov edx, dword [esi + 4]
mov dword [eax + ebx*8 + 4], edx
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [ecx + ebx*8], eax
mov dword [ecx + ebx*8 + 4], edx
jmp 0x4229ca
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
add eax, eax
mov dword [esp + 0x34], eax
add eax, eax
add eax, eax
add eax, eax
push eax
push ecx
mov dword [esp + 0x88], eax
call fcn.004b95e6
mov edx, dword [esp + 0x88]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x6c]
push edx
push eax
call fcn.004b95e6
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi]
mov dword [ecx + ebx*8], edx
mov edx, dword [esi + 4]
mov dword [ecx + ebx*8 + 4], edx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
add esp, 0x10
mov dword [esp + 0x64], eax
mov dword [eax + ebx*8], ecx
mov dword [eax + ebx*8 + 4], edx
cmp dword [0x5d5ce4], 0
mov dword [esp + 0x28], 0
jbe 0x422b16
nop
mov eax, dword [esp + 0x60]
mov cl, byte [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
push edi
call fcn.00423d00
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push ebx
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x24]
push 0
push edx
mov edx, dword [esp + 0x78]
push ebp
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
push esi
push edi
push ecx
call fcn.00423480
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x4c]
mov cl, byte [esp + 0x48]
push edx
push edi
call fcn.00423d00
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
add esp, 0x40
push ebx
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x1c]
push 1
push ecx
mov ecx, dword [esp + 0x78]
push ebp
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push esi
push edi
push eax
call fcn.00423480
add esp, 0x30
cmp dword [0x5d5f9c], 1
jle 0x422a94
mov edx, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
push ebx
push edx
push eax
push ecx
add ecx, eax
push ecx
push str._d_rels_found:__d_full___d_from__d_partial____d_total_polys__r
call fcn.004b7f6d
add esp, 0x18
cmp dword [ebp], 0
jbe 0x422b01
mov ecx, dword [ebp]
mov eax, dword [ebp + 0xc]
push 0x424760
push 4
push ecx
push eax
call fcn.004b8f30
mov eax, dword [ebp]
xor ecx, ecx
add esp, 0x10
dec eax
mov dword [esp + 0x18], ecx
je 0x422ae6
mov ecx, dword [ebp]
mov eax, dword [ebp + 0xc]
dec ecx
mov dword [esp + 0x70], ecx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + 0xc]
cmp ecx, dword [edx + 0xc]
jne 0x422ad9
inc dword [esp + 0x18]
add eax, 4
dec dword [esp + 0x70]
jne 0x422ac8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
add eax, dword [0x5d5cf8]
add edx, ecx
mov dword [ebp + 4], ecx
cmp edx, eax
jae 0x422b57
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [0x5d5ce4]
jb 0x4229e0
lea eax, [esp + 0x1c]
push eax
call fcn.00423e40
lea ecx, [esp + 0x20]
add esp, 4
push ecx
mov eax, esi
call fcn.00423fc0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x80]
add esp, 4
push edx
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
call fcn.00424290
add esp, 0x10
inc ebx
jmp 0x422945
cmp dword [0x5d5f9c], 0
jle 0x422b7d
mov edx, dword [ebp]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
push ebx
push edx
push ecx
push eax
add eax, ecx
push eax
push str._d_relations_found:__d_full___d_from__d_partial__using__d_polys_n
call fcn.004b7f6d
add esp, 0x18
lea eax, [esp + 0x88]
test eax, eax
je 0x422bdc
lea ecx, [esp + 0x40]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x44]
xor ebx, ebx
push ebx
xor edx, edx
or edx, dword [esp + 0x44]
push 0xa
or eax, ebx
push eax
push edx
call fcn.004bdc20
mov ebx, eax
push 0
add ebx, 0xb779c000
push 0xf4240
adc edx, 0xffd6a169
push edx
push ebx
call fcn.004bdc20
mov dword [esp + 0x88], eax
imul eax, eax, 0xf4240
mov dword [esp + 0x44], edx
sub ebx, eax
jmp 0x422be3
mov ebx, dword [esp + 0x8c]
push 8
call fcn.004b7263
mov edx, dword [esp + 0x8c]
add esp, 4
cmp dword [esp + 0x74], edx
jne 0x422c0b
mov ecx, ebx
sub ecx, dword [esp + 0x78]
mov dword [eax], 0
mov dword [eax + 4], ecx
jmp 0x422c4a
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0x74]
dec ecx
mov dword [esp + 0x80], ecx
mov dword [eax], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x78]
add ecx, 0xf4240
mov dword [eax + 4], ecx
cmp ecx, 0xf4240
jl 0x422c4a
add ecx, 0xfff0bdc0
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x80]
inc ecx
mov dword [eax], ecx
fild dword [eax + 4]
push eax
fdiv qword [0x5b4430]
fiadd dword [eax]
fstp qword [esp + 0x84]
call fcn.004b7229
add esp, 4
cmp dword [0x5d5f9c], 0
jle 0x422c88
fld qword [esp + 0x80]
sub esp, 8
fstp qword [esp]
push str.QS_elapsed_time___6.4f_seconds._n
call fcn.004b7f6d
add esp, 0xc
push edi
call fcn.004ba10a
mov edx, dword [esp + 0x64]
add esp, 4
push edx
call fcn.004b7229
mov eax, dword [esp + 0x6c]
add esp, 4
push eax
call fcn.004b7229
lea eax, [esi + 0x10]
add esp, 4
push eax
call fcn.00456900
add esp, 4
push esi
call fcn.004b7229
mov ecx, dword [esp + 0x80]
add esp, 4
push ecx
call fcn.004b7229
add esp, 4
push 0x78
mov dword [esp + 0x34], 0
call fcn.004b7263
add esp, 4
mov dword [esp + 0x34], eax
mov esi, eax
mov edi, 0xa
lea ecx, [ecx]
push esi
call fcn.004565a0
add esp, 4
add esi, 0xc
dec edi
jne 0x422cf0
lea edx, [esp + 0x74]
test edx, edx
je 0x422d59
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov edx, dword [esp + 0x44]
xor esi, esi
push esi
xor ecx, ecx
or ecx, dword [esp + 0x44]
push 0xa
or edx, esi
push edx
push ecx
call fcn.004bdc20
mov esi, eax
push edi
add esi, 0xb779c000
push 0xf4240
adc edx, 0xffd6a169
push edx
push esi
call fcn.004bdc20
mov dword [esp + 0x74], eax
imul eax, eax, 0xf4240
sub esi, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x78], esi
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x30]
push ecx
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push ebp
push edx
call fcn.00424790
lea eax, [esp + 0xac]
add esp, 0x24
test eax, eax
je 0x422de6
lea ecx, [esp + 0x40]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x44]
xor esi, esi
push esi
xor edx, edx
or edx, dword [esp + 0x44]
push 0xa
or eax, esi
push eax
push edx
call fcn.004bdc20
mov esi, eax
push 0
add esi, 0xb779c000
push 0xf4240
adc edx, 0xffd6a169
push edx
push esi
call fcn.004bdc20
mov edi, eax
imul eax, eax, 0xf4240
sub esi, eax
mov dword [esp + 0x44], edx
mov ebx, esi
jmp 0x422ded
mov edi, dword [esp + 0x88]
push 8
call fcn.004b7263
mov ecx, dword [esp + 0x78]
sub ebx, dword [esp + 0x7c]
add esp, 4
cmp ecx, edi
jne 0x422e0b
mov dword [eax], 0
jmp 0x422e2a
sub edi, ecx
add ebx, 0xf4240
dec edi
mov dword [eax], edi
mov dword [eax + 4], ebx
cmp ebx, 0xf4240
jl 0x422e2d
add ebx, 0xfff0bdc0
inc edi
mov dword [eax], edi
mov dword [eax + 4], ebx
fild dword [eax + 4]
push eax
fdiv qword [0x5b4430]
fiadd dword [eax]
fstp qword [esp + 0x84]
call fcn.004b7229
add esp, 4
cmp dword [0x5d5f9c], 0
jle 0x422e6b
fld qword [esp + 0x80]
sub esp, 8
fstp qword [esp]
push str.Gauss_elapsed_time___6.4f_seconds._n
call fcn.004b7f6d
add esp, 0xc
mov eax, dword [esp + 0x30]
test eax, eax
je 0x422f91
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x38], eax
mov eax, edi
call fcn.004464e0
cmp dword [esi + 0xea8], 0x3039
je 0x422f73
cmp dword [esi + 0x424], 0
je 0x422f73
cmp dword [0x5d64d0], 0
jne 0x422eba
push edi
push 0xa
push 0
jmp 0x422eed
push 0xa
push edi
call fcn.00457f70
add eax, 2
add esp, 8
cmp eax, 0x400
jl 0x422ee4
mov edx, dword [0x5d64d0]
push eax
push edx
call fcn.004b95e6
add esp, 8
mov dword [0x5d64d0], eax
mov eax, dword [0x5d64d0]
push edi
push 0xa
push eax
call fcn.00456610
lea ecx, [esp + 0x4c]
add esp, 0xc
push ecx
mov ebx, eax
call fcn.004565a0
add esp, 4
push 0xa
push edi
call fcn.00457f70
lea edx, [esp + 0x48]
push 0xa
push edx
mov esi, eax
call fcn.00456980
lea eax, [esi - 1]
push eax
lea ecx, [esp + 0x54]
push ecx
mov edx, ecx
push edx
call fcn.00459240
add esp, 0x1c
lea eax, [esp + 0x40]
push edi
push eax
call fcn.00456920
xor ecx, ecx
test eax, eax
setg cl
lea edx, [esp + 0x48]
push edx
sub esi, ecx
call fcn.00456900
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + 0x424]
add esp, 0xc
push ebx
push esi
push str.prp_d___s_n
push ecx
call fcn.00443960
mov esi, dword [esp + 0xcc]
add esp, 0x10
lea eax, [esi + 0xa28]
push edi
push eax
push eax
call fcn.00457360
add esp, 0xc
add edi, 0xc
dec dword [esp + 0x38]
jne 0x422e86
lea edx, [esp + 0x1c]
push edx
call fcn.00456900
lea eax, [esp + 0x58]
add esp, 4
push eax
call fcn.00456900
lea ecx, [esp + 0x94]
add esp, 4
push ecx
call fcn.00456900
lea edx, [esp + 0xb0]
add esp, 4
push edx
call fcn.00456900
lea eax, [esp + 0xa4]
add esp, 4
push eax
call fcn.00456900
mov ebx, dword [esp + 0x38]
add esp, 4
mov esi, ebx
mov edi, 0xa
push esi
call fcn.00456900
add esp, 4
add esi, 0xc
dec edi
jne 0x422fe6
push ebx
call fcn.004b7229
mov ebx, dword [esp + 0x30]
add esp, 4
cmp dword [ebx], edi
jbe 0x42302f
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx]
jmp 0x423010
mov ecx, dword [esi]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.004b7229
mov eax, dword [esi]
add esp, 4
push eax
call fcn.004b7229
add esp, 4
add esi, 4
dec edi
jne 0x423010
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.004b7229
add esp, 4
push ebx
call fcn.004b7229
add esp, 4
cmp dword [ebp], 0
jbe 0x42306f
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp]
mov edx, dword [esi]
mov eax, dword [edx + 0x1c]
push eax
call fcn.004b7229
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.004b7229
add esp, 4
add esi, 4
dec edi
jne 0x423050
mov edx, dword [ebp + 0xc]
push edx
call fcn.004b7229
add esp, 4
push ebp
call fcn.004b7229
mov eax, dword [esp + 0x40]
add esp, 4
push eax
call fcn.004b7229
mov ecx, dword [esp + 0x68]
add esp, 4
push ecx
call fcn.004b7229
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0xc]
mov edx, dword [esi + 4]
add esp, 4
push edx
call fcn.004b7229
mov eax, dword [esi]
add esp, 4
push eax
call fcn.004b7229
mov ecx, dword [esi + 0xc]
add esp, 4
push ecx
call fcn.004b7229
mov edx, dword [esi + 8]
add esp, 4
push edx
call fcn.004b7229
add esp, 4
push esi
call fcn.004b7229
add esp, 4
push edi
call fcn.004b7229
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret