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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, esp
lea edi, [ebp + 8]
mov eax, dword [0x5f3024]
xor eax, ebp
mov dword [esi + 0x98], eax
cmp byte [edi + 0x74], 0
mov dword [esi + 0x20], ecx
je 0x4f991f
mov ebx, ecx
mov ecx, dword [ecx + 4]
push edi
call fcn.004f1c50
cmp dword [edi + 0x44], 0
jne 0x4fa00d
mov edi, dword [edi + 0x70]
call fcn.004e04c0
test al, al
je 0x4f99be
lea ebx, [esi + 0x70]
mov ecx, edi
push ebx
call fcn.00503a70
mov dword [esi + 0xc], edi
lea edi, [esi + 0x48]
push edi
call fcn.004dae00
add esp, 4
mov ecx, dword [ebx]
sub ecx, dword [edi]
mov edx, dword [ebx + 4]
sbb edx, dword [edi + 4]
seto bl
mov eax, edx
sar eax, 0x1f
test bl, bl
cmovne ecx, eax
add eax, 0x80000000
test bl, bl
cmove eax, edx
lea edx, [ebp + 8]
mov edx, dword [edx + 0x4c]
xor ecx, edx
mov ebx, edx
sar ebx, 0x1f
xor ebx, eax
mov edx, 0x3afb7e91
mov eax, ecx
mul edx
imul edi, ecx, 0xd288ce70
add edi, edx
imul ebx, ebx, 0x3afb7e91
mov ecx, dword [esi + 0xc]
add ebx, edi
add eax, 0xd6388650
adc ebx, 0x346dc5
mov edx, ebx
shrd edx, eax, 4
shld ebx, eax, 0x1c
mov eax, 0xbac710ca
cmp eax, ebx
mov eax, 0x68db8
sbb eax, edx
jae 0x4f9d9e
mov dword [esi + 0xc], esp
sub esp, 0x70
mov edi, esp
mov ecx, edi
lea eax, [ebp + 8]
push eax
call fcn.004f7d90
cmp dword [edi], 0
je 0x4f9ee9
mov ebx, dword [esi + 0x20]
lea ecx, [ebx + 0x80]
cmp byte [edi + 0x59], 0
jne 0x4f9c10
lea eax, [esi + 0x70]
push edi
push eax
call fcn.004fb590
mov ecx, edi
call fcn.004f7de0
mov esp, dword [esi + 0xc]
lea eax, [ebp + 8]
mov eax, dword [eax + 0x70]
mov dword [esi + 0x38], eax
xor ecx, ecx
dec ecx
mov dword [esi + 0x43], ecx
mov dword [esi + 0x40], ecx
mov edi, dword [ebx + 0x84]
mov edx, dword [ebx + 0x88]
cmp edi, edx
je 0x4f9c1b
cmp byte [ebx + 0xb4], 0
je 0x4f9c1b
mov dword [esi + 0x10], 0
cmp dword [ebx + 0x90], 0
jne 0x4f9c51
mov eax, dword [edi + 0x20]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0xc], eax
mov ecx, dword [edi + 0x2c]
mov dword [esi + 0x28], ecx
mov ecx, dword [edi + 0x28]
mov dword [esi + 0x2c], ecx
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x24], ecx
mov cl, 1
mov dword [esi + 0x18], ecx
xor ecx, ecx
dec ecx
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x4f9c65
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x30], ecx
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0xc]
mov cl, byte [ebx + 0x118]
test dl, dl
je 0x4f9bfd
test cl, cl
je 0x4f9bfd
mov ecx, dword [ebx + 0x120]
xor ecx, dword [esi + 0x14]
mov edi, dword [ebx + 0x124]
xor edi, eax
or edi, ecx
jne 0x4f9ae0
mov ecx, dword [ebx + 0x128]
xor ecx, dword [esi + 0x2c]
mov edi, dword [ebx + 0x12c]
xor edi, dword [esi + 0x28]
or edi, ecx
jne 0x4f9ae0
mov ecx, dword [esi + 0x10]
cmp dword [ebx + 0x130], ecx
jne 0x4f9ae0
mov ecx, dword [esi + 0x24]
cmp dword [ebx + 0x134], ecx
je 0x4f9bd1
mov byte [ebx + 0x118], dl
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x43]
mov dword [ebx + 0x119], ecx
mov dword [ebx + 0x11c], edi
mov dword [ebx + 0x124], eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x120], eax
mov ecx, dword [esi + 0x28]
mov dword [ebx + 0x12c], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x128], ecx
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x10]
mov dword [ebx + 0x130], edx
mov edx, dword [esi + 0x24]
mov dword [ebx + 0x134], edx
mov edx, dword [esi + 0x30]
mov dword [ebx + 0x13c], edx
mov edx, dword [esi + 0x1c]
mov dword [ebx + 0x138], edx
mov edi, dword [ebx + 0x70]
mov dword [esi + 0x34], edi
mov eax, dword [esi + 0x18]
mov byte [esi + 0x70], al
mov edi, dword [esi + 0x43]
mov dword [esi + 0x74], edi
mov edi, dword [esi + 0x40]
mov dword [esi + 0x71], edi
mov eax, dword [esi + 0x14]
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], ecx
mov eax, dword [esi + 0x28]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x90], edx
mov eax, dword [esi + 0x30]
mov dword [esi + 0x94], eax
sub esp, 0x30
movsd xmm0, qword [esi + 0x90]
movsd qword [esp + 0x28], xmm0
movdqu xmm0, xmmword [esi + 0x70]
movups xmm1, xmmword [esi + 0x80]
movups xmmword [esp + 0x18], xmm1
movdqu xmmword [esp + 8], xmm0
mov eax, dword [esi + 0x38]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov ecx, dword [esi + 0x34]
call fcn.00502de0
test byte [0x5f55b4], 9
jne 0x4f9eec
lea ecx, [ebp + 8]
call fcn.004f7de0
mov ecx, dword [esi + 0x98]
xor ecx, ebp
call fcn.0050dc12
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x78
test dl, dl
setne ch
test cl, cl
setne cl
cmp ch, cl
je 0x4f9bd1
jmp 0x4f9ae0
inc dword [ebx + 0x90]
jmp 0x4f99ed
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x24], 0
jmp 0x4f9a6e
mov eax, dword [ebx + 0x7c]
xor ecx, ecx
cmp byte [eax + 0x20], 5
setb cl
mov dword [esi + 0x10], ecx
jmp 0x4f9a48
mov dword [esi + 0x30], eax
xor ecx, ecx
dec ecx
cmp byte [ebx + 0xb4], 0
je 0x4f9a79
mov eax, dword [ebx + 0x78]
cmp dword [eax + 8], 0
jne 0x4f9ea1
mov eax, dword [ebx + 0x7c]
cmp dword [eax + 8], 0
jne 0x4f9ea1
cmp edi, edx
jne 0x4f9eaa
lea eax, [ebx + 0x10]
mov edi, eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4fa0c7
cmp dword [ebx + 0x20], 0
setne byte [esi + 0x1c]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x18]
mov byte [esi + 0x48], al
mov eax, dword [esi + 0x40]
mov dword [esi + 0x49], eax
mov eax, dword [esi + 0x43]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x64], eax
xor eax, eax
dec eax
mov dword [esi + 0x6c], eax
mov dword [esi + 0x68], eax
mov edi, dword [esi + 0x30]
mov eax, dword [edi]
mov ecx, dword [eax + 8]
mov dword [esi + 0xc], ecx
call dword [section..00cfg]
sub esp, 0x34
movsd xmm0, qword [esi + 0x68]
movsd qword [esp + 0x28], xmm0
movdqu xmm0, xmmword [esi + 0x48]
movups xmm1, xmmword [esi + 0x58]
movups xmmword [esp + 0x18], xmm1
movdqu xmmword [esp + 8], xmm0
movzx eax, byte [esi + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 4], eax
lea eax, [esi + 0x70]
mov dword [esp], eax
mov ecx, edi
call dword [esi + 0xc]
mov dl, byte [esi + 0x70]
mov eax, dword [esi + 0x71]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x74]
mov dword [esi + 0x43], eax
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x78]
mov dword [esi + 0x14], eax
mov eax, ecx
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x94]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x24], ecx
jmp 0x4f9a85
lea edi, [esi + 0x70]
lea eax, [esi + 0x48]
push eax
call fcn.00503a70
lea ecx, [ebp + 8]
mov eax, dword [ecx + 0x20]
sub eax, dword [esi + 0x48]
mov ecx, dword [ecx + 0x24]
sbb ecx, dword [esi + 0x4c]
seto bl
mov edx, ecx
sar edx, 0x1f
test bl, bl
cmovne eax, edx
add edx, 0x80000000
test bl, bl
cmove edx, ecx
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], edx
mov ecx, dword [0x608c8c]
test ecx, ecx
jne 0x4f9e36
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x48], 0xd693a400
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], 0x3e8
sub esp, 0x1c
movsd xmm0, qword [esi + 0x48]
movsd qword [esp + 0xc], xmm0
movq xmm0, qword [esi + 0x40]
movq qword [esp + 4], xmm0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0x32
mov dword [esp], str.Scheduler.TaskQueueImpl.PostDelayedTaskDelay
call fcn.004d36c0
add esp, 0x1c
mov ecx, eax
mov dword [0x608c8c], eax
push edi
call fcn.004d46a0
mov edi, dword [0x608c90]
test edi, edi
mov ebx, dword [esi + 0x20]
jne 0x4f9e70
sub esp, 0x14
movdqa xmm0, xmmword [0x5e5b00]
movdqu xmmword [esp + 4], xmm0
mov dword [esp], str.Scheduler.TaskQueueImpl.DelayedIncomingQueueSize
call fcn.00459d90
add esp, 0x14
mov edi, eax
mov dword [0x608c90], eax
mov eax, dword [ebx + 0x88]
sub eax, dword [ebx + 0x84]
sar eax, 4
imul eax, eax, 0xb6db6db7
mov dword [esi + 0xc], eax
mov eax, dword [edi]
mov ebx, dword [eax + 0x14]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push dword [esi + 0xc]
call ebx
jmp 0x4f99be
mov byte [esi + 0x1c], 1
jmp 0x4f9cbd
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x2b0]
mov dword [esi + 0x34], eax
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 0x3c], ecx
mov byte [esi + 0x1c], 1
call dword [section..00cfg]
mov ecx, dword [esi + 0x34]
lea eax, [esi + 0x70]
push eax
call dword [esi + 0x3c]
mov eax, dword [esi + 0x70]
cmp eax, dword [edi + 0x20]
mov eax, dword [esi + 0x74]
sbb eax, dword [edi + 0x24]
jl 0x4f9c9a
jmp 0x4f9cbd
int3
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 8]
mov edi, dword [eax + 4]
call fcn.004dfb40
cmp edi, eax
jne 0x4f9bde
mov eax, dword [esi + 0x20]
lea edi, [eax + 0x10]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4fa0bb
mov edx, dword [esi + 0x20]
mov eax, dword [edx + 0x20]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x78]
mov ecx, dword [edx + 0x7c]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xc], ecx
mov eax, dword [eax + 8]
mov dword [esi + 0x14], eax
mov eax, dword [edx + 0x88]
mov dword [esi + 0x10], eax
mov ebx, dword [edx + 0x84]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x5f55b4], 0x19
je 0x4f9bde
mov eax, dword [esi + 0x10]
sub eax, ebx
mov ebx, dword [esi + 0xc]
add ebx, dword [esi + 0x18]
add ebx, dword [esi + 0x14]
sar eax, 4
imul eax, eax, 0xb6db6db7
add ebx, eax
mov eax, dword [esi + 0x20]
push dword [eax]
call fcn.0057ae60
add esp, 4
mov edi, eax
lea eax, [esi + 0x48]
push eax
call fcn.004e0380
add esp, 4
call fcn.004dfb40
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x70], xmm0
movdqa xmmword [esi + 0x80], xmm0
mov word [esi + 0x70], 0x301
mov dword [esi + 0x74], 0x5d63bb
mov ecx, ebx
sar ecx, 0x1f
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], ebx
sub esp, 0x30
lea ecx, [esi + 0x48]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x2c], eax
lea ebx, [esi + 0x70]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], eax
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x5f55b4
mov dword [esp], 0x43
call fcn.004e1330
add esp, 0x30
mov ecx, ebx
call fcn.004caad0
jmp 0x4f9bde
cmp byte [ebx + 0x148], 0
je 0x4f991f
test byte [0x5f5524], 9
je 0x4f991f
cmp byte [ebx + 0xb4], 0
jne 0x4f991f
cmp byte [ebx + 0x160], 0
je 0x4f991f
xor eax, eax
dec eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov eax, dword [ebx + 4]
mov edi, dword [eax + 0x2b0]
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dword [esi + 0xc], ecx
call dword [section..00cfg]
lea eax, [esi + 0x70]
mov ecx, edi
push eax
call dword [esi + 0xc]
cmp byte [ebx + 0x148], 0
je 0x4fa105
mov eax, dword [esi + 0x70]
mov edx, dword [esi + 0x20]
sub eax, dword [edx + 0x150]
mov ecx, dword [esi + 0x74]
sbb ecx, dword [edx + 0x154]
seto bl
mov edx, ecx
sar edx, 0x1f
test bl, bl
cmovne eax, edx
add edx, 0x80000000
test bl, bl
cmove edx, ecx
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
test byte [0x5f5524], 0x19
jne 0x4fa0d3
lea edi, [ebp + 8]
jmp 0x4f991f
mov ecx, edi
call fcn.004dfaf0
jmp 0x4f9f17
mov ecx, edi
call fcn.004dfaf0
jmp 0x4f9cae
lea eax, [esi + 0x40]
lea edx, [esi + 0x48]
mov dword [edx], eax
lea eax, [ebp + 8]
mov dword [edx + 4], eax
xor eax, eax
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], eax
sub esp, 8
movq xmm0, qword [esi + 0x70]
movq qword [esp], xmm0
mov ecx, str.task_posted_to_disabled_queue
call fcn.0057b120
add esp, 8
jmp 0x4fa0b3
call fcn.0053fdf0
int3