Function at 0x5930b0
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 [0x644040]
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 0x5930f8
mov ecx, dword [esp + 0x90]
xor ecx, ebp
call fcn.00568175
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [ebp + 8]
test edx, edx
jne 0x593137
lea ecx, [edi + 0x38]
call fcn.00401210
mov eax, dword [edi + 8]
or eax, dword [edi + 0xc]
jne 0x59333e
mov dword [esp + 0x78], 0xa
mov al, byte [0x649446]
test al, al
jne 0x59366c
mov ecx, dword [0x645d64]
test ecx, ecx
je 0x5930e2
jmp 0x593613
mov eax, dword [edi + 8]
or eax, dword [edi + 0xc]
jne 0x59360d
mov eax, dword [edi + 0x10]
or eax, dword [edi + 0x14]
jne 0x593610
mov eax, dword [edi]
or eax, dword [edi + 4]
jne 0x5932c5
mov eax, dword [0x6567a0]
mov ecx, dword [0x64783c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x593291
cmp byte [0x65679c], 0
mov dword [esp + 0x20], edi
je 0x59322c
mov esi, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x24]
mov dword [esp + 0x14], eax
mov eax, edx
shld eax, esi, 0x17
mov edi, esi
shl edi, 0x17
xor edi, esi
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 0x20]
xor eax, edx
mov ecx, eax
shld ecx, edi, 0xf
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x14]
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 + 0x18]
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 [0x6271b0]
movsd xmm1, qword [0x6271b8]
ucomisd xmm1, xmm0
ja 0x593263
mov dword [esp + 0x78], 0xa
mov al, byte [0x649446]
test al, al
jne 0x59361d
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 0x5930e2
lea esi, [esp + 0x78]
mov dword [esp], esi
mov ecx, dword [ebp + 8]
call fcn.004f4260
sub esp, 4
movsd xmm0, qword [esi]
movsd qword [edi + 8], xmm0
mov dword [esp], esi
call fcn.004056d0
movsd xmm0, qword [esi]
movsd qword [edi + 0x10], xmm0
jmp 0x59322c
mov dword [esp], 0x6567a0
call fcn.00564ee8
cmp dword [0x6567a0], 0xffffffff
jne 0x59317b
call fcn.0040e130
mov byte [0x65679c], al
mov dword [esp], 0x6567a0
call fcn.00564f37
jmp 0x59317b
lea esi, [esp + 0x88]
mov dword [esp], esi
mov ecx, ebx
call fcn.004f4260
sub esp, 4
mov eax, dword [esi]
sub eax, dword [edi]
mov edx, dword [esi + 4]
sbb edx, dword [edi + 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 [esi], eax
mov dword [esp + 0x80], eax
mov dword [esi + 4], ecx
mov dword [esp + 0x84], ecx
movsd xmm0, qword [esi]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [esp], xmm0
mov ecx, edi
mov edx, str.Scheduling.ThreadController.IdleDuration
call fcn.00402090
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi], eax
jmp 0x59315a
lea esi, [esp + 0x88]
mov dword [esp], esi
mov ecx, ebx
call fcn.004f4260
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.004056d0
mov edx, dword [ebx]
sub edx, dword [edi + 0x10]
mov ebx, dword [ebx + 4]
sbb ebx, dword [edi + 0x14]
seto al
mov byte [esp + 0x14], 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 + 0x18]
cmp byte [esp + 0x14], 0
cmove ecx, ebx
mov ebx, eax
sar ebx, 0x1f
cmp byte [esp + 0x18], 0
cmovne esi, ebx
xor ebx, 0x80000000
cmp byte [esp + 0x18], 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 + 0x18], 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.00402090
mov edx, dword [esp + 0x18]
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 + 0x14], ebx
mov dword [esp + 0x3c], esi
jb 0x5936d7
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.00402090
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x64], edi
mov ebx, dword [esp + 0x18]
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.00402090
mov eax, dword [esp + 0x30]
xor eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
xor ecx, dword [esp + 0x28]
or ecx, eax
je 0x5936c9
mov eax, ebx
mov ecx, edi
sar ecx, 0x1f
mov ebx, edi
xor ebx, ecx
xor eax, ecx
sub eax, ecx
mov dword [esp + 0x18], 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 + 0x18]
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 0x5936a7
mov eax, dword [esp + 0x14]
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.00588630
sub esp, 0x10
mov edi, dword [esp + 0x20]
lea ebx, [edi + 8]
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
movsd xmm0, qword [esp + 0x58]
movsd qword [esp], xmm0
mov ecx, edi
mov edx, eax
call fcn.00402a30
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.004f4260
sub esp, 4
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
jmp 0x593113
int3
int3
call fcn.005c4b60
jmp 0x5930e2
mov esi, dword [edi + 0x4c]
test esi, esi
je 0x59371e
movzx ebx, al
lea edi, [esp + 0x88]
mov dword [esp], edi
mov ecx, dword [ebp + 8]
call fcn.004f4260
sub esp, 4
lea eax, [esp + 0x80]
mov dword [eax], str.ThreadController_active
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.005d1480
mov edi, dword [esp + 0x20]
jmp 0x593241
movzx esi, al
lea edi, [esp + 0x88]
mov dword [esp], edi
mov ecx, ebx
call fcn.004f4260
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.005d16a0
jmp 0x593128
mov eax, dword [esp + 0x1c]
xor edx, edx
inc edx
add eax, edx
adc esi, dword [esp + 0x14]
cmp edx, eax
sbb dword [esp + 0x30], esi
jae 0x593724
xor eax, eax
xor ecx, dword [esp + 0x14]
setns al
neg eax
jmp 0x5936ce
mov eax, 0x64
mov esi, dword [esp + 0x1c]
jmp 0x5935bf
cmp dword [esp + 0x38], edi
sbb dword [esp + 0x34], ebx
jge 0x593721
test esi, esi
js 0x593708
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 + 0x14]
jmp 0x593486
mov eax, 0x80000000
dec eax
xor ecx, ecx
inc ecx
add ecx, 0xfffffffe
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jmp 0x5936fb
int3
int3
int3