	.file	"ltalloc_nolikely.cc"
	.intel_syntax noprefix
	.text
	.p2align 4,,15
	.def	__ZL8sys_freePv;	.scl	3;	.type	32;	.endef
__ZL8sys_freePv:
	test	eax, eax
	je	L10
	sub	esp, 16
	push	32768
	push	0
	push	eax
	call	[DWORD PTR __imp__VirtualFree@12]
	add	esp, 16
L10:
	rep ret
	.p2align 4,,15
	.def	__ZL16SPINLOCK_ACQUIREPVi;	.scl	3;	.type	32;	.endef
__ZL16SPINLOCK_ACQUIREPVi:
	mov	edx, 1
	xchg	edx, DWORD PTR [eax]
	test	edx, edx
	je	L12
	mov	ecx, 1
	jmp	L20
	.p2align 4,,10
L16:
/APP
 # 51 "ltalloc_nolikely.cc" 1
	pause
 # 0 "" 2
/NO_APP
L20:
	mov	edx, DWORD PTR [eax]
	test	edx, edx
	jne	L16
	mov	edx, ecx
	xchg	edx, DWORD PTR [eax]
	test	edx, edx
	jne	L16
L12:
	rep ret
	.p2align 4,,15
	.globl	__Z8ltmallocj
	.def	__Z8ltmallocj;	.scl	2;	.type	32;	.endef
__Z8ltmallocj:
	push	ebp
	push	edi
	push	esi
	push	ebx
	sub	esp, 28
	mov	edx, DWORD PTR [esp+48]
	lea	eax, [edx+3]
	and	eax, -4
	sub	eax, 1
	mov	ebx, eax
	or	ebx, 1
	bsr	ebx, ebx
	lea	ecx, [ebx-2]
	shr	eax, cl
	lea	ebx, [eax+ebx*4]
	lea	esi, [ebx+ebx*2]
	sal	esi, 2
	mov	ecx, DWORD PTR __ZL11threadCache[esi]
	lea	edi, __ZL11threadCache[esi]
	test	ecx, ecx
	je	L22
	mov	eax, DWORD PTR [ecx]
	add	DWORD PTR [edi+8], 1
	mov	DWORD PTR __ZL11threadCache[esi], eax
L21:
	add	esp, 28
	mov	eax, ecx
	pop	ebx
	pop	esi
	pop	edi
	pop	ebp
	ret
	.p2align 4,,10
L22:
	lea	eax, [edx-1]
	cmp	eax, 57343
	ja	L24
	mov	ecx, DWORD PTR [edi+4]
	mov	DWORD PTR [edi+8], 1
	test	ecx, ecx
	je	L25
	mov	eax, DWORD PTR [ecx]
	mov	DWORD PTR [edi+4], 0
	mov	DWORD PTR __ZL11threadCache[esi], eax
	jmp	L21
	.p2align 4,,10
L24:
	add	edx, 65535
	push	4
	push	12288
	xor	dx, dx
	push	edx
	push	0
	call	[DWORD PTR __imp__VirtualAlloc@16]
	mov	ecx, eax
	jmp	L21
L25:
	mov	edi, ebx
	sal	edi, 6
	lea	ebp, __ZL12centralCache[edi]
	mov	eax, ebp
	call	__ZL16SPINLOCK_ACQUIREPVi
	mov	ecx, DWORD PTR [ebp+12]
	test	ecx, ecx
	je	L27
	cmp	ebx, 14
	jbe	L55
	mov	eax, DWORD PTR [ecx+4]
	mov	DWORD PTR [ebp+12], eax
L54:
	mov	DWORD PTR __ZL12centralCache[edi], 0
	mov	edx, DWORD PTR [ecx]
	lea	eax, [ebx+ebx*2]
	mov	DWORD PTR __ZL11threadCache[0+eax*4], edx
	jmp	L21
L55:
	mov	eax, DWORD PTR [ecx+12]
	test	eax, eax
	jne	L56
	mov	ecx, DWORD PTR [ecx+4]
	test	ecx, ecx
	je	L27
	mov	DWORD PTR [ebp+12], ecx
	mov	eax, DWORD PTR [ecx+12]
L56:
	sub	eax, 1
	mov	DWORD PTR [ecx+12], eax
	mov	ecx, DWORD PTR [ecx+16+eax*4]
	jmp	L54
L27:
	mov	ecx, ebx
	mov	eax, 65535
	mov	edx, ebx
	shr	ecx, 2
	sal	edx, 6
	shr	eax, cl
	add	edx, OFFSET FLAT:__ZL12centralCache
	movzx	esi, al
	lea	eax, [esi+1]
	mov	DWORD PTR [esp+4], eax
	mov	eax, DWORD PTR [edx+16]
	test	eax, eax
	je	L28
	mov	ecx, DWORD PTR [edx+20]
	lea	ebp, [esi+2]
	cmp	ecx, ebp
	ja	L29
	mov	ebp, DWORD PTR [esp+4]
	mov	DWORD PTR [edx+20], 0
	imul	esi, ebx, 12
	mov	DWORD PTR [edx+16], 0
	sub	ebp, ecx
	mov	ecx, ebp
	add	ecx, 1
	mov	DWORD PTR __ZL11threadCache[esi+8], ecx
L30:
	mov	DWORD PTR __ZL12centralCache[edi], 0
	mov	ecx, DWORD PTR [eax]
	lea	edx, [ebx+ebx*2]
	mov	DWORD PTR __ZL11threadCache[0+edx*4], ecx
	mov	ecx, eax
	jmp	L21
L29:
	sub	ecx, DWORD PTR [esp+4]
	test	esi, esi
	mov	DWORD PTR [edx+20], ecx
	mov	edx, eax
	je	L31
L32:
	sub	esi, 1
	mov	edx, DWORD PTR [edx]
	jne	L32
L31:
	mov	esi, DWORD PTR [edx]
	mov	ecx, ebx
	sal	ecx, 6
	mov	DWORD PTR __ZL12centralCache[ecx+16], esi
	mov	DWORD PTR [edx], 0
	jmp	L30
L28:
	cmp	ebx, 7
	ja	L33
	mov	eax, 2
	sal	eax, cl
	mov	DWORD PTR [esp], eax
L34:
	mov	edx, ebx
	sal	edx, 6
	add	edx, OFFSET FLAT:__ZL12centralCache
	mov	eax, DWORD PTR [edx+4]
	test	eax, eax
	je	L35
	mov	ebp, DWORD PTR [esp+4]
	mov	ecx, DWORD PTR [edx+8]
	cmp	ebp, eax
	ja	L80
	mov	esi, DWORD PTR [esp+4]
	sub	eax, esi
	imul	esi, DWORD PTR [esp]
	mov	DWORD PTR [edx+4], eax
	add	esi, ecx
	test	eax, eax
	mov	DWORD PTR [edx+8], esi
	je	L37
L38:
	mov	DWORD PTR __ZL12centralCache[edi], 0
	mov	eax, DWORD PTR [esp+4]
	sub	eax, 1
	je	L58
	mov	edi, DWORD PTR [esp]
	mov	edx, ecx
	mov	esi, eax
	neg	edi
L40:
	add	edx, DWORD PTR [esp]
	sub	esi, 1
	mov	DWORD PTR [edx+edi], edx
	jne	L40
	imul	eax, DWORD PTR [esp]
	add	eax, ecx
L39:
	mov	DWORD PTR [eax], 0
	mov	eax, DWORD PTR [ecx]
	imul	ebx, ebx, 12
	mov	DWORD PTR __ZL11threadCache[ebx], eax
	jmp	L21
L80:
	imul	esi, ebx, 12
	sub	ebp, eax
	mov	DWORD PTR [edx+4], 0
	add	ebp, 1
	mov	DWORD PTR [esp+4], eax
	mov	DWORD PTR __ZL11threadCache[esi+8], ebp
	mov	esi, DWORD PTR [esp]
	imul	esi, eax
	add	esi, ecx
	mov	DWORD PTR [edx+8], esi
L37:
	mov	edx, DWORD PTR [esi-4]
	mov	esi, ebx
	sal	esi, 6
	mov	DWORD PTR __ZL12centralCache[esi+8], edx
	add	esi, OFFSET FLAT:__ZL12centralCache
	test	edx, edx
	je	L38
	movzx	edx, dx
	mov	eax, 65536
	sub	eax, edx
	xor	edx, edx
	div	DWORD PTR [esp]
	mov	DWORD PTR [esi+4], eax
	jmp	L38
L35:
	mov	DWORD PTR __ZL12centralCache[edi], 0
	mov	eax, OFFSET FLAT:__ZL3pad
	call	__ZL16SPINLOCK_ACQUIREPVi
	mov	ecx, DWORD PTR __ZL3pad+4
	test	ecx, ecx
	je	L41
	mov	eax, DWORD PTR [ecx]
	sub	DWORD PTR __ZL3pad+8, 65536
	mov	DWORD PTR __ZL3pad+4, eax
	mov	DWORD PTR __ZL3pad, 0
	mov	DWORD PTR [ecx+65532], 0
L42:
	cmp	ebx, 15
	sbb	eax, eax
	xor	edx, edx
	xor	al, al
	add	eax, 65472
	div	DWORD PTR [esp]
	cmp	DWORD PTR [esp+4], eax
	mov	DWORD PTR [esp+8], eax
	jbe	L44
	lea	edx, [esi+2]
	mov	esi, DWORD PTR [esp+8]
	imul	eax, ebx, 12
	sub	edx, esi
	mov	DWORD PTR [esp+4], esi
	mov	DWORD PTR __ZL11threadCache[eax+8], edx
L44:
	mov	edx, DWORD PTR [esp]
	mov	eax, DWORD PTR [esp+8]
	mov	esi, ecx
	mov	DWORD PTR [ecx], ebx
	imul	eax, edx
	neg	edx
	sub	esi, eax
	mov	eax, DWORD PTR [esp+4]
	lea	esi, [esi+65536]
	mov	DWORD PTR [esp+12], eax
	mov	eax, esi
	jmp	L46
L81:
	add	eax, DWORD PTR [esp]
	mov	DWORD PTR [eax+edx], eax
L46:
	sub	DWORD PTR [esp+12], 1
	jne	L81
	mov	eax, DWORD PTR [esp+4]
	mov	edx, DWORD PTR [esp]
	mov	DWORD PTR [esp+12], ecx
	sub	eax, 1
	imul	eax, edx
	add	eax, esi
	mov	DWORD PTR [eax], 0
	add	eax, edx
	mov	DWORD PTR [esp], eax
	mov	eax, ebp
	call	__ZL16SPINLOCK_ACQUIREPVi
	mov	eax, ebx
	mov	ecx, DWORD PTR [esp+12]
	sal	eax, 6
	mov	eax, DWORD PTR __ZL12centralCache[eax+24]
	test	eax, eax
	je	L61
	cmp	ecx, eax
	jb	L61
L47:
	mov	eax, ebx
	sal	eax, 6
	add	eax, OFFSET FLAT:__ZL12centralCache
	cmp	ecx, DWORD PTR [eax+28]
	jbe	L49
	mov	DWORD PTR [eax+28], ecx
L49:
	cmp	ebx, 14
	ja	L50
	mov	edx, ebx
	mov	DWORD PTR [ecx+12], 0
	sal	edx, 6
	add	edx, OFFSET FLAT:__ZL12centralCache
	mov	eax, DWORD PTR [edx+12]
	test	eax, eax
	mov	DWORD PTR [ecx+4], eax
	je	L51
	mov	edx, DWORD PTR [eax+8]
	mov	DWORD PTR [ecx+8], edx
	mov	edx, DWORD PTR [eax+8]
	test	edx, edx
	je	L52
	mov	DWORD PTR [edx+4], ecx
L52:
	mov	DWORD PTR [eax+8], ecx
L50:
	mov	eax, ebx
	sal	eax, 6
	add	eax, OFFSET FLAT:__ZL12centralCache
	cmp	DWORD PTR [eax+4], 0
	je	L53
	mov	edx, DWORD PTR [eax+8]
	mov	eax, DWORD PTR [esp]
	xor	ax, ax
	mov	DWORD PTR [eax+65532], edx
L53:
	mov	edx, DWORD PTR [esp+8]
	sub	edx, DWORD PTR [esp+4]
	mov	eax, ebx
	sal	eax, 6
	mov	ecx, esi
	mov	DWORD PTR __ZL12centralCache[eax+4], edx
	mov	edx, DWORD PTR [esp]
	mov	DWORD PTR __ZL12centralCache[eax+8], edx
	jmp	L54
L33:
	lea	eax, [ebx-3]
	mov	edx, eax
	shr	eax, 2
	and	edx, 3
	lea	ecx, [eax-2]
	or	edx, 4
	sal	edx, cl
	mov	DWORD PTR [esp], edx
	jmp	L34
L51:
	mov	DWORD PTR [ecx+8], 0
	mov	DWORD PTR [edx+12], ecx
	jmp	L50
L58:
	mov	eax, ecx
	jmp	L39
L61:
	mov	eax, ebx
	sal	eax, 6
	mov	DWORD PTR __ZL12centralCache[eax+24], ecx
	jmp	L47
L41:
	mov	DWORD PTR __ZL3pad, ecx
	push	4
	push	12288
	push	65536
	push	0
	call	[DWORD PTR __imp__VirtualAlloc@16]
	test	eax, eax
	mov	ecx, eax
	jne	L42
	jmp	L21
	.p2align 4,,15
	.globl	__Z6ltfreePv
	.def	__Z6ltfreePv;	.scl	2;	.type	32;	.endef
__Z6ltfreePv:
	mov	eax, DWORD PTR [esp+4]
	test	ax, ax
	je	L83
	mov	edx, eax
	xor	dx, dx
	mov	edx, DWORD PTR [edx]
	lea	edx, [edx+edx*2]
	sal	edx, 2
	mov	ecx, DWORD PTR __ZL11threadCache[edx]
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR __ZL11threadCache[edx], eax
	ret
	.p2align 4,,10
L83:
	jmp	__ZL8sys_freePv
	.p2align 4,,15
	.globl	__Z7ltmsizePv
	.def	__Z7ltmsizePv;	.scl	2;	.type	32;	.endef
__Z7ltmsizePv:
	sub	esp, 44
	mov	edx, DWORD PTR [esp+48]
	test	dx, dx
	je	L87
	xor	dx, dx
	mov	ecx, DWORD PTR [edx]
	cmp	ecx, 7
	ja	L88
	shr	ecx, 2
	mov	eax, 2
	sal	eax, cl
L86:
	add	esp, 44
	ret
	.p2align 4,,10
L87:
	xor	eax, eax
	test	edx, edx
	je	L86
	sub	esp, 4
	push	28
	lea	eax, [esp+12]
	push	eax
	push	edx
	call	[DWORD PTR __imp__VirtualQuery@12]
	mov	eax, DWORD PTR [esp+20]
	pop	edx
	add	esp, 44
	ret
	.p2align 4,,10
L88:
	sub	ecx, 3
	add	esp, 44
	mov	eax, ecx
	shr	ecx, 2
	and	eax, 3
	sub	ecx, 2
	or	eax, 4
	sal	eax, cl
	ret
	.p2align 4,,15
	.globl	__ZnajPKcijS0_i
	.def	__ZnajPKcijS0_i;	.scl	2;	.type	32;	.endef
__ZnajPKcijS0_i:
	jmp	__Z8ltmallocj
	.p2align 4,,15
	.globl	__ZnajjjPKcijS0_i
	.def	__ZnajjjPKcijS0_i;	.scl	2;	.type	32;	.endef
__ZnajjjPKcijS0_i:
	jmp	__Z8ltmallocj
	.p2align 4,,15
	.globl	__Znwj
	.def	__Znwj;	.scl	2;	.type	32;	.endef
__Znwj:
	jmp	__Z8ltmallocj
	.p2align 4,,15
	.globl	__Znaj
	.def	__Znaj;	.scl	2;	.type	32;	.endef
__Znaj:
	jmp	__Z8ltmallocj
	.p2align 4,,15
	.globl	__ZdaPv
	.def	__ZdaPv;	.scl	2;	.type	32;	.endef
__ZdaPv:
	mov	eax, DWORD PTR [esp+4]
	test	eax, eax
	je	L97
	jmp	__Z6ltfreePv
	.p2align 4,,10
L97:
	rep ret
	.p2align 4,,15
	.globl	__ZdlPv
	.def	__ZdlPv;	.scl	2;	.type	32;	.endef
__ZdlPv:
	jmp	__ZdaPv
.lcomm __ZL3pad,12,4
.lcomm __ZL11threadCache,1584,32
.lcomm __ZL12centralCache,8448,64
	.ident	"GCC: (Rev3, Built by MSYS2 project) 6.3.0"
