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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov edi, ecx
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0x90], eax
test edx, edx
setne al
cmp dword [ecx + 0x28], 0
mov dword [ecx + 0x28], edx
sete cl
xor cl, al
je 0x5b1e78
mov ecx, dword [esp + 0x90]
xor ecx, ebp
call fcn.005810d5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [ebp + 8]
test edx, edx
jne 0x5b1eb7
lea ecx, [edi + 0x38]
call fcn.00401210
mov eax, dword [edi + 8]
or eax, dword [edi + 0xc]
jne 0x5b203d
mov dword [esp + 0x78], 0xa
mov al, byte [0x64f42e]
test al, al
jne 0x5b23e8
mov ecx, dword [0x64bd64]
test ecx, ecx
je 0x5b1e62
jmp 0x5b238f
mov eax, dword [edi + 8]
or eax, dword [edi + 0xc]
jne 0x5b2389
mov eax, dword [edi + 0x10]
or eax, dword [edi + 0x14]
jne 0x5b238c
mov eax, dword [edi]
or eax, dword [edi + 4]
jne 0x5b230c
mov eax, dword [0x65c7a0]
mov ecx, dword [0x64d82c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x5b2009
cmp byte [0x65c79c], 0
mov dword [esp + 0x20], edi
je 0x5b1fa4
mov ebx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov esi, dword [edi + 0x24]
mov eax, edx
shld eax, ebx, 0x17
mov edi, ebx
shl edi, 0x17
xor edi, ebx
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 0x20]
xor eax, edx
mov ecx, eax
shld ecx, edi, 0xf
mov dword [esp + 0x14], ecx
mov edx, esi
shld edx, ebx, 6
mov ecx, esi
shr ecx, 0x1a
xor ecx, esi
xor ecx, eax
shr eax, 0x11
xor eax, ecx
xor edx, ebx
xor edx, edi
mov edi, dword [esp + 0x20]
xor edx, dword [esp + 0x14]
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], edx
add edx, ebx
mov dword [edi + 0x24], eax
adc eax, esi
mov ecx, eax
shr ecx, 0xb
movd xmm0, ecx
shld eax, edx, 0x15
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [esp + 0x48], xmm1
fild qword [esp + 0x48]
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
mulsd xmm0, qword [0x62d150]
movsd xmm1, qword [0x62d158]
ucomisd xmm1, xmm0
ja 0x5b1fdb
mov dword [esp + 0x78], 0xa
mov al, byte [0x64f42e]
test al, al
jne 0x5b2399
lea ecx, [edi + 0x38]
mov eax, dword [edi + 0x48]
inc eax
mov dword [edi + 0x48], eax
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00401120
sub esp, 8
jmp 0x5b1e62
lea esi, [esp + 0x78]
mov dword [esp], esi
mov ecx, dword [ebp + 8]
call fcn.0050a290
sub esp, 4
movsd xmm0, qword [esi]
movsd qword [edi + 8], xmm0
mov dword [esp], esi
call fcn.004055a0
movsd xmm0, qword [esi]
movsd qword [edi + 0x10], xmm0
jmp 0x5b1fa4
mov dword [esp], 0x65c7a0
call fcn.0057dc73
cmp dword [0x65c7a0], 0xffffffff
jne 0x5b1efb
call fcn.004112e0
mov byte [0x65c79c], al
mov dword [esp], 0x65c7a0
call fcn.0057dcc2
jmp 0x5b1efb
lea esi, [esp + 0x88]
mov dword [esp], esi
mov ecx, ebx
call fcn.0050a290
sub esp, 4
mov eax, dword [edi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x28], eax
mov ebx, esi
mov esi, dword [esi]
mov eax, dword [ebx + 4]
mov dword [esp + 0x2c], eax
mov dword [esp], ebx
call fcn.004055a0
mov edx, dword [ebx]
sub edx, dword [edi + 0x10]
mov ebx, dword [ebx + 4]
sbb ebx, dword [edi + 0x14]
seto al
mov byte [esp + 0x18], al
mov ecx, ebx
sar ecx, 0x1f
test al, al
cmovne edx, ecx
xor ecx, 0x80000000
mov dword [esp + 0x30], esi
sub esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
sbb eax, dword [esp + 0x28]
seto byte [esp + 0x14]
cmp byte [esp + 0x18], 0
cmove ecx, ebx
mov ebx, eax
sar ebx, 0x1f
cmp byte [esp + 0x14], 0
cmovne esi, ebx
xor ebx, 0x80000000
cmp byte [esp + 0x14], 0
cmove ebx, eax
cmp esi, edx
mov eax, ebx
sbb eax, ecx
mov dword [esp + 0x34], ecx
mov eax, ecx
cmovl eax, ebx
mov dword [esp + 0x38], edx
cmovl edx, esi
mov dword [esp + 0x14], edx
lea ecx, [esp + 0x88]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebx
movsd xmm0, qword [ecx]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [esp], xmm0
mov dword [esp + 0x20], edi
mov ecx, edi
mov edi, esi
mov esi, eax
mov edx, str.Scheduling.ThreadController.ActiveIntervalDuration
call fcn.004020f0
mov edx, dword [esp + 0x14]
mov eax, edx
add eax, 1
mov ecx, esi
adc ecx, 0x80000000
cmp eax, 2
sbb ecx, 0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], esi
jb 0x5b2453
mov eax, edi
sub eax, edx
mov ecx, ebx
sbb ecx, esi
seto dl
mov esi, ecx
sar esi, 0x1f
test dl, dl
cmovne eax, esi
add esi, 0x80000000
test dl, dl
cmove esi, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], esi
movsd xmm0, qword [esp + 0x78]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [esp], xmm0
mov esi, dword [esp + 0x20]
mov ecx, esi
mov edx, str.Scheduling.ThreadController.ActiveIntervalOffCpuDuration
call fcn.004020f0
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x64], edi
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x60], ebx
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp], xmm0
mov ecx, esi
mov edx, str.Scheduling.ThreadController.ActiveIntervalOnCpuDuration
call fcn.004020f0
mov eax, dword [esp + 0x30]
xor eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
xor ecx, dword [esp + 0x28]
or ecx, eax
je 0x5b2445
mov eax, ebx
mov ecx, edi
sar ecx, 0x1f
mov ebx, edi
xor ebx, ecx
xor eax, ecx
sub eax, ecx
mov dword [esp + 0x14], eax
sbb ebx, ecx
mov dword [esp + 0x2c], ebx
mov ecx, 0x64
mul ecx
mov dword [esp + 0x28], eax
imul ecx, ebx, 0x64
mov esi, edx
add esi, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], 0
neg eax
mov edx, 0
sbb edx, esi
mov esi, edi
xor edi, edi
inc edi
mov ebx, edi
add ebx, 0xffffffff
mov ecx, 0x80000000
adc ecx, 0xffffffff
test esi, esi
cmovns edx, dword [esp + 0x24]
cmovns eax, dword [esp + 0x28]
lea esi, [edi - 2]
cmovns ebx, esi
mov esi, 0x80000000
lea esi, [esi - 1]
cmovns ecx, esi
mov esi, 0x7ae147ae
cmp esi, dword [esp + 0x14]
mov esi, 0x147ae14
sbb esi, dword [esp + 0x2c]
cmovae ebx, eax
cmovae ecx, edx
mov eax, ebx
add eax, edi
mov edx, ecx
mov esi, 0x80000000
adc edx, esi
cmp eax, 2
sbb edx, 0
jb 0x5b2423
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.005a13d0
sub esp, 0x10
mov edi, dword [esp + 0x20]
lea ebx, [edi + 8]
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
movsd xmm0, qword [esp + 0x58]
movsd qword [esp], xmm0
mov ecx, edi
mov edx, eax
call fcn.00402c90
xorps xmm0, xmm0
movups xmmword [ebx], xmm0
lea esi, [esp + 0x50]
mov dword [esp], esi
mov ebx, dword [ebp + 8]
mov ecx, ebx
call fcn.0050a290
sub esp, 4
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
jmp 0x5b1e93
mov esi, edi
lea edi, [esp + 0x88]
mov dword [esp], edi
mov ecx, ebx
call fcn.0050a290
sub esp, 4
mov eax, dword [edi]
sub eax, dword [esi]
mov edx, dword [edi + 4]
sbb edx, dword [esi + 4]
seto bl
mov ecx, edx
sar ecx, 0x1f
test bl, bl
cmovne eax, ecx
add ecx, 0x80000000
test bl, bl
cmove ecx, edx
mov dword [edi], eax
mov dword [esp + 0x80], eax
mov dword [edi + 4], ecx
mov dword [esp + 0x84], ecx
movsd xmm0, qword [edi]
mov edi, esi
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [esp], xmm0
mov ecx, esi
mov edx, str.Scheduling.ThreadController.IdleDuration
call fcn.004020f0
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], eax
jmp 0x5b1eda
int3
int3
call fcn.005e6260
jmp 0x5b1e62
mov edi, dword [edi + 0x4c]
test edi, edi
je 0x5b249a
movzx ebx, al
lea esi, [esp + 0x88]
mov dword [esp], esi
mov ecx, dword [ebp + 8]
call fcn.0050a290
sub esp, 4
lea eax, [esp + 0x80]
mov dword [eax], str.ThreadController_active
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.005f2d00
mov edi, dword [esp + 0x20]
jmp 0x5b1fb9
movzx esi, al
lea edi, [esp + 0x88]
mov dword [esp], edi
mov ecx, ebx
call fcn.0050a290
sub esp, 4
lea eax, [esp + 0x80]
mov dword [eax], 0
mov dword [esp + 4], edi
mov dword [esp], eax
lea edx, [esp + 0x78]
mov ecx, esi
call fcn.005f2f20
jmp 0x5b1ea8
mov eax, dword [esp + 0x1c]
xor edx, edx
inc edx
add eax, edx
adc esi, dword [esp + 0x18]
cmp edx, eax
sbb dword [esp + 0x30], esi
jae 0x5b24a0
xor eax, eax
xor ecx, dword [esp + 0x18]
setns al
neg eax
jmp 0x5b244a
mov eax, 0x64
mov esi, dword [esp + 0x1c]
jmp 0x5b22be
cmp dword [esp + 0x38], edi
sbb dword [esp + 0x34], ebx
jge 0x5b249d
test esi, esi
js 0x5b2484
xor eax, eax
inc eax
add eax, 0xffffffff
mov ecx, 0x80000000
adc ecx, 0xffffffff
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
jmp 0x5b2185
mov eax, 0x80000000
dec eax
xor ecx, ecx
inc ecx
add ecx, 0xfffffffe
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jmp 0x5b2477
int3
int3
int3