Function at 0x402f70
Capabilities:
Enumerate threads

Disassembly:
sub esp, 0x20
push ebx
mov ebx, dword [0x4508ec]
push ebp
push esi
mov esi, dword [0x4508e0]
mov eax, 0xa61fcc17
imul esi
mov ecx, dword [0x4508d0]
add edx, esi
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ebx
imul edx, edx, 0x185
sub edx, eax
sub edx, ecx
mov ecx, dword [0x4508d4]
push edi
mov edi, dword [esp + 0x34]
test edi, edi
lea eax, [edx + ecx + 0xd7]
mov dword [str._r_____r_____n], eax
jne 0x40305f
mov edx, dword [0x4508e8]
mov eax, 0x49e28fbb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
mov eax, 0x73d0e82d
imul esi
sub edx, esi
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x4508e4]
imul edx, edx, 0x315
sub eax, ebp
mov ebp, dword [str._r_____r_____n]
sub eax, edx
mov edx, dword [0x4508cc]
add eax, ebp
lea eax, [edx + eax - 0x30e]
mov dword [0x4508cc], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40305f
mov ebp, eax
lea edx, [ebp + 1]
mov dword [esp + 0x34], edx
lea ecx, [ecx]
mov dl, byte [ebp]
inc ebp
test dl, dl
jne 0x403030
sub ebp, dword [esp + 0x34]
mov dword [esp + 0x34], ebp
je 0x40305f
push eax
call fcn.00402920
mov ecx, dword [0x4508d4]
mov esi, dword [0x4508e0]
mov ebx, dword [0x4508ec]
add esp, 4
mov edi, eax
mov ebp, dword [0x4508e4]
mov eax, 0x97012e03
imul ebp, ebp, 0x1a8
imul ecx
add edx, ecx
sar edx, 8
add ebp, edx
mov eax, edx
mov edx, ebx
imul edx, edx, 0x185
shr eax, 0x1f
add eax, ebp
mov ebp, dword [0x4508d8]
sub eax, edx
sub eax, ebp
add eax, 0x4f2
test edi, edi
mov dword [0x4508d0], eax
jne 0x4030aa
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov eax, 0x197b05f9
imul esi
sar edx, 6
mov eax, edx
mov ebp, dword [0x4508e4]
shr eax, 0x1f
add eax, edx
mov esi, eax
mov eax, 0x21d814d3
imul ecx
sub edx, ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ecx, esi
sub ecx, ebp
lea edx, [ecx + ebx - 0x30e]
push edi
mov dword [0x4508d4], edx
call dword [sym.imp.KERNEL32.dll_GetProcessId]
mov ebx, eax
push ebx
push 4
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov ecx, dword [0x4508e0]
mov esi, dword [0x4508dc]
mov dword [esp + 0x10], eax
mov edi, dword [0x4508d0]
mov eax, 0x60f25deb
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x4508e8]
mov ebp, esi
imul ebp, ebp, 0x377
sub ebp, eax
add ebp, edx
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov ecx, edi
imul ecx, ecx, 0x1a8
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
lea ecx, [ecx + ebp - 0x15c]
mov ebp, dword [0x4508ec]
mov dword [esp + 0x2c], edx
imul ebp, ebp, 0x30f
mov eax, 0x68fed1fd
imul ecx
sub edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, ebp
mov ebp, eax
mov eax, 0xa8791709
imul esi
add edx, esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add ebp, edx
lea edx, [eax + ebp + 0x456]
mov dword [0x4508d8], ecx
imul ecx, ecx, 0x30f
mov eax, edi
imul eax, eax, 0x3a7
sub ecx, eax
mov eax, 0x49e28fbb
mov dword [0x4508dc], edx
xor esi, esi
imul edi
mov dword [esp + 0x14], 0x1c
mov ebp, dword [esp + 0x10]
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x4508d4]
imul edx, edx, 0x315
sub ecx, eax
lea eax, [esp + 0x14]
push eax
add ecx, edx
push ebp
mov dword [0x4508e0], ecx
call sub.KERNEL32.dll_Thread32First
test eax, eax
je 0x4033b9
mov eax, dword [0x4508dc]
mov ecx, dword [0x4508d0]
imul eax, eax, 0x222
mov edi, dword [str._r_____r_____n]
mov dword [esp + 0x34], eax
mov eax, 0xde27eb2d
imul ecx
mov eax, dword [esp + 0x34]
add edx, ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, edi
imul edx, edx, 0x24e
sub eax, ecx
lea ecx, [eax + edx - 0x30e]
cmp dword [esp + 0x20], ebx
mov dword [0x4508e4], ecx
jne 0x403298
mov ecx, dword [0x4508e8]
mov eax, 0x197b05f9
imul ecx
mov ecx, dword [0x4508cc]
sar edx, 6
imul ecx, ecx, 0x2a4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x4508e0]
imul edx, edx, 0x1b2
sub ecx, eax
add ecx, edx
sub ecx, dword [0x4508d0]
sub ecx, 0x163
mov dword [0x4508e8], ecx
jmp 0x4033b5
mov eax, 0x8c2f17d3
imul ecx, ecx, 0x1b2
imul edi
add edx, edi
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x60f25deb
imul dword [0x4508dc]
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, edi
sub eax, ecx
mov ecx, dword [0x4508d4]
imul ecx, ecx, 0x1a8
lea edx, [eax + ecx - 0x30e]
lea eax, [esp + 0x14]
push eax
push ebp
mov dword [0x4508ec], edx
call sub.KERNEL32.dll_Thread32Next
test eax, eax
je 0x4033b9
jmp 0x403300
mov ecx, dword [0x4508e8]
mov eax, 0x49e28fbb
imul ecx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edi, ecx
mov ecx, dword [0x4508e0]
mov eax, 0x73d0e82d
imul ecx
sub edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, edi
mov edi, dword [0x4508e4]
mov edx, edi
imul edx, edx, 0x315
sub eax, edx
add eax, dword [str._r_____r_____n]
mov edx, dword [0x4508cc]
lea eax, [edx + eax - 0x30e]
mov dword [0x4508cc], eax
cmp dword [esp + 0x20], ebx
je 0x403373
lea ecx, [esp + 0x14]
push ecx
push ebp
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x403300
jmp 0x4033b9
mov eax, 0x197b05f9
imul ecx
mov ecx, dword [0x4508d4]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
mov eax, 0x21d814d3
imul ecx
sub edx, ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x4508ec]
sub ecx, esi
sub ecx, edi
lea eax, [ecx + edx - 0x30e]
mov dword [0x4508d4], eax
mov esi, dword [esp + 0x1c]
mov ecx, dword [0x4508d8]
mov edi, dword [0x4508ec]
mov eax, 0x68fed1fd
imul edi, edi, 0x30f
imul ecx
sub edx, ecx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov ebx, ecx
mov ecx, dword [0x4508dc]
mov eax, 0xa8791709
imul ecx
add edx, ecx
sar edx, 8
sub ebx, edi
mov eax, edx
shr eax, 0x1f
add ebx, edx
lea ecx, [eax + ebx + 0x456]
push ebp
mov dword [0x4508dc], ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret