Function at 0x1012e554
Capabilities:
Enumerate threads

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, dword [0x101c0bb0]
push edi
mov edi, edx
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [esi + 0x1a6c]
mov byte [eax + 0x84], 1
mov eax, dword [esi + 0x1a6c]
mov dword [ebp - 0xc], eax
test edx, 0x4000
je 0x1012e57f
mov eax, dword [ebp + 8]
test eax, eax
je 0x1012e55f
mov byte [eax], 0
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1012e569
mov byte [eax], 0
cmp dword [esi + 0x1aa4], edi
jne 0x1012e576
call fcn.100ed160
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edx
mov ecx, edx
or ecx, 1
and al, 7
cmovne ecx, edx
mov ebx, ecx
mov eax, ecx
or ebx, 0x20
and eax, 0x3f0
mov eax, dword [esi + 0x1a70]
cmovne ebx, ecx
mov dword [ebp - 0x14], eax
test ebx, 0x800
je 0x1012e5c2
mov eax, dword [ebp - 0xc]
cmp dword [esi + 0x1a74], eax
jne 0x1012e5c2
mov byte [ebp + 0x13], 1
mov dword [esi + 0x1a70], eax
jmp 0x1012e5c6
mov byte [ebp + 0x13], 0
mov ecx, dword [ebp - 0x18]
mov edx, edi
mov byte [ebp - 8], 0
call fcn.100ece10
mov dword [ebp - 4], eax
test al, al
je 0x1012e5ff
cmp byte [esi + 0x1e64], 0
je 0x1012e673
cmp dword [esi + 0x1e7c], edi
jne 0x1012e5ff
test byte [esi + 0x1e68], 2
jne 0x1012e5ff
mov byte [ebp - 4], 0
jmp 0x1012e608
cmp byte [esi + 0x1e64], 0
je 0x1012e673
test ebx, 0x200
je 0x1012e673
test byte [esi + 0x1e68], 4
jne 0x1012e673
mov ecx, 0x20
call fcn.100ecfb0
test al, al
je 0x1012e673
mov edx, 1
mov ecx, edi
mov dword [ebp - 4], edx
call fcn.100ed120
movss xmm1, dword [esi + 0x1a9c]
xorps xmm3, xmm3
addss xmm1, dword [0x101afb28]
movss xmm2, dword [0x101afc00]
movaps xmm0, xmm1
subss xmm0, dword [esi + 0x18]
call fcn.100e8b80
test eax, eax
je 0x1012e676
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 8], dl
mov dword [esi + 0x1ed4], edi
call fcn.100e33b0
mov edx, dword [ebp - 4]
cmp byte [ebp + 0x13], 0
je 0x1012e685
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x1a70], eax
test dl, dl
je 0x1012e86f
test ebx, 0x1000
je 0x1012e6b0
mov eax, dword [esi + 0x1a94]
cmp eax, edi
je 0x1012e6b0
test eax, eax
je 0x1012e6b0
xor dl, dl
xorps xmm5, xmm5
mov dword [ebp - 4], edx
jmp 0x1012e875
test ebx, 0x10000
je 0x1012e6df
cmp byte [esi + 0xfc], 0
jne 0x1012e85d
cmp byte [esi + 0xfd], 0
jne 0x1012e85d
cmp byte [esi + 0xfe], 0
jne 0x1012e85d
or eax, 0xffffffff
mov dword [ebp - 0x14], 2
or ecx, eax
mov dword [ebp + 0x10], eax
mov edx, ebx
mov dword [ebp - 0x10], ecx
and edx, 1
je 0x1012e708
cmp byte [esi + 0x3d8], 0
je 0x1012e708
xor eax, eax
mov dword [ebp + 0x10], eax
jmp 0x1012e734
test bl, 2
je 0x1012e71d
cmp byte [esi + 0x3d9], 0
je 0x1012e71d
mov eax, 1
jmp 0x1012e72d
test bl, 4
je 0x1012e730
cmp byte [esi + 0x3da], 0
cmovne eax, dword [ebp - 0x14]
mov dword [ebp + 0x10], eax
test edx, edx
je 0x1012e746
cmp byte [esi + 0x3e2], 0
je 0x1012e746
mov dword [ebp - 0x10], 0
jmp 0x1012e770
test bl, 2
je 0x1012e75d
cmp byte [esi + 0x3e3], 0
je 0x1012e75d
mov dword [ebp - 0x10], 1
jmp 0x1012e770
test bl, 4
je 0x1012e770
cmp byte [esi + 0x3e4], 0
cmovne ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
cmp eax, 0xffffffff
je 0x1012e7f1
cmp dword [esi + 0x1aa4], edi
je 0x1012e7f1
test bl, 0x60
je 0x1012e7ac
mov edx, dword [ebp - 0xc]
mov ecx, edi
call fcn.100ed1e0
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1ad8], eax
test ebx, 0x40000
jne 0x1012e7a2
call fcn.100dea90
mov ecx, edx
call fcn.100e33b0
mov eax, dword [ebp + 0x10]
test bl, 0x10
jne 0x1012e7c3
test ebx, 0x100
je 0x1012e7f1
cmp byte [eax + esi + 0x3dd], 0
je 0x1012e7f1
mov byte [ebp - 8], 1
test ebx, 0x20000
je 0x1012e7d6
call fcn.100ed160
jmp 0x1012e7e0
mov edx, dword [ebp - 0xc]
mov ecx, edi
call fcn.100ed1e0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x1ad8], eax
call fcn.100e33b0
test bl, bl
jns 0x1012e820
mov eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
je 0x1012e820
test ebx, 0x400
je 0x1012e817
movss xmm0, dword [esi + eax*4 + 0x408]
comiss xmm0, dword [esi + 0x8c]
jae 0x1012e81b
mov byte [ebp - 8], 1
call fcn.100ed160
cmp dword [esi + 0x1aa4], edi
jne 0x1012e85d
xorps xmm5, xmm5
test ebx, 0x400
je 0x1012e860
mov ecx, dword [esi + 0x1ad8]
movss xmm0, dword [esi + ecx*4 + 0x3f4]
comiss xmm0, xmm5
jbe 0x1012e860
mov dl, 1
call fcn.100e89a0
test al, al
je 0x1012e860
mov byte [ebp - 8], dl
mov byte [esi + 0x1c16], dl
jmp 0x1012e872
xorps xmm5, xmm5
cmp byte [ebp - 8], 0
je 0x1012e872
mov byte [esi + 0x1c16], 1
jmp 0x1012e872
xorps xmm5, xmm5
mov edx, dword [ebp - 4]
cmp dword [esi + 0x1bc8], edi
jne 0x1012e8b9
cmp byte [esi + 0x1c16], 0
jne 0x1012e8b9
cmp byte [esi + 0x1c17], 0
je 0x1012e8b9
mov eax, dword [esi + 0x1aa4]
test eax, eax
je 0x1012e8a5
cmp eax, edi
je 0x1012e8a5
mov ecx, dword [ebp - 0xc]
cmp eax, dword [ecx + 0x48]
jne 0x1012e8b9
test ebx, 0x80000
movzx edx, dl
mov eax, 1
cmove edx, eax
mov dword [ebp - 4], edx
cmp dword [esi + 0x1bd4], edi
jne 0x1012e932
mov eax, dword [esi + 0x1bd0]
mov edx, ebx
and edx, 0x400
mov dword [ebp - 0x14], eax
or edx, 0x200
xor ecx, ecx
shr edx, 9
call fcn.100ddd90
mov ecx, dword [ebp - 0x14]
comiss xmm0, xmm5
seta al
mov byte [ebp + 0x13], al
cmp ecx, edi
je 0x1012e8f6
test al, al
je 0x1012e902
mov byte [ebp - 8], 1
cmp ecx, edi
je 0x1012e90a
test al, al
jne 0x1012e90a
cmp dword [esi + 0x1aa4], edi
jne 0x1012e932
mov edx, dword [ebp - 0xc]
mov ecx, edi
mov dword [esi + 0x1bd0], edi
call fcn.100ed1e0
cmp dword [ebp - 0x14], edi
je 0x1012e925
cmp byte [ebp + 0x13], 0
je 0x1012e932
test ebx, 0x40000
jne 0x1012e932
call fcn.100dea90
xor dl, dl
mov byte [ebp + 0x13], dl
cmp dword [esi + 0x1aa4], edi
jne 0x1012ea44
mov eax, dword [esi + 0x1ad4]
cmp eax, 1
jne 0x1012ea1f
cmp byte [esi + 0x1ab0], dl
je 0x1012e986
mov eax, dword [ebp - 0x18]
movss xmm1, dword [esi + 0xe4]
movss xmm0, dword [esi + 0xe8]
subss xmm1, dword [eax]
subss xmm0, dword [eax + 4]
movss dword [esi + 0x1ac8], xmm1
movss dword [esi + 0x1acc], xmm0
mov ecx, dword [esi + 0x1ad8]
cmp byte [ecx + esi + 0xec], 0
je 0x1012e99a
mov dl, 1
jmp 0x1012ea0e
cmp byte [ebp - 4], 0
je 0x1012e9a5
test bl, 0x20
jne 0x1012e9ae
mov eax, ebx
shr eax, 6
test al, 1
je 0x1012ea06
cmp byte [esi + 0x1e64], 0
jne 0x1012ea06
test ebx, 0x100
je 0x1012e9cd
cmp byte [ecx + esi + 0x3ec], 0
je 0x1012e9cd
mov al, 1
jmp 0x1012e9cf
xor al, al
test ebx, 0x400
je 0x1012e9ed
movss xmm0, dword [esi + ecx*4 + 0x408]
comiss xmm0, dword [esi + 0x8c]
jb 0x1012e9ed
mov cl, 1
jmp 0x1012e9ef
xor cl, cl
test al, al
jne 0x1012ea06
mov eax, dword [ebp - 8]
test cl, cl
movzx eax, al
mov ecx, 1
cmove eax, ecx
mov dword [ebp - 8], eax
call fcn.100ed160
mov dl, byte [ebp + 0x13]
test ebx, 0x40000
jne 0x1012ea34
mov byte [esi + 0x1c16], 1
jmp 0x1012ea34
cmp eax, 2
jne 0x1012ea34
cmp dword [esi + 0x1bd4], edi
je 0x1012ea34
call fcn.100ed160
mov dl, byte [ebp + 0x13]
mov eax, dword [ebp - 8]
test al, al
je 0x1012ea47
mov byte [esi + 0x1ab3], 1
jmp 0x1012ea47
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x1012ea53
mov ebx, dword [ebp - 4]
mov byte [ecx], bl
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x1012ea5c
mov byte [ecx], dl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret