4027a4:	c3                   	ret
4027a5:	8b ff                	mov    %edi,%edi
4027a7:	55                   	push   %ebp
4027a8:	8b ec                	mov    %esp,%ebp
4027aa:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
4027b0:	a1 50 d1 40 00       	mov    0x40d150,%eax
4027b5:	33 c5                	xor    %ebp,%eax
4027b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4027ba:	56                   	push   %esi
4027bb:	8b f1                	mov    %ecx,%esi
4027bd:	8b c2                	mov    %edx,%eax
4027bf:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
4027c5:	57                   	push   %edi
4027c6:	8b 7d 08             	mov    0x8(%ebp),%edi
4027c9:	85 f6                	test   %esi,%esi
4027cb:	0f 84 d0 01 00 00    	je     0x4029a1
4027d1:	53                   	push   %ebx
4027d2:	8b 1d 00 d5 40 00    	mov    0x40d500,%ebx
4027d8:	33 c9                	xor    %ecx,%ecx
4027da:	66 89 0e             	mov    %cx,(%esi)
4027dd:	85 db                	test   %ebx,%ebx
4027df:	74 20                	je     0x402801
4027e1:	38 0d 0c d5 40 00    	cmp    %cl,0x40d50c
4027e7:	74 18                	je     0x402801
4027e9:	50                   	push   %eax
4027ea:	56                   	push   %esi
4027eb:	57                   	push   %edi
4027ec:	8b cb                	mov    %ebx,%ecx
4027ee:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4027f4:	ff d3                	call   *%ebx
4027f6:	33 c9                	xor    %ecx,%ecx
4027f8:	66 39 0e             	cmp    %cx,(%esi)
4027fb:	0f 85 9f 01 00 00    	jne    0x4029a0
402801:	8b 07                	mov    (%edi),%eax
402803:	c7 85 f8 fd ff ff 4a 	movl   $0x40154a,-0x208(%ebp)
40280a:	15 40 00
40280d:	2b c1                	sub    %ecx,%eax
40280f:	74 33                	je     0x402844
402811:	83 e8 01             	sub    $0x1,%eax
402814:	74 22                	je     0x402838
402816:	83 e8 01             	sub    $0x1,%eax
402819:	74 11                	je     0x40282c
40281b:	83 e8 01             	sub    $0x1,%eax
40281e:	75 2e                	jne    0x40284e
402820:	c7 85 f8 fd ff ff 6c 	movl   $0x40156c,-0x208(%ebp)
402827:	15 40 00
40282a:	eb 22                	jmp    0x40284e
40282c:	c7 85 f8 fd ff ff 64 	movl   $0x401564,-0x208(%ebp)
402833:	15 40 00
402836:	eb 16                	jmp    0x40284e
402838:	c7 85 f8 fd ff ff 58 	movl   $0x401558,-0x208(%ebp)
40283f:	15 40 00
402842:	eb 0a                	jmp    0x40284e
402844:	c7 85 f8 fd ff ff 4c 	movl   $0x40154c,-0x208(%ebp)
40284b:	15 40 00
40284e:	51                   	push   %ecx
40284f:	33 c0                	xor    %eax,%eax
402851:	68 00 01 00 00       	push   $0x100
402856:	66 89 85 fc fd ff ff 	mov    %ax,-0x204(%ebp)
40285d:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
402863:	50                   	push   %eax
402864:	68 00 04 00 00       	push   $0x400
402869:	ff 77 04             	push   0x4(%edi)
40286c:	51                   	push   %ecx
40286d:	68 00 12 00 00       	push   $0x1200
402872:	ff 15 a0 e0 40 00    	call   *0x40e0a0
402878:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40287c:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
402882:	ff 77 48             	push   0x48(%edi)
402885:	ff 77 44             	push   0x44(%edi)
402888:	8d 1c 46             	lea    (%esi,%eax,2),%ebx
40288b:	74 17                	je     0x4028a4
40288d:	ff 77 20             	push   0x20(%edi)
402890:	ff 77 1c             	push   0x1c(%edi)
402893:	68 78 15 40 00       	push   $0x401578
402898:	53                   	push   %ebx
402899:	56                   	push   %esi
40289a:	e8 b0 fe ff ff       	call   0x40274f
40289f:	83 c4 1c             	add    $0x1c,%esp
4028a2:	eb 0f                	jmp    0x4028b3
4028a4:	68 9c 15 40 00       	push   $0x40159c
4028a9:	53                   	push   %ebx
4028aa:	56                   	push   %esi
4028ab:	e8 9f fe ff ff       	call   0x40274f
4028b0:	83 c4 14             	add    $0x14,%esp
4028b3:	83 7f 4c 00          	cmpl   $0x0,0x4c(%edi)
4028b7:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
4028bd:	74 18                	je     0x4028d7
4028bf:	ff 77 4c             	push   0x4c(%edi)
4028c2:	68 b0 15 40 00       	push   $0x4015b0
4028c7:	53                   	push   %ebx
4028c8:	50                   	push   %eax
4028c9:	e8 81 fe ff ff       	call   0x40274f
4028ce:	83 c4 10             	add    $0x10,%esp
4028d1:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
4028d7:	8b 77 04             	mov    0x4(%edi),%esi
4028da:	ff 15 b4 e0 40 00    	call   *0x40e0b4
4028e0:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
4028e6:	51                   	push   %ecx
4028e7:	56                   	push   %esi
4028e8:	50                   	push   %eax
4028e9:	ff 77 24             	push   0x24(%edi)
4028ec:	ff b5 f8 fd ff ff    	push   -0x208(%ebp)
4028f2:	68 cc 15 40 00       	push   $0x4015cc
4028f7:	53                   	push   %ebx
4028f8:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
4028fe:	e8 4c fe ff ff       	call   0x40274f
402903:	33 c9                	xor    %ecx,%ecx
402905:	83 c4 20             	add    $0x20,%esp
402908:	39 4f 0c             	cmp    %ecx,0xc(%edi)
40290b:	75 0e                	jne    0x40291b
40290d:	39 4f 28             	cmp    %ecx,0x28(%edi)
402910:	75 09                	jne    0x40291b
402912:	39 4f 18             	cmp    %ecx,0x18(%edi)
402915:	0f 84 85 00 00 00    	je     0x4029a0
40291b:	68 00 16 40 00       	push   $0x401600
402920:	53                   	push   %ebx
402921:	50                   	push   %eax
402922:	e8 28 fe ff ff       	call   0x40274f
402927:	83 c4 0c             	add    $0xc,%esp
40292a:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40292e:	74 12                	je     0x402942
402930:	ff 77 0c             	push   0xc(%edi)
402933:	68 0c 16 40 00       	push   $0x40160c
402938:	53                   	push   %ebx
402939:	50                   	push   %eax
40293a:	e8 10 fe ff ff       	call   0x40274f
40293f:	83 c4 10             	add    $0x10,%esp
402942:	83 7f 28 00          	cmpl   $0x0,0x28(%edi)
402946:	74 12                	je     0x40295a
402948:	ff 77 28             	push   0x28(%edi)
40294b:	68 24 16 40 00       	push   $0x401624
402950:	53                   	push   %ebx
402951:	50                   	push   %eax
402952:	e8 f8 fd ff ff       	call   0x40274f
402957:	83 c4 10             	add    $0x10,%esp
40295a:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
40295e:	74 17                	je     0x402977
402960:	ff 77 14             	push   0x14(%edi)
402963:	ff 77 18             	push   0x18(%edi)
402966:	68 4c 16 40 00       	push   $0x40164c
40296b:	53                   	push   %ebx
40296c:	50                   	push   %eax
40296d:	e8 dd fd ff ff       	call   0x40274f
402972:	83 c4 14             	add    $0x14,%esp
402975:	eb 29                	jmp    0x4029a0
402977:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
40297b:	74 14                	je     0x402991
40297d:	ff 77 18             	push   0x18(%edi)
402980:	68 64 16 40 00       	push   $0x401664
402985:	53                   	push   %ebx
402986:	50                   	push   %eax
402987:	e8 c3 fd ff ff       	call   0x40274f
40298c:	83 c4 10             	add    $0x10,%esp
40298f:	eb 0f                	jmp    0x4029a0
402991:	68 74 16 40 00       	push   $0x401674
402996:	53                   	push   %ebx
402997:	50                   	push   %eax
402998:	e8 b2 fd ff ff       	call   0x40274f
40299d:	83 c4 0c             	add    $0xc,%esp
4029a0:	5b                   	pop    %ebx
4029a1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4029a4:	33 c0                	xor    %eax,%eax
4029a6:	5f                   	pop    %edi
4029a7:	33 cd                	xor    %ebp,%ecx
4029a9:	5e                   	pop    %esi
4029aa:	e8 b1 74 00 00       	call   0x409e60
4029af:	c9                   	leave
4029b0:	c2 04 00             	ret    $0x4
4029b3:	8b ff                	mov    %edi,%edi
4029b5:	56                   	push   %esi
4029b6:	57                   	push   %edi
4029b7:	52                   	push   %edx
4029b8:	51                   	push   %ecx
4029b9:	ff 15 68 e0 40 00    	call   *0x40e068
4029bf:	50                   	push   %eax
4029c0:	ff 15 5c e0 40 00    	call   *0x40e05c
4029c6:	8b 3d 18 d5 40 00    	mov    0x40d518,%edi
4029cc:	8b f0                	mov    %eax,%esi
4029ce:	85 ff                	test   %edi,%edi
4029d0:	74 12                	je     0x4029e4
4029d2:	56                   	push   %esi
4029d3:	ff 15 68 e0 40 00    	call   *0x40e068
4029d9:	50                   	push   %eax
4029da:	8b cf                	mov    %edi,%ecx
4029dc:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4029e2:	ff d7                	call   *%edi
4029e4:	5f                   	pop    %edi
4029e5:	8b c6                	mov    %esi,%eax
4029e7:	5e                   	pop    %esi
4029e8:	c3                   	ret
4029e9:	8b ff                	mov    %edi,%edi
4029eb:	55                   	push   %ebp
4029ec:	8b ec                	mov    %esp,%ebp
4029ee:	8b 45 08             	mov    0x8(%ebp),%eax
4029f1:	53                   	push   %ebx
4029f2:	56                   	push   %esi
4029f3:	8b f1                	mov    %ecx,%esi
4029f5:	57                   	push   %edi
4029f6:	83 26 00             	andl   $0x0,(%esi)
4029f9:	83 66 04 00          	andl   $0x0,0x4(%esi)
4029fd:	8b 58 04             	mov    0x4(%eax),%ebx
402a00:	8b 38                	mov    (%eax),%edi
402a02:	e8 15 00 00 00       	call   0x402a1c
402a07:	85 ff                	test   %edi,%edi
402a09:	74 08                	je     0x402a13
402a0b:	89 3e                	mov    %edi,(%esi)
402a0d:	89 5e 04             	mov    %ebx,0x4(%esi)
402a10:	f0 ff 07             	lock incl (%edi)
402a13:	5f                   	pop    %edi
402a14:	8b c6                	mov    %esi,%eax
402a16:	5e                   	pop    %esi
402a17:	5b                   	pop    %ebx
402a18:	5d                   	pop    %ebp
402a19:	c2 04 00             	ret    $0x4
402a1c:	8b ff                	mov    %edi,%edi
402a1e:	57                   	push   %edi
402a1f:	8b f9                	mov    %ecx,%edi
402a21:	8b 0f                	mov    (%edi),%ecx
402a23:	85 c9                	test   %ecx,%ecx
402a25:	74 24                	je     0x402a4b
402a27:	83 c8 ff             	or     $0xffffffff,%eax
402a2a:	f0 0f c1 01          	lock xadd %eax,(%ecx)
402a2e:	75 14                	jne    0x402a44
402a30:	56                   	push   %esi
402a31:	8b 37                	mov    (%edi),%esi
402a33:	ff 15 68 e0 40 00    	call   *0x40e068
402a39:	56                   	push   %esi
402a3a:	6a 00                	push   $0x0
402a3c:	50                   	push   %eax
402a3d:	ff 15 64 e0 40 00    	call   *0x40e064
402a43:	5e                   	pop    %esi
402a44:	83 27 00             	andl   $0x0,(%edi)
402a47:	83 67 04 00          	andl   $0x0,0x4(%edi)
402a4b:	5f                   	pop    %edi
402a4c:	c3                   	ret
402a4d:	8b ff                	mov    %edi,%edi
402a4f:	55                   	push   %ebp
402a50:	8b ec                	mov    %esp,%ebp
402a52:	56                   	push   %esi
402a53:	8b 75 0c             	mov    0xc(%ebp),%esi
402a56:	57                   	push   %edi
402a57:	8b f9                	mov    %ecx,%edi
402a59:	85 f6                	test   %esi,%esi
402a5b:	75 09                	jne    0x402a66
402a5d:	e8 ba ff ff ff       	call   0x402a1c
402a62:	b0 01                	mov    $0x1,%al
402a64:	eb 49                	jmp    0x402aaf
402a66:	53                   	push   %ebx
402a67:	8d 46 04             	lea    0x4(%esi),%eax
402a6a:	50                   	push   %eax
402a6b:	6a 00                	push   $0x0
402a6d:	ff 15 68 e0 40 00    	call   *0x40e068
402a73:	50                   	push   %eax
402a74:	ff 15 5c e0 40 00    	call   *0x40e05c
402a7a:	8b d8                	mov    %eax,%ebx
402a7c:	85 db                	test   %ebx,%ebx
402a7e:	75 04                	jne    0x402a84
402a80:	32 c0                	xor    %al,%al
402a82:	eb 2a                	jmp    0x402aae
402a84:	83 23 00             	andl   $0x0,(%ebx)
402a87:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402a8b:	74 10                	je     0x402a9d
402a8d:	56                   	push   %esi
402a8e:	ff 75 08             	push   0x8(%ebp)
402a91:	8d 4b 04             	lea    0x4(%ebx),%ecx
402a94:	8b d6                	mov    %esi,%edx
402a96:	e8 15 fa ff ff       	call   0x4024b0
402a9b:	59                   	pop    %ecx
402a9c:	59                   	pop    %ecx
402a9d:	8b cf                	mov    %edi,%ecx
402a9f:	e8 78 ff ff ff       	call   0x402a1c
402aa4:	89 1f                	mov    %ebx,(%edi)
402aa6:	89 77 04             	mov    %esi,0x4(%edi)
402aa9:	f0 ff 03             	lock incl (%ebx)
402aac:	b0 01                	mov    $0x1,%al
402aae:	5b                   	pop    %ebx
402aaf:	5f                   	pop    %edi
402ab0:	5e                   	pop    %esi
402ab1:	5d                   	pop    %ebp
402ab2:	c2 08 00             	ret    $0x8
402ab5:	33 c0                	xor    %eax,%eax
402ab7:	89 0d 50 d5 40 00    	mov    %ecx,0x40d550
402abd:	40                   	inc    %eax
402abe:	f0 0f c1 05 48 d5 40 	lock xadd %eax,0x40d548
402ac5:	00
402ac6:	40                   	inc    %eax
402ac7:	c3                   	ret
402ac8:	33 c0                	xor    %eax,%eax
402aca:	89 0d f0 d4 40 00    	mov    %ecx,0x40d4f0
402ad0:	40                   	inc    %eax
402ad1:	f0 0f c1 05 6c d5 40 	lock xadd %eax,0x40d56c
402ad8:	00
402ad9:	40                   	inc    %eax
402ada:	c3                   	ret
402adb:	33 c0                	xor    %eax,%eax
402add:	89 0d 64 d5 40 00    	mov    %ecx,0x40d564
402ae3:	40                   	inc    %eax
402ae4:	f0 0f c1 05 c0 d5 40 	lock xadd %eax,0x40d5c0
402aeb:	00
402aec:	40                   	inc    %eax
402aed:	c3                   	ret
402aee:	cc                   	int3
402aef:	cc                   	int3
402af0:	8b ff                	mov    %edi,%edi
402af2:	55                   	push   %ebp
402af3:	8b ec                	mov    %esp,%ebp
402af5:	8b 45 08             	mov    0x8(%ebp),%eax
402af8:	a3 b4 d5 40 00       	mov    %eax,0x40d5b4
402afd:	33 c0                	xor    %eax,%eax
402aff:	40                   	inc    %eax
402b00:	5d                   	pop    %ebp
402b01:	c2 04 00             	ret    $0x4
402b04:	8b ff                	mov    %edi,%edi
402b06:	55                   	push   %ebp
402b07:	8b ec                	mov    %esp,%ebp
402b09:	56                   	push   %esi
402b0a:	8b 35 3c d5 40 00    	mov    0x40d53c,%esi
402b10:	85 f6                	test   %esi,%esi
402b12:	74 10                	je     0x402b24
402b14:	ff 75 08             	push   0x8(%ebp)
402b17:	6a 00                	push   $0x0
402b19:	51                   	push   %ecx
402b1a:	8b ce                	mov    %esi,%ecx
402b1c:	ff 15 f0 e1 40 00    	call   *0x40e1f0
402b22:	ff d6                	call   *%esi
402b24:	6a 07                	push   $0x7
402b26:	59                   	pop    %ecx
402b27:	cd 29                	int    $0x29
402b29:	5e                   	pop    %esi
402b2a:	5d                   	pop    %ebp
402b2b:	c2 04 00             	ret    $0x4
402b2e:	8b ff                	mov    %edi,%edi
402b30:	55                   	push   %ebp
402b31:	8b ec                	mov    %esp,%ebp
402b33:	81 ec 10 01 00 00    	sub    $0x110,%esp
402b39:	a1 50 d1 40 00       	mov    0x40d150,%eax
402b3e:	33 c5                	xor    %ebp,%eax
402b40:	89 45 fc             	mov    %eax,-0x4(%ebp)
402b43:	8b 4d 10             	mov    0x10(%ebp),%ecx
402b46:	53                   	push   %ebx
402b47:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402b4a:	56                   	push   %esi
402b4b:	8b 75 08             	mov    0x8(%ebp),%esi
402b4e:	57                   	push   %edi
402b4f:	33 ff                	xor    %edi,%edi
402b51:	89 8d f0 fe ff ff    	mov    %ecx,-0x110(%ebp)
402b57:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
402b5d:	85 f6                	test   %esi,%esi
402b5f:	74 28                	je     0x402b89