40275f:	59                   	pop    %ecx
402760:	85 ff                	test   %edi,%edi
402762:	74 1b                	je     0x40277f
402764:	ff 75 08             	push   0x8(%ebp)
402767:	8b cf                	mov    %edi,%ecx
402769:	e8 15 00 00 00       	call   0x402783
40276e:	8b 46 04             	mov    0x4(%esi),%eax
402771:	89 47 38             	mov    %eax,0x38(%edi)
402774:	89 7e 04             	mov    %edi,0x4(%esi)
402777:	5f                   	pop    %edi
402778:	ff 06                	incl   (%esi)
40277a:	5e                   	pop    %esi
40277b:	5d                   	pop    %ebp
40277c:	c2 04 00             	ret    $0x4
40277f:	33 ff                	xor    %edi,%edi
402781:	eb eb                	jmp    0x40276e
402783:	55                   	push   %ebp
402784:	8b ec                	mov    %esp,%ebp
402786:	56                   	push   %esi
402787:	8b 75 08             	mov    0x8(%ebp),%esi
40278a:	57                   	push   %edi
40278b:	8b f9                	mov    %ecx,%edi
40278d:	56                   	push   %esi
40278e:	83 67 08 00          	andl   $0x0,0x8(%edi)
402792:	e8 89 ef 00 00       	call   0x411720
402797:	8a 46 10             	mov    0x10(%esi),%al
40279a:	88 47 10             	mov    %al,0x10(%edi)
40279d:	8b 46 14             	mov    0x14(%esi),%eax
4027a0:	89 47 14             	mov    %eax,0x14(%edi)
4027a3:	8a 46 18             	mov    0x18(%esi),%al
4027a6:	88 47 18             	mov    %al,0x18(%edi)
4027a9:	8d 4f 20             	lea    0x20(%edi),%ecx
4027ac:	8d 46 20             	lea    0x20(%esi),%eax
4027af:	83 61 08 00          	andl   $0x0,0x8(%ecx)
4027b3:	50                   	push   %eax
4027b4:	e8 67 ef 00 00       	call   0x411720
4027b9:	8a 46 30             	mov    0x30(%esi),%al
4027bc:	88 47 30             	mov    %al,0x30(%edi)
4027bf:	8b c7                	mov    %edi,%eax
4027c1:	5f                   	pop    %edi
4027c2:	5e                   	pop    %esi
4027c3:	5d                   	pop    %ebp
4027c4:	c2 04 00             	ret    $0x4
4027c7:	33 d2                	xor    %edx,%edx
4027c9:	89 11                	mov    %edx,(%ecx)
4027cb:	89 51 08             	mov    %edx,0x8(%ecx)
4027ce:	33 c0                	xor    %eax,%eax
4027d0:	40                   	inc    %eax
4027d1:	89 41 0c             	mov    %eax,0xc(%ecx)
4027d4:	88 51 10             	mov    %dl,0x10(%ecx)
4027d7:	89 51 14             	mov    %edx,0x14(%ecx)
4027da:	88 51 18             	mov    %dl,0x18(%ecx)
4027dd:	89 41 2c             	mov    %eax,0x2c(%ecx)
4027e0:	89 51 20             	mov    %edx,0x20(%ecx)
4027e3:	89 51 28             	mov    %edx,0x28(%ecx)
4027e6:	88 51 30             	mov    %dl,0x30(%ecx)
4027e9:	8b c1                	mov    %ecx,%eax
4027eb:	c3                   	ret
4027ec:	53                   	push   %ebx
4027ed:	56                   	push   %esi
4027ee:	8b 35 74 d6 48 00    	mov    0x48d674,%esi
4027f4:	57                   	push   %edi
4027f5:	8b f9                	mov    %ecx,%edi
4027f7:	6a 05                	push   $0x5
4027f9:	58                   	pop    %eax
4027fa:	33 db                	xor    %ebx,%ebx
4027fc:	89 07                	mov    %eax,(%edi)
4027fe:	89 47 04             	mov    %eax,0x4(%edi)
402801:	66 c7 47 08 01 00    	movw   $0x1,0x8(%edi)
402807:	89 5f 10             	mov    %ebx,0x10(%edi)
40280a:	89 5f 14             	mov    %ebx,0x14(%edi)
40280d:	89 5f 18             	mov    %ebx,0x18(%edi)
402810:	53                   	push   %ebx
402811:	89 5f 1c             	mov    %ebx,0x1c(%edi)
402814:	6a 5b                	push   $0x5b
402816:	c7 47 0c 04 00 00 00 	movl   $0x4,0xc(%edi)
40281d:	ff d6                	call   *%esi
40281f:	53                   	push   %ebx
402820:	6a 10                	push   $0x10
402822:	88 47 29             	mov    %al,0x29(%edi)
402825:	ff d6                	call   *%esi
402827:	53                   	push   %ebx
402828:	68 a0 00 00 00       	push   $0xa0
40282d:	88 47 26             	mov    %al,0x26(%edi)
402830:	ff d6                	call   *%esi
402832:	53                   	push   %ebx
402833:	68 a1 00 00 00       	push   $0xa1
402838:	88 47 27             	mov    %al,0x27(%edi)
40283b:	ff d6                	call   *%esi
40283d:	53                   	push   %ebx
40283e:	6a 11                	push   $0x11
402840:	88 47 28             	mov    %al,0x28(%edi)
402843:	ff d6                	call   *%esi
402845:	53                   	push   %ebx
402846:	6a 12                	push   $0x12
402848:	88 47 24             	mov    %al,0x24(%edi)
40284b:	ff d6                	call   *%esi
40284d:	88 47 25             	mov    %al,0x25(%edi)
402850:	5f                   	pop    %edi
402851:	5e                   	pop    %esi
402852:	5b                   	pop    %ebx
402853:	c3                   	ret
402854:	56                   	push   %esi
402855:	8b f1                	mov    %ecx,%esi
402857:	e8 14 00 00 00       	call   0x402870
40285c:	8d 4e 34             	lea    0x34(%esi),%ecx
40285f:	e8 0c 00 00 00       	call   0x402870
402864:	8d 4e 68             	lea    0x68(%esi),%ecx
402867:	e8 8b af 00 00       	call   0x40d7f7
40286c:	8b c6                	mov    %esi,%eax
40286e:	5e                   	pop    %esi
40286f:	c3                   	ret
402870:	56                   	push   %esi
402871:	8b f1                	mov    %ecx,%esi
402873:	8d 4e 04             	lea    0x4(%esi),%ecx
402876:	e8 7c af 00 00       	call   0x40d7f7
40287b:	8d 4e 14             	lea    0x14(%esi),%ecx
40287e:	e8 74 af 00 00       	call   0x40d7f7
402883:	8d 4e 24             	lea    0x24(%esi),%ecx
402886:	e8 6c af 00 00       	call   0x40d7f7
40288b:	8b c6                	mov    %esi,%eax
40288d:	5e                   	pop    %esi
40288e:	c3                   	ret
40288f:	56                   	push   %esi
402890:	8b f1                	mov    %ecx,%esi
402892:	8d 4e 08             	lea    0x8(%esi),%ecx
402895:	e8 5d af 00 00       	call   0x40d7f7
40289a:	8d 4e 18             	lea    0x18(%esi),%ecx
40289d:	e8 55 af 00 00       	call   0x40d7f7
4028a2:	8b c6                	mov    %esi,%eax
4028a4:	5e                   	pop    %esi
4028a5:	c3                   	ret
4028a6:	55                   	push   %ebp
4028a7:	8b ec                	mov    %esp,%ebp
4028a9:	53                   	push   %ebx
4028aa:	56                   	push   %esi
4028ab:	8b f1                	mov    %ecx,%esi
4028ad:	6a 04                	push   $0x4
4028af:	8b 46 0c             	mov    0xc(%esi),%eax
4028b2:	5b                   	pop    %ebx
4028b3:	39 46 08             	cmp    %eax,0x8(%esi)
4028b6:	75 30                	jne    0x4028e8
4028b8:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
4028bb:	6a 08                	push   $0x8
4028bd:	58                   	pop    %eax
4028be:	3b c8                	cmp    %eax,%ecx
4028c0:	73 50                	jae    0x402912
4028c2:	33 c9                	xor    %ecx,%ecx
4028c4:	89 46 0c             	mov    %eax,0xc(%esi)
4028c7:	f7 e3                	mul    %ebx
4028c9:	0f 90 c1             	seto   %cl
4028cc:	57                   	push   %edi
4028cd:	f7 d9                	neg    %ecx
4028cf:	0b c8                	or     %eax,%ecx
4028d1:	51                   	push   %ecx
4028d2:	e8 13 cc 01 00       	call   0x41f4ea
4028d7:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4028db:	59                   	pop    %ecx
4028dc:	8b f8                	mov    %eax,%edi
4028de:	0f 85 c4 43 07 00    	jne    0x476ca8
4028e4:	89 7e 04             	mov    %edi,0x4(%esi)
4028e7:	5f                   	pop    %edi
4028e8:	53                   	push   %ebx
4028e9:	e8 fc cb 01 00       	call   0x41f4ea
4028ee:	8b d0                	mov    %eax,%edx
4028f0:	59                   	pop    %ecx
4028f1:	85 d2                	test   %edx,%edx
4028f3:	0f 84 d7 43 07 00    	je     0x476cd0
4028f9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4028fc:	8b 09                	mov    (%ecx),%ecx
4028fe:	89 0a                	mov    %ecx,(%edx)
402900:	8b 4e 08             	mov    0x8(%esi),%ecx
402903:	8b 46 04             	mov    0x4(%esi),%eax
402906:	89 14 88             	mov    %edx,(%eax,%ecx,4)
402909:	ff 46 08             	incl   0x8(%esi)
40290c:	5e                   	pop    %esi
40290d:	5b                   	pop    %ebx
40290e:	5d                   	pop    %ebp
40290f:	c2 04 00             	ret    $0x4
402912:	8b c1                	mov    %ecx,%eax
402914:	eb ac                	jmp    0x4028c2
402916:	55                   	push   %ebp
402917:	8b ec                	mov    %esp,%ebp
402919:	8b 01                	mov    (%ecx),%eax
40291b:	3b 45 08             	cmp    0x8(%ebp),%eax
40291e:	0f 95 c0             	setne  %al
402921:	5d                   	pop    %ebp
402922:	c2 04 00             	ret    $0x4
402925:	55                   	push   %ebp
402926:	8b ec                	mov    %esp,%ebp
402928:	56                   	push   %esi
402929:	6a 10                	push   $0x10
40292b:	8b f1                	mov    %ecx,%esi
40292d:	e8 b8 cb 01 00       	call   0x41f4ea
402932:	59                   	pop    %ecx
402933:	85 c0                	test   %eax,%eax
402935:	0f 84 aa 1b 07 00    	je     0x4744e5
40293b:	ff 75 08             	push   0x8(%ebp)
40293e:	8b c8                	mov    %eax,%ecx
402940:	e8 d4 a4 00 00       	call   0x40ce19
402945:	89 46 08             	mov    %eax,0x8(%esi)
402948:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
40294f:	8b c6                	mov    %esi,%eax
402951:	5e                   	pop    %esi
402952:	5d                   	pop    %ebp
402953:	c2 04 00             	ret    $0x4
402956:	55                   	push   %ebp
402957:	8b ec                	mov    %esp,%ebp
402959:	56                   	push   %esi
40295a:	57                   	push   %edi
40295b:	8b 7d 08             	mov    0x8(%ebp),%edi
40295e:	8b f1                	mov    %ecx,%esi
402960:	8b 4e 24             	mov    0x24(%esi),%ecx
402963:	85 c9                	test   %ecx,%ecx
402965:	74 5d                	je     0x4029c4
402967:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
40296b:	74 57                	je     0x4029c4
40296d:	83 3f ff             	cmpl   $0xffffffff,(%edi)
402970:	74 52                	je     0x4029c4
402972:	8b 56 28             	mov    0x28(%esi),%edx
402975:	39 17                	cmp    %edx,(%edi)
402977:	7f 4b                	jg     0x4029c4
402979:	ff 76 30             	push   0x30(%esi)
40297c:	8b 46 40             	mov    0x40(%esi),%eax
40297f:	ff 76 2c             	push   0x2c(%esi)
402982:	0b 46 38             	or     0x38(%esi),%eax
402985:	50                   	push   %eax
402986:	ff 37                	push   (%edi)
402988:	52                   	push   %edx
402989:	ff 36                	push   (%esi)
40298b:	e8 d0 71 00 00       	call   0x409b60
402990:	83 c4 18             	add    $0x18,%esp
402993:	89 46 34             	mov    %eax,0x34(%esi)
402996:	85 c0                	test   %eax,%eax
402998:	0f 8e b1 fb 06 00    	jle    0x47254f
40299e:	8b 46 2c             	mov    0x2c(%esi),%eax
4029a1:	8b 48 04             	mov    0x4(%eax),%ecx
4029a4:	83 66 38 00          	andl   $0x0,0x38(%esi)
4029a8:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4029ac:	74 0b                	je     0x4029b9
4029ae:	8b 10                	mov    (%eax),%edx
4029b0:	3b 50 04             	cmp    0x4(%eax),%edx
4029b3:	0f 84 b4 fb 06 00    	je     0x47256d
4029b9:	89 0f                	mov    %ecx,(%edi)
4029bb:	8b 46 34             	mov    0x34(%esi),%eax
4029be:	5f                   	pop    %edi
4029bf:	5e                   	pop    %esi
4029c0:	5d                   	pop    %ebp
4029c1:	c2 08 00             	ret    $0x8
4029c4:	33 c0                	xor    %eax,%eax
4029c6:	eb f6                	jmp    0x4029be
4029c8:	55                   	push   %ebp
4029c9:	8b ec                	mov    %esp,%ebp
4029cb:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4029cf:	0f 85 3d b2 07 00    	jne    0x47dc12
4029d5:	8b 0d 94 16 4c 00    	mov    0x4c1694,%ecx
4029db:	83 f9 ff             	cmp    $0xffffffff,%ecx
4029de:	74 2f                	je     0x402a0f
4029e0:	8b 55 08             	mov    0x8(%ebp),%edx
4029e3:	8d 42 0d             	lea    0xd(%edx),%eax
4029e6:	83 f8 0d             	cmp    $0xd,%eax
4029e9:	77 24                	ja     0x402a0f
4029eb:	a1 88 16 4c 00       	mov    0x4c1688,%eax
4029f0:	ff 75 0c             	push   0xc(%ebp)
4029f3:	8b 04 88             	mov    (%eax,%ecx,4),%eax
4029f6:	c1 e2 04             	shl    $0x4,%edx
4029f9:	8b 00                	mov    (%eax),%eax
4029fb:	8d 8a 5c 01 00 00    	lea    0x15c(%edx),%ecx
402a01:	03 c8                	add    %eax,%ecx
402a03:	e8 e5 44 00 00       	call   0x406eed
402a08:	33 c0                	xor    %eax,%eax
402a0a:	40                   	inc    %eax
402a0b:	5d                   	pop    %ebp
402a0c:	c2 0c 00             	ret    $0xc
402a0f:	33 c0                	xor    %eax,%eax
402a11:	eb f8                	jmp    0x402a0b
402a13:	56                   	push   %esi
402a14:	8b f1                	mov    %ecx,%esi
402a16:	e8 e3 0b 00 00       	call   0x4035fe
402a1b:	2b 46 10             	sub    0x10(%esi),%eax
402a1e:	1b 56 14             	sbb    0x14(%esi),%edx
402a21:	5e                   	pop    %esi
402a22:	c3                   	ret
402a23:	56                   	push   %esi
402a24:	8b f1                	mov    %ecx,%esi
402a26:	e8 0d 00 00 00       	call   0x402a38
402a2b:	56                   	push   %esi
402a2c:	e8 2d cb 01 00       	call   0x41f55e
402a31:	59                   	pop    %ecx
402a32:	8b c6                	mov    %esi,%eax
402a34:	5e                   	pop    %esi
402a35:	c2 04 00             	ret    $0x4
402a38:	56                   	push   %esi
402a39:	8b f1                	mov    %ecx,%esi
402a3b:	8d 4e 38             	lea    0x38(%esi),%ecx
402a3e:	e8 f4 a0 00 00       	call   0x40cb37
402a43:	8d 4e 18             	lea    0x18(%esi),%ecx
402a46:	e8 ec a0 00 00       	call   0x40cb37
402a4b:	8d 4e 08             	lea    0x8(%esi),%ecx
402a4e:	5e                   	pop    %esi
402a4f:	e9 cc 01 01 00       	jmp    0x412c20
402a54:	55                   	push   %ebp
402a55:	8b ec                	mov    %esp,%ebp
402a57:	56                   	push   %esi
402a58:	8b 75 08             	mov    0x8(%ebp),%esi
402a5b:	57                   	push   %edi
402a5c:	8b 46 04             	mov    0x4(%esi),%eax
402a5f:	8b f9                	mov    %ecx,%edi
402a61:	ff 30                	push   (%eax)
402a63:	8d 8f d8 01 00 00    	lea    0x1d8(%edi),%ecx
402a69:	e8 40 b2 00 00       	call   0x40dcae
402a6e:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
402a72:	0f 82 36 a2 07 00    	jb     0x47ccae
402a78:	8b 46 04             	mov    0x4(%esi),%eax
402a7b:	8b 70 04             	mov    0x4(%eax),%esi
402a7e:	8b ce                	mov    %esi,%ecx
402a80:	e8 e7 68 00 00       	call   0x40936c
402a85:	ff 76 08             	push   0x8(%esi)
402a88:	8d 8f e8 01 00 00    	lea    0x1e8(%edi),%ecx
402a8e:	e8 5a 44 00 00       	call   0x406eed
402a93:	5f                   	pop    %edi
402a94:	5e                   	pop    %esi
402a95:	5d                   	pop    %ebp
402a96:	c2 04 00             	ret    $0x4
402a99:	56                   	push   %esi
402a9a:	8b f1                	mov    %ecx,%esi
402a9c:	e8 96 a0 00 00       	call   0x40cb37
402aa1:	56                   	push   %esi
402aa2:	e8 b7 ca 01 00       	call   0x41f55e
402aa7:	59                   	pop    %ecx
402aa8:	8b c6                	mov    %esi,%eax
402aaa:	5e                   	pop    %esi
402aab:	c2 04 00             	ret    $0x4
402aae:	55                   	push   %ebp
402aaf:	8b ec                	mov    %esp,%ebp
402ab1:	83 ec 10             	sub    $0x10,%esp
402ab4:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
402ab8:	53                   	push   %ebx
402ab9:	56                   	push   %esi
402aba:	57                   	push   %edi
402abb:	8b f9                	mov    %ecx,%edi
402abd:	8d b7 60 01 00 00    	lea    0x160(%edi),%esi
402ac3:	8b 06                	mov    (%esi),%eax
402ac5:	89 45 f4             	mov    %eax,-0xc(%ebp)
402ac8:	74 08                	je     0x402ad2
402aca:	ff 75 08             	push   0x8(%ebp)
402acd:	e8 7b 00 00 00       	call   0x402b4d
402ad2:	8b cf                	mov    %edi,%ecx
402ad4:	e8 d5 f6 ff ff       	call   0x4021ae
402ad9:	ff 75 08             	push   0x8(%ebp)