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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov ecx, dword [ebp + 8]
mov eax, ecx
shr eax, 0x15
movzx esi, word [eax + eax + 0x7456cc]
cmp si, 0xfffe
sete bl
mov eax, ecx
and eax, 0xffe00000
shl esi, 0x15
mov edx, eax
sub edx, esi
sete bh
or bh, bl
je 0x4f7080
mov esi, ecx
shr esi, 9
and esi, 0xfe0
lea edx, [esi + eax]
movzx eax, byte [esi + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
mov edi, eax
and edi, 0xffe00000
shl eax, 9
and eax, 0x3fffc000
lea esi, [edi + eax]
add eax, edi
add eax, 0xffe00000
sub ecx, eax
mov edi, dword [edx + 0x1008]
mov eax, ecx
mul dword [edi + 0x18]
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 0x1c]
imul edi, ecx
add edx, edi
shr edx, 0xa
imul edx, eax
lea ebx, [edx + esi]
add ebx, 0xffe00000
test ebx, 0xfff
je 0x4f6e6a
add eax, ebx
add eax, 0xfffffffc
mov ecx, 0xfffffffe
lock xadd dword [eax], ecx
add ecx, 0x3ffffffe
test ecx, 0x3fffffff
je 0x4f6e85
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, ebx
and eax, 0xffe00000
mov ecx, ebx
shr ecx, 9
and ecx, 0xff8
add eax, ecx
add eax, 0x2000
jmp 0x4f6e4b
mov eax, ebx
and eax, 0xffe00000
mov ecx, ebx
shr ecx, 9
and ecx, 0x1fe0
or ecx, eax
mov esi, ecx
or esi, 0x1000
or ecx, 0x101e
movzx eax, byte [ecx]
and eax, 0x3f
shl eax, 5
sub esi, eax
mov eax, esi
and eax, 0xffe01000
mov edx, dword [eax]
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
lock sub dword [edx + 0x15e0], eax
lock dec dword [edx + 0x15e4]
cmp byte [edx + 3], 1
jne 0x4f6ffa
mov eax, dword [0x746d68]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp byte [eax + 0x90], 0
je 0x4f7104
mov eax, dword [0x746d68]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov edi, dword [eax + 0xb4]
cmp edi, 2
jb 0x4f6ffa
mov eax, dword [esi + 8]
lea ecx, [edx + 0x48]
mov dword [ebp - 0x10], edx
add edx, 0x1588
cmp edx, eax
setae dl
cmp ecx, eax
ja 0x4f70f1
mov dword [ebp - 0x14], esi
test dl, dl
mov edx, dword [ebp - 0x10]
je 0x4f6fd3
sub eax, ecx
sar eax, 3
imul esi, eax, 0xcccccccd
add dword [edi + 0x30], 1
adc dword [edi + 0x34], 0
movzx eax, word [0x7456c8]
cmp esi, eax
ja 0x4f6fcb
lea eax, [edi + esi*8]
add eax, 0x78
mov dword [ebp - 0x14], eax
mov ecx, edi
call fcn.0050af30
mov eax, dword [edi + esi*8 + 0x78]
bswap eax
mov dword [ebx], eax
not eax
mov dword [ebx + 4], eax
mov dword [edi + esi*8 + 0x78], ebx
inc byte [edi + esi*8 + 0x7c]
movzx eax, word [edi + esi*8 + 0x7e]
add dword [edi], eax
add dword [edi + 0x38], 1
adc dword [edi + 0x3c], 0
movzx eax, byte [edi + esi*8 + 0x7d]
cmp byte [edi + esi*8 + 0x7c], al
ja 0x4f70c4
movzx eax, byte [edi + 4]
test al, 1
jne 0x4f70f8
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 6]
mov ecx, dword [ebp - 0x10]
sub eax, dword [ecx + 0x10]
add dword [edi + 0x68], 1
adc dword [edi + 0x6c], 0
add dword [edi + 0x70], eax
adc dword [edi + 0x74], 0
jmp 0x4f6e62
add dword [edi + 0x40], 1
adc dword [edi + 0x44], 0
mov esi, dword [ebp - 0x14]
test byte [esi + 0xf], 8
jne 0x4f7118
mov eax, dword [esi + 8]
add eax, 0xc
mov eax, dword [eax]
sub eax, dword [edx + 0x10]
add dword [edi + 0x68], 1
adc dword [edi + 0x6c], 0
add dword [edi + 0x70], eax
adc dword [edi + 0x74], 0
mov dword [ebx], 0
lea eax, [edx + 0x40]
mov dword [ebp - 0x10], eax
push eax
mov edi, edx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4f70e4
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
sub dword [edi + 0x15c4], eax
mov eax, dword [esi]
cmp eax, ebx
je 0x4f7112
bswap eax
mov dword [ebx], eax
not eax
mov dword [ebx + 4], eax
mov dword [esi], ebx
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 0xefffffff
mov dword [esi + 0xc], ecx
test eax, 0x3ffe
je 0x4f7115
lea ecx, [eax + 0x3ffe]
and ecx, 0x3ffe
mov edx, eax
and edx, 0xefffc001
or edx, ecx
mov dword [esi + 0xc], edx
test al, 1
jne 0x4f70d9
test ecx, ecx
je 0x4f70d9
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x4f6e62
movzx esi, byte [edx + 0x103e]
and esi, 0x3f
shl esi, 5
lea ebx, [esi + edx]
add ebx, 0x1020
mov edi, ebx
and edi, 0xffe00000
shl ebx, 9
and ebx, 0x3fffc000
add ebx, edi
add ebx, 0xffe00000
je 0x4f6dd9
mov eax, dword [esi + edx + 0x1028]
mov eax, dword [eax + 0xc]
jmp 0x4f6e3e
movzx eax, al
shr eax, 1
mov ecx, edi
push eax
push dword [ebp - 0x14]
call fcn.0050b590
jmp 0x4f6f9e
mov ecx, esi
push 1
call fcn.0050bd80
jmp 0x4f7072
mov ecx, dword [ebp - 0x10]
call fcn.0050bcf0
jmp 0x4f7017
xor edx, edx
jmp 0x4f6f2f
mov ecx, edi
call fcn.0050ba20
jmp 0x4f6faa
mov edi, edx
call fcn.005408e4
mov edx, edi
jmp 0x4f6ef5
int3
int3
lea eax, [esi + 0x20]
jmp 0x4f6fe6