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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov ecx, dword [ebp + 8]
mov eax, ecx
shr eax, 0x15
movzx edx, word [eax + eax + 0x103c5bd4]
mov eax, ecx
and eax, 0xffe00000
cmp dx, 0xfffe
je 0x10091008
shl edx, 0x15
cmp eax, edx
je 0x10091008
mov esi, ecx
sub esi, edx
mov edx, 0xffe00000
and esi, edx
movzx edi, byte [esi + 0x103e]
and edi, 0x3f
shl edi, 5
add esi, edi
add esi, 0x1020
mov edi, esi
and edi, edx
shl esi, 9
and esi, 0x3fc000
add esi, edi
add esi, edx
jne 0x1009105f
or eax, 0x1000
mov esi, ecx
shr esi, 9
and esi, 0xfe0
lea edx, [eax + esi]
movzx eax, byte [eax + esi + 0x1e]
and eax, 0x3f
shl eax, 5
sub edx, eax
mov eax, 0xffe00000
mov esi, edx
mov edi, dword [edx + 8]
and edx, eax
shl esi, 9
and esi, 0x3fffc000
add esi, edx
add eax, esi
sub ecx, eax
mov eax, ecx
mul dword [edi + 0x18]
mov eax, dword [edi + 0x1c]
imul eax, ecx
add edx, eax
shr edx, 0xa
imul edx, dword [edi + 0xc]
add esi, edx
add esi, 0xffe00000
test esi, 0xfff
je 0x10091089
lea eax, [esi - 4]
mov ecx, 0xfffffffe
lock xadd dword [eax], ecx
add ecx, 0x7ffffffe
test ecx, 0x7fffffff
je 0x100910a4
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, esi
and eax, 0xffe00000
mov ecx, esi
shr ecx, 9
and ecx, 0xff8
add eax, ecx
add eax, 0x2000
jmp 0x1009106a
mov eax, esi
and eax, 0xffe00000
mov ecx, esi
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea edi, [edx + 0x1000]
mov eax, edi
and eax, 0xffe01000
mov ecx, dword [eax]
mov eax, dword [edx + 0x1008]
mov eax, dword [eax + 0xc]
lock sub dword [ecx + 0x1198], eax
lock dec dword [ecx + 0x119c]
cmp byte [ecx + 3], 0
mov dword [ebp - 0x10], ecx
je 0x100911f6
mov eax, dword [0x103c75a0]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ebx, dword [eax + 0xa0]
cmp ebx, 1
jbe 0x100911b6
cmp ebx, 2
mov ecx, dword [ebp - 0x10]
jb 0x100911f6
mov edx, edi
mov edi, dword [edi + 8]
lea eax, [ecx + 0x48]
cmp eax, edi
ja 0x100911cd
mov ecx, dword [ebp - 0x10]
add ecx, 0x1148
cmp ecx, edi
mov ecx, dword [ebp - 0x10]
jb 0x100911cd
sub edi, eax
sar edi, 5
add dword [ebx + 0x30], 1
adc dword [ebx + 0x34], 0
movzx eax, word [0x103c5bd0]
cmp edi, eax
ja 0x100911c5
mov eax, dword [ebx + edi*8 + 0x78]
bswap eax
mov dword [esi], eax
mov dword [ebx + edi*8 + 0x78], esi
inc byte [ebx + edi*8 + 0x7c]
movzx eax, word [ebx + edi*8 + 0x7e]
add dword [ebx], eax
add dword [ebx + 0x38], 1
adc dword [ebx + 0x3c], 0
mov al, byte [ebx + edi*8 + 0x7d]
cmp byte [ebx + edi*8 + 0x7c], al
ja 0x10091274
mov al, byte [ebx + 4]
test al, 1
jne 0x10091290
movzx eax, word [ebx + edi*8 + 0x7e]
sub eax, dword [ecx + 0xc]
add dword [ebx + 0x68], 1
adc dword [ebx + 0x6c], 0
add dword [ebx + 0x70], eax
adc dword [ebx + 0x74], 0
jmp 0x10091081
mov ecx, dword [ebp - 0x10]
call fcn.10231da0
mov ebx, eax
jmp 0x1009111a
add dword [ebx + 0x40], 1
adc dword [ebx + 0x44], 0
test byte [edx + 0xf], 8
jne 0x100912aa
mov eax, dword [edx + 8]
add eax, 0xc
mov eax, dword [eax]
mov ecx, dword [ebp - 0x10]
sub eax, dword [ecx + 0xc]
add dword [ebx + 0x68], 1
adc dword [ebx + 0x6c], 0
add dword [ebx + 0x70], eax
adc dword [ebx + 0x74], 0
mov edi, edx
mov dword [esi], 0
lea ebx, [ecx + 0x40]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x10091211
mov ecx, ebx
call fcn.1022f540
mov ecx, edi
mov eax, dword [edi + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x10]
sub dword [edx + 0x117c], eax
mov eax, dword [edi]
cmp eax, esi
je 0x100912b2
bswap eax
mov dword [esi], eax
mov edx, edi
mov dword [edi], esi
mov eax, dword [edi + 0xc]
mov ecx, eax
and ecx, 0xefffffff
mov dword [edi + 0xc], ecx
test eax, 0x3ffe
je 0x100912b5
mov edx, 0x3ffe
lea ecx, [eax + edx]
and ecx, edx
mov edx, eax
and edx, 0xefffc001
or edx, ecx
mov dword [edi + 0xc], edx
test al, 1
jne 0x1009129f
test ecx, ecx
je 0x1009129f
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x10091081
lea edx, [ebx + edi*8]
add edx, 0x78
movzx eax, al
shr eax, 1
mov ecx, ebx
push eax
push edx
call fcn.1022f1a0
mov ecx, dword [ebp - 0x10]
jmp 0x1009118f
mov ecx, ebx
call fcn.1022f2d0
mov ecx, dword [ebp - 0x10]
jmp 0x1009119a
mov ecx, edi
push 1
call fcn.10087c90
jmp 0x10091268
lea eax, [edx + 0x20]
jmp 0x100911dd
int3
int3