Function at 0x4f9800
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 0x4f983f
mov ebx, ecx
mov ecx, dword [ecx + 4]
push edi
call fcn.004f1b70
cmp dword [edi + 0x44], 0
jne 0x4f9f2d
mov edi, dword [edi + 0x70]
call fcn.004e03e0
test al, al
je 0x4f98de
lea ebx, [esi + 0x70]
mov ecx, edi
push ebx
call fcn.00503990
mov dword [esi + 0xc], edi
lea edi, [esi + 0x48]
push edi
call fcn.004dad20
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 0x4f9cbe
mov dword [esi + 0xc], esp
sub esp, 0x70
mov edi, esp
mov ecx, edi
lea eax, [ebp + 8]
push eax
call fcn.004f7cb0
cmp dword [edi], 0
je 0x4f9e09
mov ebx, dword [esi + 0x20]
lea ecx, [ebx + 0x80]
cmp byte [edi + 0x59], 0
jne 0x4f9b30
lea eax, [esi + 0x70]
push edi
push eax
call fcn.004fb4b0
mov ecx, edi
call fcn.004f7d00
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 0x4f9b3b
cmp byte [ebx + 0xb4], 0
je 0x4f9b3b
mov dword [esi + 0x10], 0
cmp dword [ebx + 0x90], 0
jne 0x4f9b71
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 0x4f9b85
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 0x4f9b1d
test cl, cl
je 0x4f9b1d
mov ecx, dword [ebx + 0x120]
xor ecx, dword [esi + 0x14]
mov edi, dword [ebx + 0x124]
xor edi, eax
or edi, ecx
jne 0x4f9a00
mov ecx, dword [ebx + 0x128]
xor ecx, dword [esi + 0x2c]
mov edi, dword [ebx + 0x12c]
xor edi, dword [esi + 0x28]
or edi, ecx
jne 0x4f9a00
mov ecx, dword [esi + 0x10]
cmp dword [ebx + 0x130], ecx
jne 0x4f9a00
mov ecx, dword [esi + 0x24]
cmp dword [ebx + 0x134], ecx
je 0x4f9af1
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.00502d00
test byte [0x5f55b4], 9
jne 0x4f9e0c
lea ecx, [ebp + 8]
call fcn.004f7d00
mov ecx, dword [esi + 0x98]
xor ecx, ebp
call fcn.0050db32
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 0x4f9af1
jmp 0x4f9a00
inc dword [ebx + 0x90]
jmp 0x4f990d
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 0x4f998e
mov eax, dword [ebx + 0x7c]
xor ecx, ecx
cmp byte [eax + 0x20], 5
setb cl
mov dword [esi + 0x10], ecx
jmp 0x4f9968
mov dword [esi + 0x30], eax
xor ecx, ecx
dec ecx
cmp byte [ebx + 0xb4], 0
je 0x4f9999
mov eax, dword [ebx + 0x78]
cmp dword [eax + 8], 0
jne 0x4f9dc1
mov eax, dword [ebx + 0x7c]
cmp dword [eax + 8], 0
jne 0x4f9dc1
cmp edi, edx
jne 0x4f9dca
lea eax, [ebx + 0x10]
mov edi, eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4f9fe7
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 0x4f99a5
lea edi, [esi + 0x70]
lea eax, [esi + 0x48]
push eax
call fcn.00503990
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 0x4f9d56
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.004d35e0
add esp, 0x1c
mov ecx, eax
mov dword [0x608c8c], eax
push edi
call fcn.004d45c0
mov edi, dword [0x608c90]
test edi, edi
mov ebx, dword [esi + 0x20]
jne 0x4f9d90
sub esp, 0x14
movdqa xmm0, xmmword [0x5e5a80]
movdqu xmmword [esp + 4], xmm0
mov dword [esp], str.Scheduler.TaskQueueImpl.DelayedIncomingQueueSize
call fcn.00459cb0
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 0x4f98de
mov byte [esi + 0x1c], 1
jmp 0x4f9bdd
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 0x4f9bba
jmp 0x4f9bdd
int3
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 8]
mov edi, dword [eax + 4]
call fcn.004dfa60
cmp edi, eax
jne 0x4f9afe
mov eax, dword [esi + 0x20]
lea edi, [eax + 0x10]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4f9fdb
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 0x4f9afe
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.0057ad80
add esp, 4
mov edi, eax
lea eax, [esi + 0x48]
push eax
call fcn.004e02a0
add esp, 4
call fcn.004dfa60
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x70], xmm0
movdqa xmmword [esi + 0x80], xmm0
mov word [esi + 0x70], 0x301
mov dword [esi + 0x74], 0x5d637b
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.004e1250
add esp, 0x30
mov ecx, ebx
call fcn.004ca9f0
jmp 0x4f9afe
cmp byte [ebx + 0x148], 0
je 0x4f983f
test byte [0x5f5524], 9
je 0x4f983f
cmp byte [ebx + 0xb4], 0
jne 0x4f983f
cmp byte [ebx + 0x160], 0
je 0x4f983f
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 0x4fa025
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 0x4f9ff3
lea edi, [ebp + 8]
jmp 0x4f983f
mov ecx, edi
call fcn.004dfa10
jmp 0x4f9e37
mov ecx, edi
call fcn.004dfa10
jmp 0x4f9bce
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.0057b040
add esp, 8
jmp 0x4f9fd3
call fcn.0053fd10
int3