Function at 0x42f1aa
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 edx, word [eax + eax + 0x599b70]
mov eax, ecx
and eax, 0xffe00000
cmp dx, 0xfffe
je 0x42f20b
shl edx, 0x15
cmp eax, edx
je 0x42f20b
mov esi, ecx
sub esi, edx
mov edx, 0xffe00000
and esi, edx
movzx edi, byte [esi + 0x103e]
and edi, 0x3f
shl edi, 5
lea ebx, [esi + edi]
add ebx, 0x1020
mov esi, ebx
and esi, edx
shl ebx, 9
and ebx, 0x3fc000
add ebx, esi
add ebx, edx
jne 0x42f263
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]
lea ebx, [edx + esi]
add ebx, 0xffe00000
test ebx, 0xfff
je 0x42f28d
lea eax, [ebx - 4]
mov ecx, 0xfffffffe
lock xadd dword [eax], ecx
add ecx, 0x7ffffffe
test ecx, 0x7fffffff
je 0x42f2a8
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 0x42f26e
mov eax, ebx
and eax, 0xffe00000
mov ecx, ebx
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 0x42f3ec
mov eax, dword [0x59b038]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov edi, dword [eax + 0x90]
cmp edi, 2
jb 0x42f3ec
mov dword [ebp - 0x14], esi
mov esi, dword [esi + 8]
lea eax, [edx + 0x48]
cmp eax, esi
ja 0x42f3bf
lea ecx, [edx + 0x1148]
cmp ecx, esi
jb 0x42f3bf
mov dword [ebp - 0x10], edx
sub esi, eax
add dword [edi + 0x30], 1
adc dword [edi + 0x34], 0
cmp esi, 0x3e0
ja 0x42f3b4
mov eax, esi
shr eax, 2
mov ecx, dword [edi + eax + 0x78]
bswap ecx
mov dword [ebx], ecx
mov dword [edi + eax + 0x78], ebx
mov dl, byte [edi + eax + 0x7c]
inc dl
mov byte [edi + eax + 0x7c], dl
movzx ecx, word [edi + eax + 0x7e]
add dword [edi], ecx
add dword [edi + 0x38], 1
adc dword [edi + 0x3c], 0
mov cl, byte [edi + eax + 0x7d]
cmp dl, cl
ja 0x42f471
shr esi, 5
mov al, byte [edi + 4]
test al, 1
mov ecx, dword [ebp - 0x10]
jne 0x42f489
movzx eax, word [edi + esi*8 + 0x7e]
sub eax, dword [ecx + 0xc]
add dword [edi + 0x68], 1
adc dword [edi + 0x6c], 0
add dword [edi + 0x70], eax
adc dword [edi + 0x74], 0
jmp 0x42f285
add dword [edi + 0x40], 1
adc dword [edi + 0x44], 0
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
test byte [eax + 0xf], 8
jne 0x42f4a3
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
add eax, 0xc
mov eax, dword [eax]
sub eax, dword [edx + 0xc]
add dword [edi + 0x68], 1
adc dword [edi + 0x6c], 0
add dword [edi + 0x70], eax
adc dword [edi + 0x74], 0
mov esi, dword [ebp - 0x14]
mov edi, esi
mov dword [ebx], 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 0x42f40f
mov ecx, dword [ebp - 0x10]
call fcn.0047f4c0
mov ecx, edi
mov eax, dword [edi + 8]
mov eax, dword [eax + 0xc]
sub dword [esi + 0x117c], eax
mov eax, dword [edi]
cmp eax, ebx
je 0x42f4ae
bswap eax
mov dword [ebx], eax
mov edx, edi
mov dword [edi], ebx
mov eax, dword [edi + 0xc]
mov ecx, eax
and ecx, 0xefffffff
mov dword [edi + 0xc], ecx
test eax, 0x3ffe
je 0x42f4b1
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 0x42f498
test ecx, ecx
je 0x42f498
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x42f285
add eax, edi
add eax, 0x78
movzx edx, cl
shr edx, 1
mov ecx, edi
push edx
push eax
call fcn.0047f0c0
jmp 0x42f387
mov ecx, edi
call fcn.0047f200
mov ecx, dword [ebp - 0x10]
jmp 0x42f398
mov ecx, edi
push 1
call fcn.0042c0a0
jmp 0x42f463
mov eax, dword [ebp - 0x14]
add eax, 0x20
jmp 0x42f3d5
int3
int3