Function at 0x43d160
Capabilities:
Create thread

Disassembly:
sub esp, 0x54
push ebx
push ebp
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp + 0x28]
mov ebx, dword [ebp + 0x34]
push esi
lea ecx, [esp + 0x1c]
push edi
mov edi, dword [ebp + 0x30]
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x43d1d3
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [esp + 0x34]
xor esi, esi
push esi
xor eax, eax
or eax, dword [esp + 0x34]
push 0xa
or ecx, esi
push ecx
push eax
call fcn.004bdc20
mov esi, eax
push 0
add esi, 0xb779c000
push 0xf4240
adc edx, 0xffd6a169
push edx
push esi
call fcn.004bdc20
mov dword [esp + 0x20], eax
imul eax, eax, 0xf4240
sub esi, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x24], esi
mov eax, dword [ebp + 0x58]
xor ebp, ebp
mov dword [esp + 0x48], eax
cmp ebx, ebp
ja 0x43d225
jb 0x43d1e6
cmp edi, eax
jae 0x43d225
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x14]
mov esi, dword [eax + edi*4]
mov eax, dword [esp + 0x10]
push esi
call fcn.0044eb90
mov ecx, dword [esp + 0x1c]
sub esi, eax
add esp, 4
mov dword [ecx + edi*4], esi
add edi, 1
adc ebx, ebp
cmp ebx, ebp
jb 0x43d1f7
ja 0x43d225
cmp edi, dword [esp + 0x48]
jb 0x43d1f7
lea edx, [esp + 0x28]
test edx, edx
je 0x43d284
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov edx, dword [esp + 0x3c]
xor esi, esi
push esi
xor ecx, ecx
or ecx, dword [esp + 0x3c]
push 0xa
or edx, esi
push edx
push ecx
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 + 0x4c], edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
jmp 0x43d28c
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
push 8
call fcn.004b7263
mov ecx, dword [esp + 0x24]
sub esi, dword [esp + 0x28]
add esp, 4
cmp ecx, edi
jne 0x43d2a9
mov dword [eax], ebp
mov dword [eax + 4], esi
jmp 0x43d2cd
sub edi, ecx
lea ecx, [esi + 0xf4240]
lea edx, [edi - 1]
mov dword [eax], edx
mov dword [eax + 4], ecx
cmp ecx, 0xf4240
jl 0x43d2cd
add ecx, 0xfff0bdc0
inc edx
mov dword [eax + 4], ecx
mov dword [eax], edx
fild dword [eax + 4]
push eax
fdiv qword [0x5b4430]
fiadd dword [eax]
fstp qword [esp + 0x1c]
call fcn.004b7229
add esp, 4
cmp dword [0x5d5f9c], 2
jle 0x43d305
fld qword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push str.time_to_compute_linear_sieve_roots___1.2f_n
call fcn.004b7f6d
add esp, 0xc
lea ecx, [esp + 0x20]
test ecx, ecx
je 0x43d360
lea edx, [esp + 0x40]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [esp + 0x44]
xor esi, esi
push esi
xor eax, eax
or eax, dword [esp + 0x44]
push 0xa
or ecx, esi
push ecx
push eax
call fcn.004bdc20
mov esi, eax
push 0
add esi, 0xb779c000
push 0xf4240
adc edx, 0xffd6a169
push edx
push esi
call fcn.004bdc20
mov dword [esp + 0x20], eax
imul eax, eax, 0xf4240
sub esi, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x24], esi
mov ebx, dword [0x5d6980]
lea eax, [ebx - 1]
xor edi, edi
xor ebp, ebp
test eax, eax
je 0x43d3fc
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventA]
jmp 0x43d380
mov esi, edi
imul esi, esi, 0x178
add esi, dword [esp + 0x6c]
push 0
push 1
push 0
push 0
mov dword [esi + 0x164], 0
call ebx
push 0
push 0
push 0
push 0
mov dword [esi + 0x16c], eax
call ebx
push 0
push 0
push esi
push 0x43f1d0
push 0
push 0
mov dword [esi + 0x170], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x170]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x5d6980]
add edi, 1
adc ebp, 0
dec eax
cdq
cmp ebp, edx
jb 0x43d380
ja 0x43d3f6
cmp edi, eax
jb 0x43d380
mov ebx, dword [0x5d6980]
mov esi, dword [esp + 0x68]
mov ebp, dword [esi + 0x58]
mov edi, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
xor edx, edx
sub edi, ebp
sbb ecx, edx
mov eax, ebx
cdq
push edx
push eax
push ecx
push edi
call fcn.004bdc20
test ebx, ebx
jle 0x43d454
mov edx, dword [esp + 0x6c]
add edx, 0x12c
mov dword [esp + 0x14], ebx
lea ecx, [ecx]
mov dword [edx], ebp
add ebp, eax
lea edi, [edx - 0xd4]
mov ecx, 0x32
mov dword [edx + 4], ebp
add edx, 0x178
dec dword [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x68]
jne 0x43d430
mov edi, dword [esp + 0x6c]
mov eax, ebx
imul eax, eax, 0x178
mov ecx, dword [eax + edi - 0x48]
lea eax, [eax + edi - 0x48]
xor edx, edx
cmp ecx, dword [esi + 0x50]
jne 0x43d474
cmp edx, dword [esi + 0x54]
je 0x43d479
mov ecx, dword [esi + 0x50]
mov dword [eax], ecx
xor eax, eax
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x43d624
lea esi, [edi + 0x12c]
lea ecx, [ecx]
lea edx, [ebx - 1]
cmp eax, edx
jne 0x43d5f6
cmp dword [0x5d5f9c], 2
jle 0x43d4be
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
push str.starting_root_computation_over__u_to__u_n
call fcn.004b7f6d
mov ebx, dword [0x5d6980]
add esp, 0xc
mov edx, dword [esp + 0x68]
cmp dword [edx + 0xb8], 0
jne 0x43d55f
mov edi, dword [esi]
mov ecx, dword [esi + 4]
xor ebp, ebp
xor eax, eax
cmp ebp, eax
ja 0x43d60d
jb 0x43d4f0
cmp edi, ecx
jae 0x43d60d
lea ebx, [ebx]
mov eax, dword [esi - 0xd4]
mov ebx, dword [eax + edi*4]
mov eax, dword [esp + 0x10]
push ebx
call fcn.0044eb90
mov edx, dword [esi - 0xd0]
mov ecx, ebx
sub ecx, eax
mov dword [edx + edi*4], ecx
mov ecx, dword [esi - 0x64]
mov eax, dword [esi - 0x60]
add esp, 4
add ecx, 1
adc eax, 0
mov dword [esp + 0x18], eax
mov eax, ebx
cdq
push edx
push eax
mov eax, dword [esp + 0x20]
push eax
push ecx
call fcn.004bdc90
mov ecx, dword [esi - 0xcc]
mov edx, edi
sub edx, dword [esi - 0x7c]
add edi, 1
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 4]
adc ebp, 0
xor eax, eax
cmp ebp, eax
jb 0x43d4f0
ja 0x43d607
cmp edi, ecx
jb 0x43d4f0
jmp 0x43d607
lea edx, [esp + 0x54]
push edx
call fcn.004565a0
mov eax, dword [esi - 0x64]
mov ecx, dword [esi - 0x20]
add esp, 4
inc eax
push eax
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.00456ad0
mov edi, dword [esi]
mov ecx, dword [esi + 4]
xor ebp, ebp
xor eax, eax
add esp, 0xc
cmp ebp, eax
ja 0x43d607
jb 0x43d5a0
cmp edi, ecx
jae 0x43d607
jmp 0x43d5a0
mov eax, dword [esi - 0xd4]
mov ebx, dword [eax + edi*4]
mov eax, dword [esp + 0x10]
push ebx
call fcn.0044eb90
mov edx, dword [esi - 0xd0]
add esp, 4
mov ecx, ebx
sub ecx, eax
lea eax, [esp + 0x54]
push ebx
push eax
mov dword [edx + edi*4], ecx
call fcn.00456d90
mov edx, dword [esi - 0xcc]
mov ecx, edi
sub ecx, dword [esi - 0x7c]
add esp, 8
add edi, 1
mov dword [edx + ecx*4], eax
mov ecx, dword [esi + 4]
adc ebp, 0
xor eax, eax
cmp ebp, eax
jb 0x43d5a0
ja 0x43d607
cmp edi, ecx
jb 0x43d5a0
jmp 0x43d607
mov eax, dword [esi + 0x40]
push eax
mov dword [esi + 0x38], 4
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ebx, dword [0x5d6980]
mov eax, dword [esp + 0x14]
inc eax
add esi, 0x178
mov dword [esp + 0x14], eax
cmp eax, ebx
jl 0x43d490
xor esi, esi
xor edi, edi
test ebx, ebx
je 0x43d673
lea esp, [esp]
lea eax, [ebx - 1]
cdq
cmp edi, edx
ja 0x43d660
jb 0x43d63e
cmp esi, eax
jae 0x43d660
mov edx, dword [esp + 0x6c]
mov eax, esi
imul eax, eax, 0x178
mov eax, dword [eax + edx + 0x170]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, dword [0x5d6980]
add esi, 1
mov eax, ebx
cdq
adc edi, 0
cmp edi, edx
jb 0x43d630
ja 0x43d673
cmp esi, eax
jb 0x43d630
mov ecx, dword [0x5d6980]
xor ebp, ebp
xor ebx, ebx
dec ecx
je 0x43d6ea
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, ebp
imul esi, esi, 0x178
add esi, dword [esp + 0x6c]
mov ecx, dword [esi + 0x16c]
push ecx
mov dword [esi + 0x164], 7
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov edx, dword [esi + 0x168]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 0x168]
push eax
call edi
mov ecx, dword [esi + 0x16c]
push ecx
call edi
mov edx, dword [esi + 0x170]
push edx
call edi
mov eax, dword [0x5d6980]
add ebp, 1
adc ebx, 0
dec eax
cdq
cmp ebx, edx
jb 0x43d686
ja 0x43d6ea
cmp ebp, eax
jb 0x43d686
lea eax, [esp + 0x28]
test eax, eax
je 0x43d745
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [esp + 0x4c]
xor esi, esi
push esi
xor edx, edx
or edx, dword [esp + 0x4c]
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 dword [esp + 0x28], eax
imul eax, eax, 0xf4240
sub esi, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], esi
push 8
call fcn.004b7263
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp edx, ecx
jne 0x43d76b
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x24]
mov dword [eax], 0
jmp 0x43d794
sub ecx, edx
lea edx, [ecx - 1]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x24]
mov dword [eax], edx
add ecx, 0xf4240
mov dword [eax + 4], ecx
cmp ecx, 0xf4240
jl 0x43d797
add ecx, 0xfff0bdc0
inc edx
mov dword [eax], edx
mov dword [eax + 4], ecx
fild dword [eax + 4]
push eax
fdiv qword [0x5b4430]
fiadd dword [eax]
fstp qword [esp + 0x1c]
call fcn.004b7229
add esp, 4
cmp dword [0x5d5f9c], 2
jle 0x43d7cf
fld qword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push str.time_to_compute_bucket_sieve_roots___1.2f_n
call fcn.004b7f6d
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret