Function at 0x43da70
Capabilities:
Create thread

Disassembly:
sub esp, 0x60
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x88]
mov edx, dword [0x5d6980]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x38], ecx
xor ecx, ecx
xor ebx, ebx
xor edi, edi
dec edx
je 0x43db13
mov ebp, dword [sym.imp.KERNEL32.dll_CreateEventA]
jmp 0x43daa2
xor ecx, ecx
mov esi, ebx
imul esi, esi, 0x178
add esi, dword [esp + 0x78]
push ecx
push 1
push ecx
push ecx
mov dword [esi + 0x164], ecx
call ebp
push 0
push 0
push 0
push 0
mov dword [esi + 0x16c], eax
call ebp
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 ebx, 1
adc edi, 0
dec eax
cdq
cmp edi, edx
jb 0x43daa0
ja 0x43db11
cmp ebx, eax
jb 0x43daa0
xor ecx, ecx
xor edi, edi
xor eax, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
cmp eax, ecx
jb 0x43deb4
ja 0x43db3f
cmp dword [esp + 0x38], ecx
jbe 0x43deb4
call fcn.004b7416
add eax, 0x20
push eax
call fcn.004b7c36
mov esi, dword [0x5d6980]
xor ecx, ecx
add esp, 4
xor ebx, ebx
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], ecx
test esi, esi
jle 0x43dbab
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
ja 0x43dba3
jb 0x43db76
cmp edi, dword [esp + 0x38]
jae 0x43dba3
mov ebp, dword [esp + 0x78]
mov ecx, eax
imul ecx, ecx, 0x178
add dword [esp + 0x20], 1
mov dword [ecx + ebp + 0x128], edi
adc ebx, 0
add eax, 1
adc edx, 0
add edi, 1
adc dword [esp + 0x1c], 0
cmp eax, esi
jl 0x43db66
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], edi
xor ebp, ebp
mov dword [esp + 0x44], ebp
cmp ebx, ebp
jb 0x43dcb8
ja 0x43dbc3
cmp ecx, ebp
jbe 0x43dcb8
mov edi, ecx
add edi, 0xffffffff
mov eax, ebx
adc eax, 0xffffffff
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
jmp 0x43dbe4
mov eax, dword [esp + 0x34]
mov esi, ebp
imul esi, esi, 0x178
add esi, dword [esp + 0x78]
cmp ebp, edi
jne 0x43dc70
cmp dword [esp + 0x44], eax
jne 0x43dc70
cmp dword [esp + 0x7c], 0
je 0x43dc65
mov edx, dword [esi + 0xd8]
push edx
call fcn.004b7263
mov ecx, dword [esi + 0x128]
mov edx, dword [esi + 0xf0]
add esp, 4
push esi
mov dword [edx + ecx*4], eax
call fcn.0043a500
mov eax, dword [esi + 0x128]
mov edi, dword [esp + 0x78]
add esp, 4
push eax
call fcn.0043a0d0
mov ecx, dword [esi + 0x128]
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0xf0]
mov dword [esi + 0x124], edx
mov edx, dword [eax + ecx*4]
add esp, 4
push edx
call fcn.004b7229
mov edi, dword [esp + 0x34]
add esp, 4
jmp 0x43dc8e
push esi
call fcn.0043a500
add esp, 4
jmp 0x43dc8e
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x16c]
neg eax
sbb eax, eax
add eax, 3
push ecx
mov dword [esi + 0x164], eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [esp + 0x44]
add ebp, 1
adc eax, 0
mov dword [esp + 0x44], eax
cmp eax, ebx
jb 0x43dbe0
ja 0x43dcb0
cmp ebp, dword [esp + 0x20]
jb 0x43dbe0
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
xor esi, esi
xor ebp, ebp
test ebx, ebx
jb 0x43dd16
ja 0x43dcc6
test ecx, ecx
je 0x43dd16
mov edi, ecx
add edi, 0xffffffff
mov eax, ebx
adc eax, 0xffffffff
mov dword [esp + 0x34], eax
cmp ebp, eax
ja 0x43dd02
jb 0x43dcde
cmp esi, edi
jae 0x43dd02
mov eax, dword [esp + 0x78]
mov edx, esi
imul edx, edx, 0x178
mov ecx, dword [eax + edx + 0x170]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
add esi, 1
adc ebp, 0
cmp ebp, ebx
jb 0x43dcd4
ja 0x43dd12
cmp esi, ecx
jb 0x43dcd4
mov edi, dword [esp + 0x18]
cmp dword [0x5d5f9c], 1
jle 0x43ddf2
mov eax, dword [esp + 0x10]
cdq
mov ebp, edx
xor edi, edi
xor esi, esi
mov dword [esp + 0x68], eax
test ebp, ebp
jb 0x43dd5f
ja 0x43dd40
test eax, eax
je 0x43dd5f
lea esp, [esp]
push 0x5b214c
call fcn.004b7f6d
add esp, 4
add edi, 1
adc esi, 0
cmp esi, ebp
jb 0x43dd40
ja 0x43dd5f
cmp edi, dword [esp + 0x68]
jb 0x43dd40
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, eax
and eax, 0x7fffffff
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], edx
fild qword [esp + 0x48]
and ecx, 0x80000000
xor edx, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], edx
fild qword [esp + 0x50]
xor eax, eax
mov ecx, eax
and eax, 0x7fffffff
fchs
and ecx, 0x80000000
faddp st(1)
mov dword [esp + 0x5c], eax
fild qword [esp + 0x58]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], edx
fild qword [esp + 0x60]
fchs
faddp st(1)
fdivp st(1)
fmul qword [0x5b45c8]
call fcn.004bd160
push eax
push str.sieving:__d__
call fcn.004b7f6d
mov dword [esp + 0x18], eax
call fcn.004b7416
add eax, 0x20
push eax
call fcn.004b7c36
mov edi, dword [esp + 0x24]
add esp, 0xc
cmp dword [esp + 0x7c], 0
je 0x43de42
xor ecx, ecx
xor edx, edx
test ebx, ebx
jb 0x43de42
ja 0x43de10
cmp dword [esp + 0x20], ecx
jbe 0x43de42
lea esp, [esp]
mov eax, ecx
imul eax, eax, 0x178
add eax, dword [esp + 0x78]
mov esi, dword [eax + 0x120]
add dword [esp + 0x28], esi
mov eax, dword [eax + 0x124]
adc dword [esp + 0x2c], eax
add ecx, 1
adc edx, 0
cmp edx, ebx
jb 0x43de10
ja 0x43de42
cmp ecx, dword [esp + 0x20]
jb 0x43de10
xor ecx, ecx
xor ebp, ebp
test ebx, ebx
jb 0x43de9a
ja 0x43de52
cmp dword [esp + 0x20], ecx
jbe 0x43de9a
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
mov edx, ecx
imul edx, edx, 0x178
add eax, edx
mov edx, dword [eax + 0x50]
mov eax, dword [eax + 0x54]
cmp eax, dword [esi + 0xc4]
ja 0x43de88
jb 0x43de7c
cmp edx, dword [esi + 0xc0]
jae 0x43de88
mov dword [esi + 0xc0], edx
mov dword [esi + 0xc4], eax
add ecx, 1
adc ebp, 0
cmp ebp, ebx
jb 0x43de52
ja 0x43de9a
cmp ecx, dword [esp + 0x20]
jb 0x43de52
xor eax, eax
cmp dword [esp + 0x1c], eax
jb 0x43db3f
ja 0x43deb2
cmp edi, dword [esp + 0x38]
jb 0x43db3f
xor ecx, ecx
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x28]
mov dword [eax + 0xa8], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0xac], edx
mov eax, dword [0x5d6980]
xor ebx, ebx
xor ebp, ebp
dec eax
je 0x43df50
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, edi
mov esi, ebx
imul esi, esi, 0x178
add esi, dword [esp + 0x78]
mov eax, dword [esi + 0x16c]
push eax
mov dword [esi + 0x164], 7
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0x168]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esi + 0x168]
push edx
call edi
mov eax, dword [esi + 0x16c]
push eax
call edi
mov ecx, dword [esi + 0x170]
push ecx
call edi
mov edx, dword [esi + 4]
push edx
call fcn.004b7229
mov eax, dword [0x5d6980]
add esp, 4
add ebx, 1
adc ebp, 0
dec eax
cdq
cmp ebp, edx
jb 0x43dee0
ja 0x43df50
cmp ebx, eax
jb 0x43dee0
mov eax, dword [esp + 0x78]
imul ebx, ebx, 0x178
mov ecx, dword [ebx + eax + 4]
push ecx
call fcn.004b7229
add esp, 4
cmp dword [0x5d5f9c], 1
jle 0x43dfad
mov eax, dword [esp + 0x10]
cdq
mov ebx, edx
xor edi, edi
xor esi, esi
mov ebp, eax
test ebx, ebx
jb 0x43dfad
ja 0x43df90
test ebp, ebp
je 0x43dfad
jmp 0x43df90
push 0x5b214c
call fcn.004b7f6d
add esp, 4
add edi, 1
adc esi, 0
cmp esi, ebx
jb 0x43df90
ja 0x43dfad
cmp edi, ebp
jb 0x43df90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret