437810:	8b f9                	mov    %ecx,%edi
437812:	dd d9                	fstp   %st(1)
437814:	f6 c4 05             	test   $0x5,%ah
437817:	0f 8b b6 00 00 00    	jnp    0x4378d3
43781d:	d9 e8                	fld1
43781f:	de d9                	fcompp
437821:	df e0                	fnstsw %ax
437823:	f6 c4 05             	test   $0x5,%ah
437826:	0f 8b a9 00 00 00    	jnp    0x4378d5
43782c:	a1 24 11 45 00       	mov    0x451124,%eax
437831:	89 07                	mov    %eax,(%edi)
437833:	c1 e0 05             	shl    $0x5,%eax
437836:	8d 48 20             	lea    0x20(%eax),%ecx
437839:	3b c8                	cmp    %eax,%ecx
43783b:	72 24                	jb     0x437861
43783d:	51                   	push   %ecx
43783e:	6a 00                	push   $0x0
437840:	ff 35 00 12 45 00    	push   0x451200
437846:	ff 15 24 21 45 00    	call   *0x452124
43784c:	8b d0                	mov    %eax,%edx
43784e:	85 d2                	test   %edx,%edx
437850:	74 0f                	je     0x437861
437852:	8d 42 20             	lea    0x20(%edx),%eax
437855:	83 e0 e0             	and    $0xffffffe0,%eax
437858:	8a c8                	mov    %al,%cl
43785a:	2a ca                	sub    %dl,%cl
43785c:	88 48 ff             	mov    %cl,-0x1(%eax)
43785f:	eb 02                	jmp    0x437863
437861:	33 c0                	xor    %eax,%eax
437863:	89 47 04             	mov    %eax,0x4(%edi)
437866:	85 c0                	test   %eax,%eax
437868:	75 0c                	jne    0x437876
43786a:	b8 02 00 00 00       	mov    $0x2,%eax
43786f:	5f                   	pop    %edi
437870:	8b e5                	mov    %ebp,%esp
437872:	5d                   	pop    %ebp
437873:	c2 08 00             	ret    $0x8
437876:	53                   	push   %ebx
437877:	33 db                	xor    %ebx,%ebx
437879:	39 1f                	cmp    %ebx,(%edi)
43787b:	76 37                	jbe    0x4378b4
43787d:	33 c0                	xor    %eax,%eax
43787f:	89 45 fc             	mov    %eax,-0x4(%ebp)
437882:	56                   	push   %esi
437883:	8b 77 04             	mov    0x4(%edi),%esi
437886:	03 f0                	add    %eax,%esi
437888:	6a 01                	push   $0x1
43788a:	8b ce                	mov    %esi,%ecx
43788c:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
437892:	e8 a9 d5 fd ff       	call   0x414e40
437897:	8b 45 fc             	mov    -0x4(%ebp),%eax
43789a:	43                   	inc    %ebx
43789b:	83 c0 20             	add    $0x20,%eax
43789e:	c7 46 04 14 00 00 00 	movl   $0x14,0x4(%esi)
4378a5:	c7 46 08 14 00 00 00 	movl   $0x14,0x8(%esi)
4378ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
4378af:	3b 1f                	cmp    (%edi),%ebx
4378b1:	72 d0                	jb     0x437883
4378b3:	5e                   	pop    %esi
4378b4:	5b                   	pop    %ebx
4378b5:	c7 47 24 00 00 00 00 	movl   $0x0,0x24(%edi)
4378bc:	33 c0                	xor    %eax,%eax
4378be:	c7 47 28 00 00 00 00 	movl   $0x0,0x28(%edi)
4378c5:	c7 47 2c 00 00 00 00 	movl   $0x0,0x2c(%edi)
4378cc:	5f                   	pop    %edi
4378cd:	8b e5                	mov    %ebp,%esp
4378cf:	5d                   	pop    %ebp
4378d0:	c2 08 00             	ret    $0x8
4378d3:	dd d8                	fstp   %st(0)
4378d5:	b8 01 00 00 00       	mov    $0x1,%eax
4378da:	5f                   	pop    %edi
4378db:	8b e5                	mov    %ebp,%esp
4378dd:	5d                   	pop    %ebp
4378de:	c2 08 00             	ret    $0x8
4378e1:	cc                   	int3
4378e2:	cc                   	int3
4378e3:	cc                   	int3
4378e4:	cc                   	int3
4378e5:	cc                   	int3
4378e6:	cc                   	int3
4378e7:	cc                   	int3
4378e8:	cc                   	int3
4378e9:	cc                   	int3
4378ea:	cc                   	int3
4378eb:	cc                   	int3
4378ec:	cc                   	int3
4378ed:	cc                   	int3
4378ee:	cc                   	int3
4378ef:	cc                   	int3
4378f0:	8b ff                	mov    %edi,%edi
4378f2:	56                   	push   %esi
4378f3:	8b f1                	mov    %ecx,%esi
4378f5:	8b 56 04             	mov    0x4(%esi),%edx
4378f8:	85 d2                	test   %edx,%edx
4378fa:	74 28                	je     0x437924
4378fc:	0f b6 42 ff          	movzbl -0x1(%edx),%eax
437900:	2b d0                	sub    %eax,%edx
437902:	74 19                	je     0x43791d
437904:	52                   	push   %edx
437905:	6a 00                	push   $0x0
437907:	ff 35 00 12 45 00    	push   0x451200
43790d:	ff 15 18 21 45 00    	call   *0x452118
437913:	85 c0                	test   %eax,%eax
437915:	75 06                	jne    0x43791d
437917:	ff 15 6c 20 45 00    	call   *0x45206c
43791d:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
437924:	83 c6 20             	add    $0x20,%esi
437927:	8b 16                	mov    (%esi),%edx
437929:	4a                   	dec    %edx
43792a:	81 e2 ff ff ff 7f    	and    $0x7fffffff,%edx
437930:	8d 4a 01             	lea    0x1(%edx),%ecx
437933:	8b c1                	mov    %ecx,%eax
437935:	f0 0f b1 16          	lock cmpxchg %edx,(%esi)
437939:	3b c1                	cmp    %ecx,%eax
43793b:	74 ea                	je     0x437927
43793d:	8d 49 00             	lea    0x0(%ecx),%ecx
437940:	85 c0                	test   %eax,%eax
437942:	7e 1a                	jle    0x43795e
437944:	f3 90                	pause
437946:	8b 16                	mov    (%esi),%edx
437948:	4a                   	dec    %edx
437949:	81 e2 ff ff ff 7f    	and    $0x7fffffff,%edx
43794f:	8d 4a 01             	lea    0x1(%edx),%ecx
437952:	8b c1                	mov    %ecx,%eax
437954:	f0 0f b1 16          	lock cmpxchg %edx,(%esi)
437958:	3b c1                	cmp    %ecx,%eax
43795a:	75 e4                	jne    0x437940
43795c:	eb c9                	jmp    0x437927
43795e:	5e                   	pop    %esi
43795f:	c3                   	ret
437960:	8b ff                	mov    %edi,%edi
437962:	55                   	push   %ebp
437963:	8b ec                	mov    %esp,%ebp
437965:	51                   	push   %ecx
437966:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
43796c:	53                   	push   %ebx
43796d:	8b d9                	mov    %ecx,%ebx
43796f:	8b 0d 24 11 45 00    	mov    0x451124,%ecx
437975:	56                   	push   %esi
437976:	0f b6 80 77 0f 00 00 	movzbl 0xf77(%eax),%eax
43797d:	89 45 fc             	mov    %eax,-0x4(%ebp)
437980:	3b c1                	cmp    %ecx,%eax
437982:	7c 08                	jl     0x43798c
437984:	99                   	cltd
437985:	f7 f9                	idiv   %ecx
437987:	8b c2                	mov    %edx,%eax
437989:	89 55 fc             	mov    %edx,-0x4(%ebp)
43798c:	33 d2                	xor    %edx,%edx
43798e:	f7 33                	divl   (%ebx)
437990:	57                   	push   %edi
437991:	8b f2                	mov    %edx,%esi
437993:	bf 01 00 00 00       	mov    $0x1,%edi
437998:	c1 e6 05             	shl    $0x5,%esi
43799b:	03 73 04             	add    0x4(%ebx),%esi
43799e:	39 3b                	cmp    %edi,(%ebx)
4379a0:	76 21                	jbe    0x4379c3
4379a2:	8b ce                	mov    %esi,%ecx
4379a4:	e8 e7 cd fe ff       	call   0x424790
4379a9:	85 c0                	test   %eax,%eax
4379ab:	75 2a                	jne    0x4379d7
4379ad:	8b 45 fc             	mov    -0x4(%ebp),%eax
4379b0:	33 d2                	xor    %edx,%edx
4379b2:	03 c7                	add    %edi,%eax
4379b4:	47                   	inc    %edi
4379b5:	f7 33                	divl   (%ebx)
4379b7:	8b f2                	mov    %edx,%esi
4379b9:	c1 e6 05             	shl    $0x5,%esi
4379bc:	03 73 04             	add    0x4(%ebx),%esi
4379bf:	3b 3b                	cmp    (%ebx),%edi
4379c1:	72 df                	jb     0x4379a2
4379c3:	8b ce                	mov    %esi,%ecx
4379c5:	e8 c6 cd fe ff       	call   0x424790
4379ca:	85 c0                	test   %eax,%eax
4379cc:	75 09                	jne    0x4379d7
4379ce:	6a ff                	push   $0xffffffff
4379d0:	8b ce                	mov    %esi,%ecx
4379d2:	e8 09 d1 fe ff       	call   0x424ae0
4379d7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4379da:	8d 47 ff             	lea    -0x1(%edi),%eax
4379dd:	83 c1 14             	add    $0x14,%ecx
4379e0:	5f                   	pop    %edi
4379e1:	85 c0                	test   %eax,%eax
4379e3:	75 29                	jne    0x437a0e
4379e5:	8b 46 04             	mov    0x4(%esi),%eax
4379e8:	c7 01 14 00 00 00    	movl   $0x14,(%ecx)
4379ee:	83 f8 14             	cmp    $0x14,%eax
4379f1:	75 0b                	jne    0x4379fe
4379f3:	89 41 04             	mov    %eax,0x4(%ecx)
4379f6:	89 4e 08             	mov    %ecx,0x8(%esi)
4379f9:	89 4e 04             	mov    %ecx,0x4(%esi)
4379fc:	eb 31                	jmp    0x437a2f
4379fe:	8b 46 04             	mov    0x4(%esi),%eax
437a01:	89 41 04             	mov    %eax,0x4(%ecx)
437a04:	8b 46 04             	mov    0x4(%esi),%eax
437a07:	89 08                	mov    %ecx,(%eax)
437a09:	89 4e 04             	mov    %ecx,0x4(%esi)
437a0c:	eb 21                	jmp    0x437a2f
437a0e:	8b 46 08             	mov    0x8(%esi),%eax
437a11:	c7 41 04 14 00 00 00 	movl   $0x14,0x4(%ecx)
437a18:	83 f8 14             	cmp    $0x14,%eax
437a1b:	75 07                	jne    0x437a24
437a1d:	89 01                	mov    %eax,(%ecx)
437a1f:	89 4e 04             	mov    %ecx,0x4(%esi)
437a22:	eb 08                	jmp    0x437a2c
437a24:	89 01                	mov    %eax,(%ecx)
437a26:	8b 46 08             	mov    0x8(%esi),%eax
437a29:	89 48 04             	mov    %ecx,0x4(%eax)
437a2c:	89 4e 08             	mov    %ecx,0x8(%esi)
437a2f:	6a 01                	push   $0x1
437a31:	8b ce                	mov    %esi,%ecx
437a33:	e8 08 d4 fd ff       	call   0x414e40
437a38:	b9 01 00 00 00       	mov    $0x1,%ecx
437a3d:	8d 43 24             	lea    0x24(%ebx),%eax
437a40:	f0 0f c1 08          	lock xadd %ecx,(%eax)
437a44:	6a 01                	push   $0x1
437a46:	8d 4b 20             	lea    0x20(%ebx),%ecx
437a49:	e8 f2 d3 fd ff       	call   0x414e40
437a4e:	5e                   	pop    %esi
437a4f:	5b                   	pop    %ebx
437a50:	8b e5                	mov    %ebp,%esp
437a52:	5d                   	pop    %ebp
437a53:	c2 08 00             	ret    $0x8
437a56:	cc                   	int3
437a57:	cc                   	int3
437a58:	cc                   	int3
437a59:	cc                   	int3
437a5a:	cc                   	int3
437a5b:	cc                   	int3
437a5c:	cc                   	int3
437a5d:	cc                   	int3
437a5e:	cc                   	int3
437a5f:	cc                   	int3
437a60:	8b ff                	mov    %edi,%edi
437a62:	55                   	push   %ebp
437a63:	8b ec                	mov    %esp,%ebp
437a65:	83 ec 08             	sub    $0x8,%esp
437a68:	8b 45 08             	mov    0x8(%ebp),%eax
437a6b:	53                   	push   %ebx
437a6c:	8b d9                	mov    %ecx,%ebx
437a6e:	56                   	push   %esi
437a6f:	57                   	push   %edi
437a70:	89 5d fc             	mov    %ebx,-0x4(%ebp)
437a73:	8d 4b 20             	lea    0x20(%ebx),%ecx
437a76:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
437a7c:	e8 0f cd fe ff       	call   0x424790
437a81:	85 c0                	test   %eax,%eax
437a83:	75 3a                	jne    0x437abf
437a85:	8b 7d 0c             	mov    0xc(%ebp),%edi
437a88:	85 ff                	test   %edi,%edi
437a8a:	74 25                	je     0x437ab1
437a8c:	ba 01 00 00 00       	mov    $0x1,%edx
437a91:	8d 43 2c             	lea    0x2c(%ebx),%eax
437a94:	f0 0f c1 10          	lock xadd %edx,(%eax)
437a98:	8d 4b 20             	lea    0x20(%ebx),%ecx
437a9b:	e8 f0 cc fe ff       	call   0x424790
437aa0:	85 c0                	test   %eax,%eax
437aa2:	75 1b                	jne    0x437abf
437aa4:	57                   	push   %edi
437aa5:	8d 4b 20             	lea    0x20(%ebx),%ecx
437aa8:	e8 33 d0 fe ff       	call   0x424ae0
437aad:	85 c0                	test   %eax,%eax
437aaf:	75 0e                	jne    0x437abf
437ab1:	5f                   	pop    %edi
437ab2:	5e                   	pop    %esi
437ab3:	b8 04 00 00 00       	mov    $0x4,%eax
437ab8:	5b                   	pop    %ebx
437ab9:	8b e5                	mov    %ebp,%esp
437abb:	5d                   	pop    %ebp
437abc:	c2 0c 00             	ret    $0xc
437abf:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
437ac5:	8b 0d 24 11 45 00    	mov    0x451124,%ecx
437acb:	0f b6 80 77 0f 00 00 	movzbl 0xf77(%eax),%eax
437ad2:	89 45 f8             	mov    %eax,-0x8(%ebp)
437ad5:	3b c1                	cmp    %ecx,%eax
437ad7:	7c 08                	jl     0x437ae1
437ad9:	99                   	cltd
437ada:	f7 f9                	idiv   %ecx
437adc:	8b c2                	mov    %edx,%eax
437ade:	89 55 f8             	mov    %edx,-0x8(%ebp)
437ae1:	33 ff                	xor    %edi,%edi
437ae3:	8b d3                	mov    %ebx,%edx
437ae5:	8b 0a                	mov    (%edx),%ecx
437ae7:	03 c7                	add    %edi,%eax
437ae9:	33 d2                	xor    %edx,%edx
437aeb:	8b df                	mov    %edi,%ebx
437aed:	f7 f1                	div    %ecx
437aef:	47                   	inc    %edi
437af0:	8b f2                	mov    %edx,%esi
437af2:	8b 55 fc             	mov    -0x4(%ebp),%edx
437af5:	c1 e6 05             	shl    $0x5,%esi
437af8:	03 72 04             	add    0x4(%edx),%esi
437afb:	83 7e 04 14          	cmpl   $0x14,0x4(%esi)
437aff:	74 79                	je     0x437b7a
437b01:	3b f9                	cmp    %ecx,%edi
437b03:	8b ce                	mov    %esi,%ecx
437b05:	73 0b                	jae    0x437b12
437b07:	e8 84 cc fe ff       	call   0x424790
437b0c:	85 c0                	test   %eax,%eax
437b0e:	74 67                	je     0x437b77
437b10:	eb 12                	jmp    0x437b24
437b12:	e8 79 cc fe ff       	call   0x424790
437b17:	85 c0                	test   %eax,%eax
437b19:	75 09                	jne    0x437b24
437b1b:	6a ff                	push   $0xffffffff
437b1d:	8b ce                	mov    %esi,%ecx
437b1f:	e8 bc cf fe ff       	call   0x424ae0
437b24:	8b 46 04             	mov    0x4(%esi),%eax
437b27:	83 f8 14             	cmp    $0x14,%eax
437b2a:	74 42                	je     0x437b6e
437b2c:	85 db                	test   %ebx,%ebx
437b2e:	74 03                	je     0x437b33
437b30:	8b 46 08             	mov    0x8(%esi),%eax
437b33:	8b 4d 08             	mov    0x8(%ebp),%ecx
437b36:	83 c0 ec             	add    $0xffffffec,%eax
437b39:	89 01                	mov    %eax,(%ecx)
437b3b:	8b 50 18             	mov    0x18(%eax),%edx
437b3e:	8b 48 14             	mov    0x14(%eax),%ecx
437b41:	83 fa 14             	cmp    $0x14,%edx
437b44:	74 04                	je     0x437b4a
437b46:	89 0a                	mov    %ecx,(%edx)
437b48:	eb 03                	jmp    0x437b4d
437b4a:	89 4e 08             	mov    %ecx,0x8(%esi)
437b4d:	8b 50 14             	mov    0x14(%eax),%edx
437b50:	8b 48 18             	mov    0x18(%eax),%ecx
437b53:	83 fa 14             	cmp    $0x14,%edx
437b56:	74 05                	je     0x437b5d
437b58:	89 4a 04             	mov    %ecx,0x4(%edx)
437b5b:	eb 03                	jmp    0x437b60
437b5d:	89 4e 04             	mov    %ecx,0x4(%esi)
437b60:	c7 40 14 ff ff ff ff 	movl   $0xffffffff,0x14(%eax)
437b67:	c7 40 18 ff ff ff ff 	movl   $0xffffffff,0x18(%eax)
437b6e:	6a 01                	push   $0x1
437b70:	8b ce                	mov    %esi,%ecx
437b72:	e8 c9 d2 fd ff       	call   0x414e40
437b77:	8b 55 fc             	mov    -0x4(%ebp),%edx
437b7a:	8b 45 08             	mov    0x8(%ebp),%eax
437b7d:	83 38 00             	cmpl   $0x0,(%eax)
437b80:	8b 45 f8             	mov    -0x8(%ebp),%eax
437b83:	0f 84 5c ff ff ff    	je     0x437ae5
437b89:	8d 42 28             	lea    0x28(%edx),%eax
437b8c:	b9 01 00 00 00       	mov    $0x1,%ecx
437b91:	f0 0f c1 08          	lock xadd %ecx,(%eax)
437b95:	5f                   	pop    %edi
437b96:	5e                   	pop    %esi
437b97:	33 c0                	xor    %eax,%eax
437b99:	5b                   	pop    %ebx
437b9a:	8b e5                	mov    %ebp,%esp
437b9c:	5d                   	pop    %ebp
437b9d:	c2 0c 00             	ret    $0xc
437ba0:	8b ff                	mov    %edi,%edi