4028d8:	0f 84 4a 01 00 00    	je     0x402a28
4028de:	85 c0                	test   %eax,%eax
4028e0:	0f 84 42 01 00 00    	je     0x402a28
4028e6:	8b cf                	mov    %edi,%ecx
4028e8:	89 30                	mov    %esi,(%eax)
4028ea:	8d 51 02             	lea    0x2(%ecx),%edx
4028ed:	66 8b 01             	mov    (%ecx),%ax
4028f0:	83 c1 02             	add    $0x2,%ecx
4028f3:	66 3b c6             	cmp    %si,%ax
4028f6:	75 f5                	jne    0x4028ed
4028f8:	2b ca                	sub    %edx,%ecx
4028fa:	89 75 b0             	mov    %esi,-0x50(%ebp)
4028fd:	d1 f9                	sar    $1,%ecx
4028ff:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
402906:	89 45 b4             	mov    %eax,-0x4c(%ebp)
402909:	8d 04 8d 04 00 00 00 	lea    0x4(,%ecx,4),%eax
402910:	50                   	push   %eax
402911:	ff 15 00 70 40 00    	call   *0x407000
402917:	89 45 b8             	mov    %eax,-0x48(%ebp)
40291a:	85 c0                	test   %eax,%eax
40291c:	0f 84 f6 00 00 00    	je     0x402a18
402922:	89 3b                	mov    %edi,(%ebx)
402924:	0f b7 07             	movzwl (%edi),%eax
402927:	8b c8                	mov    %eax,%ecx
402929:	66 85 c0             	test   %ax,%ax
40292c:	0f 84 cc 00 00 00    	je     0x4029fe
402932:	6a 25                	push   $0x25
402934:	59                   	pop    %ecx
402935:	57                   	push   %edi
402936:	66 3b c1             	cmp    %cx,%ax
402939:	75 11                	jne    0x40294c
40293b:	ff 15 14 71 40 00    	call   *0x407114
402941:	6a 25                	push   $0x25
402943:	5a                   	pop    %edx
402944:	89 03                	mov    %eax,(%ebx)
402946:	66 39 10             	cmp    %dx,(%eax)
402949:	75 27                	jne    0x402972
40294b:	50                   	push   %eax
40294c:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40294f:	e8 5c f5 ff ff       	call   0x401eb0
402954:	85 c0                	test   %eax,%eax
402956:	0f 84 bc 00 00 00    	je     0x402a18
40295c:	ff 33                	push   (%ebx)
40295e:	ff 15 14 71 40 00    	call   *0x407114
402964:	8b f8                	mov    %eax,%edi
402966:	89 3b                	mov    %edi,(%ebx)
402968:	0f b7 0f             	movzwl (%edi),%ecx
40296b:	8b c1                	mov    %ecx,%eax
40296d:	66 85 c9             	test   %cx,%cx
402970:	eb ba                	jmp    0x40292c
402972:	8b c8                	mov    %eax,%ecx
402974:	e8 a0 f7 ff ff       	call   0x402119
402979:	89 45 a8             	mov    %eax,-0x58(%ebp)
40297c:	85 c0                	test   %eax,%eax
40297e:	74 70                	je     0x4029f0
402980:	2b 03                	sub    (%ebx),%eax
402982:	d1 f8                	sar    $1,%eax
402984:	83 f8 1f             	cmp    $0x1f,%eax
402987:	7f 6e                	jg     0x4029f7
402989:	40                   	inc    %eax
40298a:	50                   	push   %eax
40298b:	ff 33                	push   (%ebx)
40298d:	8d 45 bc             	lea    -0x44(%ebp),%eax
402990:	50                   	push   %eax
402991:	ff 15 20 71 40 00    	call   *0x407120
402997:	8b 4b 04             	mov    0x4(%ebx),%ecx
40299a:	8d 45 bc             	lea    -0x44(%ebp),%eax
40299d:	50                   	push   %eax
40299e:	e8 13 f7 ff ff       	call   0x4020b6
4029a3:	8b f8                	mov    %eax,%edi
4029a5:	85 ff                	test   %edi,%edi
4029a7:	74 47                	je     0x4029f0
4029a9:	89 75 ac             	mov    %esi,-0x54(%ebp)
4029ac:	eb 10                	jmp    0x4029be
4029ae:	57                   	push   %edi
4029af:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4029b2:	e8 f9 f4 ff ff       	call   0x401eb0
4029b7:	85 c0                	test   %eax,%eax
4029b9:	74 31                	je     0x4029ec
4029bb:	83 c7 02             	add    $0x2,%edi
4029be:	66 39 37             	cmp    %si,(%edi)
4029c1:	75 eb                	jne    0x4029ae
4029c3:	33 ff                	xor    %edi,%edi
4029c5:	47                   	inc    %edi
4029c6:	8d 4d ac             	lea    -0x54(%ebp),%ecx
4029c9:	e8 c8 1d 00 00       	call   0x404796
4029ce:	85 ff                	test   %edi,%edi
4029d0:	74 46                	je     0x402a18
4029d2:	8b 7d a8             	mov    -0x58(%ebp),%edi
4029d5:	39 3b                	cmp    %edi,(%ebx)
4029d7:	74 83                	je     0x40295c
4029d9:	ff 33                	push   (%ebx)
4029db:	ff 15 14 71 40 00    	call   *0x407114
4029e1:	89 03                	mov    %eax,(%ebx)
4029e3:	3b c7                	cmp    %edi,%eax
4029e5:	75 f2                	jne    0x4029d9
4029e7:	e9 70 ff ff ff       	jmp    0x40295c
4029ec:	8b fe                	mov    %esi,%edi
4029ee:	eb d6                	jmp    0x4029c6
4029f0:	be 09 00 02 80       	mov    $0x80020009,%esi
4029f5:	eb 26                	jmp    0x402a1d
4029f7:	be 05 40 00 80       	mov    $0x80004005,%esi
4029fc:	eb 1f                	jmp    0x402a1d
4029fe:	57                   	push   %edi
4029ff:	8d 4d b0             	lea    -0x50(%ebp),%ecx
402a02:	e8 a9 f4 ff ff       	call   0x401eb0
402a07:	85 c0                	test   %eax,%eax
402a09:	74 0d                	je     0x402a18
402a0b:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
402a0e:	8b 45 b8             	mov    -0x48(%ebp),%eax
402a11:	89 75 b8             	mov    %esi,-0x48(%ebp)
402a14:	89 01                	mov    %eax,(%ecx)
402a16:	eb 05                	jmp    0x402a1d
402a18:	be 0e 00 07 80       	mov    $0x8007000e,%esi
402a1d:	ff 75 b8             	push   -0x48(%ebp)
402a20:	ff 15 0c 70 40 00    	call   *0x40700c
402a26:	eb 05                	jmp    0x402a2d
402a28:	be 03 40 00 80       	mov    $0x80004003,%esi
402a2d:	8d 4d a0             	lea    -0x60(%ebp),%ecx
402a30:	e8 61 1d 00 00       	call   0x404796
402a35:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402a38:	8b c6                	mov    %esi,%eax
402a3a:	5f                   	pop    %edi
402a3b:	5e                   	pop    %esi
402a3c:	33 cd                	xor    %ebp,%ecx
402a3e:	5b                   	pop    %ebx
402a3f:	e8 5c 25 00 00       	call   0x404fa0
402a44:	c9                   	leave
402a45:	c2 08 00             	ret    $0x8
402a48:	8b ff                	mov    %edi,%edi
402a4a:	55                   	push   %ebp
402a4b:	8b ec                	mov    %esp,%ebp
402a4d:	83 ec 0c             	sub    $0xc,%esp
402a50:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
402a54:	53                   	push   %ebx
402a55:	56                   	push   %esi
402a56:	57                   	push   %edi
402a57:	68 00 20 00 00       	push   $0x2000
402a5c:	8b d9                	mov    %ecx,%ebx
402a5e:	ff 15 84 71 40 00    	call   *0x407184
402a64:	8b f8                	mov    %eax,%edi
402a66:	59                   	pop    %ecx
402a67:	85 ff                	test   %edi,%edi
402a69:	75 0a                	jne    0x402a75
402a6b:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
402a70:	e9 ec 00 00 00       	jmp    0x402b61
402a75:	8d 45 f8             	lea    -0x8(%ebp),%eax
402a78:	8b cb                	mov    %ebx,%ecx
402a7a:	50                   	push   %eax
402a7b:	ff 75 08             	push   0x8(%ebp)
402a7e:	e8 2e fe ff ff       	call   0x4028b1
402a83:	8b f0                	mov    %eax,%esi
402a85:	85 f6                	test   %esi,%esi
402a87:	0f 88 ca 00 00 00    	js     0x402b57
402a8d:	8b 45 f8             	mov    -0x8(%ebp),%eax
402a90:	89 03                	mov    %eax,(%ebx)
402a92:	e9 a5 00 00 00       	jmp    0x402b3c
402a97:	57                   	push   %edi
402a98:	8b cb                	mov    %ebx,%ecx
402a9a:	e8 8b f7 ff ff       	call   0x40222a
402a9f:	8b f0                	mov    %eax,%esi
402aa1:	85 f6                	test   %esi,%esi
402aa3:	0f 88 a5 00 00 00    	js     0x402b4e
402aa9:	33 f6                	xor    %esi,%esi
402aab:	ff 34 f5 10 10 40 00 	push   0x401010(,%esi,8)
402ab2:	57                   	push   %edi
402ab3:	ff 15 1c 71 40 00    	call   *0x40711c
402ab9:	85 c0                	test   %eax,%eax
402abb:	74 0a                	je     0x402ac7
402abd:	46                   	inc    %esi
402abe:	83 fe 0e             	cmp    $0xe,%esi
402ac1:	72 e8                	jb     0x402aab
402ac3:	33 c0                	xor    %eax,%eax
402ac5:	eb 07                	jmp    0x402ace
402ac7:	8b 04 f5 14 10 40 00 	mov    0x401014(,%esi,8),%eax
402ace:	89 45 fc             	mov    %eax,-0x4(%ebp)
402ad1:	85 c0                	test   %eax,%eax
402ad3:	74 74                	je     0x402b49
402ad5:	57                   	push   %edi
402ad6:	8b cb                	mov    %ebx,%ecx
402ad8:	e8 4d f7 ff ff       	call   0x40222a
402add:	8b f0                	mov    %eax,%esi
402adf:	85 f6                	test   %esi,%esi
402ae1:	78 6b                	js     0x402b4e
402ae3:	6a 7b                	push   $0x7b
402ae5:	58                   	pop    %eax
402ae6:	66 3b 07             	cmp    (%edi),%ax
402ae9:	75 5e                	jne    0x402b49
402aeb:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
402aef:	8b cb                	mov    %ebx,%ecx
402af1:	6a 00                	push   $0x0
402af3:	74 2d                	je     0x402b22
402af5:	ff 75 0c             	push   0xc(%ebp)
402af8:	8b 03                	mov    (%ebx),%eax
402afa:	ff 75 fc             	push   -0x4(%ebp)
402afd:	89 45 f4             	mov    %eax,-0xc(%ebp)
402b00:	57                   	push   %edi
402b01:	e8 62 00 00 00       	call   0x402b68
402b06:	8b f0                	mov    %eax,%esi
402b08:	85 f6                	test   %esi,%esi
402b0a:	79 27                	jns    0x402b33
402b0c:	8b 45 f4             	mov    -0xc(%ebp),%eax
402b0f:	8b cb                	mov    %ebx,%ecx
402b11:	6a 00                	push   $0x0
402b13:	6a 00                	push   $0x0
402b15:	ff 75 fc             	push   -0x4(%ebp)
402b18:	89 03                	mov    %eax,(%ebx)
402b1a:	57                   	push   %edi
402b1b:	e8 48 00 00 00       	call   0x402b68
402b20:	eb 2c                	jmp    0x402b4e
402b22:	6a 00                	push   $0x0
402b24:	ff 75 fc             	push   -0x4(%ebp)
402b27:	57                   	push   %edi
402b28:	e8 3b 00 00 00       	call   0x402b68
402b2d:	8b f0                	mov    %eax,%esi
402b2f:	85 f6                	test   %esi,%esi
402b31:	78 1b                	js     0x402b4e
402b33:	8b cb                	mov    %ebx,%ecx
402b35:	e8 c3 f6 ff ff       	call   0x4021fd
402b3a:	8b 03                	mov    (%ebx),%eax
402b3c:	33 c9                	xor    %ecx,%ecx
402b3e:	66 3b 08             	cmp    (%eax),%cx
402b41:	0f 85 50 ff ff ff    	jne    0x402a97
402b47:	eb 05                	jmp    0x402b4e
402b49:	be 09 00 02 80       	mov    $0x80020009,%esi
402b4e:	ff 75 f8             	push   -0x8(%ebp)
402b51:	ff 15 0c 70 40 00    	call   *0x40700c
402b57:	57                   	push   %edi
402b58:	ff 15 64 71 40 00    	call   *0x407164
402b5e:	8b c6                	mov    %esi,%eax
402b60:	59                   	pop    %ecx
402b61:	5f                   	pop    %edi
402b62:	5e                   	pop    %esi
402b63:	5b                   	pop    %ebx
402b64:	c9                   	leave
402b65:	c2 08 00             	ret    $0x8
402b68:	8b ff                	mov    %edi,%edi
402b6a:	55                   	push   %ebp
402b6b:	8b ec                	mov    %esp,%ebp
402b6d:	81 ec 6c 02 00 00    	sub    $0x26c,%esp
402b73:	a1 54 60 40 00       	mov    0x406054,%eax
402b78:	33 c5                	xor    %ebp,%eax
402b7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
402b7d:	8b c1                	mov    %ecx,%eax
402b7f:	c7 85 c8 fd ff ff 01 	movl   $0x1,-0x238(%ebp)
402b86:	00 00 00
402b89:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402b8c:	53                   	push   %ebx
402b8d:	8b 5d 08             	mov    0x8(%ebp),%ebx
402b90:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
402b96:	33 c9                	xor    %ecx,%ecx
402b98:	56                   	push   %esi
402b99:	8b f1                	mov    %ecx,%esi
402b9b:	89 8d bc fd ff ff    	mov    %ecx,-0x244(%ebp)
402ba1:	89 8d d4 fd ff ff    	mov    %ecx,-0x22c(%ebp)
402ba7:	89 8d d8 fd ff ff    	mov    %ecx,-0x228(%ebp)
402bad:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
402bb3:	89 8d e0 fd ff ff    	mov    %ecx,-0x220(%ebp)
402bb9:	8b 4d 14             	mov    0x14(%ebp),%ecx
402bbc:	57                   	push   %edi
402bbd:	89 8d c0 fd ff ff    	mov    %ecx,-0x240(%ebp)
402bc3:	8b c8                	mov    %eax,%ecx
402bc5:	53                   	push   %ebx
402bc6:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
402bcc:	89 b5 c4 fd ff ff    	mov    %esi,-0x23c(%ebp)
402bd2:	e8 53 f6 ff ff       	call   0x40222a
402bd7:	8b f8                	mov    %eax,%edi
402bd9:	85 ff                	test   %edi,%edi
402bdb:	0f 88 04 05 00 00    	js     0x4030e5
402be1:	e9 ef 05 00 00       	jmp    0x4031d5
402be6:	68 94 13 40 00       	push   $0x401394
402beb:	53                   	push   %ebx
402bec:	ff 15 1c 71 40 00    	call   *0x40711c
402bf2:	f7 d8                	neg    %eax
402bf4:	68 68 13 40 00       	push   $0x401368
402bf9:	1b ff                	sbb    %edi,%edi
402bfb:	47                   	inc    %edi
402bfc:	53                   	push   %ebx
402bfd:	89 bd d0 fd ff ff    	mov    %edi,-0x230(%ebp)
402c03:	ff 15 1c 71 40 00    	call   *0x40711c
402c09:	85 c0                	test   %eax,%eax
402c0b:	74 04                	je     0x402c11
402c0d:	85 ff                	test   %edi,%edi
402c0f:	74 79                	je     0x402c8a
402c11:	8b 8d ec fd ff ff    	mov    -0x214(%ebp),%ecx
402c17:	53                   	push   %ebx
402c18:	e8 0d f6 ff ff       	call   0x40222a
402c1d:	8b f8                	mov    %eax,%edi
402c1f:	85 ff                	test   %edi,%edi
402c21:	0f 88 ad 04 00 00    	js     0x4030d4
402c27:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
402c2b:	74 5d                	je     0x402c8a
402c2d:	33 c0                	xor    %eax,%eax
402c2f:	8b cb                	mov    %ebx,%ecx
402c31:	6a 5c                	push   $0x5c
402c33:	5a                   	pop    %edx
402c34:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
402c3a:	89 85 b4 fd ff ff    	mov    %eax,-0x24c(%ebp)
402c40:	89 85 b8 fd ff ff    	mov    %eax,-0x248(%ebp)
402c46:	e8 ce f4 ff ff       	call   0x402119
402c4b:	85 c0                	test   %eax,%eax
402c4d:	0f 85 7c 04 00 00    	jne    0x4030cf
402c53:	53                   	push   %ebx
402c54:	e8 f1 fa ff ff       	call   0x40274a
402c59:	85 c0                	test   %eax,%eax
402c5b:	74 20                	je     0x402c7d
402c5d:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
402c63:	8d 8d b0 fd ff ff    	lea    -0x250(%ebp),%ecx
402c69:	53                   	push   %ebx
402c6a:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
402c70:	e8 d8 ef ff ff       	call   0x401c4d
402c75:	33 c0                	xor    %eax,%eax
402c77:	89 85 b0 fd ff ff    	mov    %eax,-0x250(%ebp)
402c7d:	83 bd d0 fd ff ff 00 	cmpl   $0x0,-0x230(%ebp)
402c84:	0f 85 bc 04 00 00    	jne    0x403146
402c8a:	68 80 13 40 00       	push   $0x401380
402c8f:	53                   	push   %ebx
402c90:	ff 15 1c 71 40 00    	call   *0x40711c
402c96:	85 c0                	test   %eax,%eax
402c98:	75 1c                	jne    0x402cb6
402c9a:	8b 8d ec fd ff ff    	mov    -0x214(%ebp),%ecx
402ca0:	53                   	push   %ebx
402ca1:	89 85 c8 fd ff ff    	mov    %eax,-0x238(%ebp)
402ca7:	e8 7e f5 ff ff       	call   0x40222a
402cac:	8b f8                	mov    %eax,%edi
402cae:	85 ff                	test   %edi,%edi
402cb0:	0f 88 1e 04 00 00    	js     0x4030d4
402cb6:	68 60 13 40 00       	push   $0x401360
402cbb:	53                   	push   %ebx
402cbc:	ff 15 1c 71 40 00    	call   *0x40711c
402cc2:	85 c0                	test   %eax,%eax
402cc4:	0f 85 05 01 00 00    	jne    0x402dcf
402cca:	8b 8d ec fd ff ff    	mov    -0x214(%ebp),%ecx
402cd0:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
402cd6:	50                   	push   %eax
402cd7:	e8 4e f5 ff ff       	call   0x40222a
402cdc:	8b f8                	mov    %eax,%edi
402cde:	85 ff                	test   %edi,%edi
402ce0:	0f 88 ee 03 00 00    	js     0x4030d4
402ce6:	8b 8d ec fd ff ff    	mov    -0x214(%ebp),%ecx
402cec:	53                   	push   %ebx
402ced:	e8 38 f5 ff ff       	call   0x40222a
402cf2:	8b f8                	mov    %eax,%edi
402cf4:	85 ff                	test   %edi,%edi
402cf6:	0f 88 d8 03 00 00    	js     0x4030d4
402cfc:	6a 3d                	push   $0x3d
402cfe:	58                   	pop    %eax
402cff:	66 39 03             	cmp    %ax,(%ebx)
402d02:	0f 85 c7 03 00 00    	jne    0x4030cf
402d08:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)