Function at 0x1c7ee50
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 esi, word [eax + eax + 0x1cf9fdc]
mov eax, ecx
and eax, 0xffe00000
cmp si, 0xfffe
je 0x1c7eeae
shl esi, 0x15
mov edx, eax
sub edx, esi
je 0x1c7eeae
or edx, 0x1000
movzx esi, byte [edx + 0x3e]
and esi, 0x3f
shl esi, 5
lea edi, [edx + esi]
add edi, 0x20
mov edx, edi
and edx, 0xffe00000
shl edi, 9
and edi, 0x3fffc000
add edi, edx
add edi, 0xffe00000
jne 0x1c7ef09
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, edx
mov esi, dword [edx + 8]
and edx, 0xffe00000
shl eax, 9
and eax, 0x3fffc000
lea edi, [edx + eax]
add eax, edx
add eax, 0xffe00000
sub ecx, eax
mov eax, ecx
mul dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
imul eax, ecx
add edx, eax
shr edx, 0xa
imul edx, dword [esi + 0xc]
add edi, edx
add edi, 0xffe00000
test edi, 0xfff
je 0x1c7ef33
lea eax, [edi - 4]
mov ecx, 0xfffffffe
lock xadd dword [eax], ecx
add ecx, 0x7ffffffe
test ecx, 0x7fffffff
je 0x1c7ef4e
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, edi
and eax, 0xffe00000
mov ecx, edi
shr ecx, 9
and ecx, 0xff8
add eax, ecx
add eax, 0x2000
jmp 0x1c7ef14
mov eax, edi
and eax, 0xffe00000
mov ecx, edi
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 esi, [edx + 0x1000]
mov eax, esi
and eax, 0xffe01000
mov ecx, dword [eax]
mov eax, dword [edx + 0x1008]
mov edx, ecx
mov eax, dword [eax + 0xc]
lock sub dword [ecx + 0x1198], eax
lock dec dword [ecx + 0x119c]
cmp byte [ecx + 3], 0
je 0x1c7f0ac
mov eax, dword [0x1cfb0d8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov ebx, dword [eax + 0x90]
cmp ebx, 1
jbe 0x1c7f05b
cmp ebx, 2
jb 0x1c7f0ac
mov dword [ebp - 0x10], esi
mov esi, dword [esi + 8]
lea eax, [edx + 0x48]
cmp eax, esi
ja 0x1c7f07f
lea ecx, [edx + 0x1148]
cmp ecx, esi
jb 0x1c7f07f
sub esi, eax
sar esi, 5
add dword [ebx + 0x30], 1
adc dword [ebx + 0x34], 0
movzx eax, word [0x1cf9fd8]
cmp esi, eax
ja 0x1c7f077
mov eax, dword [ebx + esi*8 + 0x78]
bswap eax
mov dword [edi], eax
mov dword [ebx + esi*8 + 0x78], edi
inc byte [ebx + esi*8 + 0x7c]
movzx eax, word [ebx + esi*8 + 0x7e]
add dword [ebx], eax
add dword [ebx + 0x38], 1
adc dword [ebx + 0x3c], 0
movzx eax, byte [ebx + esi*8 + 0x7d]
cmp byte [ebx + esi*8 + 0x7c], al
ja 0x1c7f133
lea esi, [ebx + esi*8]
movzx eax, byte [ebx + 4]
test al, 1
jne 0x1c7f150
movzx eax, word [esi + 0x7e]
sub eax, dword [edx + 0xc]
add dword [ebx + 0x68], 1
adc dword [ebx + 0x6c], 0
add dword [ebx + 0x70], eax
adc dword [ebx + 0x74], 0
jmp 0x1c7ef2b
mov ecx, edx
mov ebx, esi
mov esi, edx
call fcn.01c893f0
mov edx, esi
mov esi, ebx
mov ebx, eax
cmp ebx, 2
jae 0x1c7efcc
jmp 0x1c7f0ac
add dword [ebx + 0x40], 1
adc dword [ebx + 0x44], 0
mov eax, dword [ebp - 0x10]
test byte [eax + 0xf], 8
jne 0x1c7f16b
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 8]
add eax, 0xc
mov eax, dword [eax]
sub eax, dword [edx + 0xc]
add dword [ebx + 0x68], 1
adc dword [ebx + 0x6c], 0
add dword [ebx + 0x70], eax
adc dword [ebx + 0x74], 0
mov esi, dword [ebp - 0x10]
mov ebx, esi
mov dword [edi], 0
mov esi, edx
lea eax, [edx + 0x40]
mov dword [ebp - 0x10], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x1c7f0cf
mov ecx, dword [ebp - 0x10]
call fcn.01c8a210
mov ecx, ebx
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0xc]
sub dword [esi + 0x117c], eax
mov eax, dword [ebx]
cmp eax, edi
je 0x1c7f176
bswap eax
mov dword [edi], eax
mov edx, ebx
mov dword [ebx], edi
mov eax, dword [ebx + 0xc]
mov ecx, eax
and ecx, 0xefffffff
mov dword [ebx + 0xc], ecx
test eax, 0x3ffe
je 0x1c7f179
lea ecx, [eax + 0x3ffe]
and ecx, 0x3ffe
mov edx, eax
and edx, 0xefffc001
or edx, ecx
mov dword [ebx + 0xc], edx
test al, 1
jne 0x1c7f160
test ecx, ecx
je 0x1c7f160
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1c7ef2b
mov edi, edx
lea edx, [ebx + esi*8]
add edx, 0x78
movzx eax, al
shr eax, 1
mov ecx, ebx
push eax
push edx
call fcn.01c89ef0
mov edx, edi
jmp 0x1c7f031
mov ecx, ebx
mov edi, edx
call fcn.01c89540
mov edx, edi
jmp 0x1c7f040
mov ecx, ebx
push 1
call fcn.01c324e0
jmp 0x1c7f125
mov eax, dword [ebp - 0x10]
add eax, 0x20
jmp 0x1c7f095
int3
int3