40196a:	8b 00                	mov    (%eax),%eax
40196c:	89 07                	mov    %eax,(%edi)
40196e:	3b 2f                	cmp    (%edi),%ebp
401970:	75 bb                	jne    0x40192d
401972:	8b d3                	mov    %ebx,%edx
401974:	8b c6                	mov    %esi,%eax
401976:	e8 6d fc ff ff       	call   0x4015e8
40197b:	83 3b 00             	cmpl   $0x0,(%ebx)
40197e:	74 26                	je     0x4019a6
401980:	8d 4c 24 04          	lea    0x4(%esp),%ecx
401984:	8b d3                	mov    %ebx,%edx
401986:	8b c5                	mov    %ebp,%eax
401988:	e8 0f fb ff ff       	call   0x40149c
40198d:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
401992:	75 92                	jne    0x401926
401994:	8d 4c 24 04          	lea    0x4(%esp),%ecx
401998:	8b 53 04             	mov    0x4(%ebx),%edx
40199b:	8b 03                	mov    (%ebx),%eax
40199d:	e8 22 fd ff ff       	call   0x4016c4
4019a2:	33 c0                	xor    %eax,%eax
4019a4:	89 03                	mov    %eax,(%ebx)
4019a6:	83 c4 0c             	add    $0xc,%esp
4019a9:	5d                   	pop    %ebp
4019aa:	5f                   	pop    %edi
4019ab:	5e                   	pop    %esi
4019ac:	5b                   	pop    %ebx
4019ad:	c3                   	ret
4019ae:	8b c0                	mov    %eax,%eax
4019b0:	53                   	push   %ebx
4019b1:	56                   	push   %esi
4019b2:	57                   	push   %edi
4019b3:	55                   	push   %ebp
4019b4:	83 c4 e8             	add    $0xffffffe8,%esp
4019b7:	89 0c 24             	mov    %ecx,(%esp)
4019ba:	8b fa                	mov    %edx,%edi
4019bc:	8b d8                	mov    %eax,%ebx
4019be:	8d 74 24 04          	lea    0x4(%esp),%esi
4019c2:	bd f4 15 46 00       	mov    $0x4615f4,%ebp
4019c7:	81 c7 ff 3f 00 00    	add    $0x3fff,%edi
4019cd:	81 e7 00 c0 ff ff    	and    $0xffffc000,%edi
4019d3:	8b 45 00             	mov    0x0(%ebp),%eax
4019d6:	89 06                	mov    %eax,(%esi)
4019d8:	eb 06                	jmp    0x4019e0
4019da:	8b 06                	mov    (%esi),%eax
4019dc:	8b 00                	mov    (%eax),%eax
4019de:	89 06                	mov    %eax,(%esi)
4019e0:	3b 2e                	cmp    (%esi),%ebp
4019e2:	74 07                	je     0x4019eb
4019e4:	8b 06                	mov    (%esi),%eax
4019e6:	3b 58 08             	cmp    0x8(%eax),%ebx
4019e9:	75 ef                	jne    0x4019da
4019eb:	8b 06                	mov    (%esi),%eax
4019ed:	3b 58 08             	cmp    0x8(%eax),%ebx
4019f0:	75 5f                	jne    0x401a51
4019f2:	8b 06                	mov    (%esi),%eax
4019f4:	3b 78 0c             	cmp    0xc(%eax),%edi
4019f7:	0f 8e 9c 00 00 00    	jle    0x401a99
4019fd:	8b 06                	mov    (%esi),%eax
4019ff:	8b d7                	mov    %edi,%edx
401a01:	2b 50 0c             	sub    0xc(%eax),%edx
401a04:	8b 06                	mov    (%esi),%eax
401a06:	8b 40 08             	mov    0x8(%eax),%eax
401a09:	8b 0e                	mov    (%esi),%ecx
401a0b:	03 41 0c             	add    0xc(%ecx),%eax
401a0e:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401a12:	e8 35 fc ff ff       	call   0x40164c
401a17:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
401a1c:	74 33                	je     0x401a51
401a1e:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401a22:	8d 54 24 08          	lea    0x8(%esp),%edx
401a26:	8b c5                	mov    %ebp,%eax
401a28:	e8 6f fa ff ff       	call   0x40149c
401a2d:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
401a32:	75 9f                	jne    0x4019d3
401a34:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401a38:	8b 54 24 0c          	mov    0xc(%esp),%edx
401a3c:	8b 44 24 08          	mov    0x8(%esp),%eax
401a40:	e8 7f fc ff ff       	call   0x4016c4
401a45:	8b 04 24             	mov    (%esp),%eax
401a48:	33 d2                	xor    %edx,%edx
401a4a:	89 10                	mov    %edx,(%eax)
401a4c:	e9 9a 00 00 00       	jmp    0x401aeb
401a51:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401a55:	8b d7                	mov    %edi,%edx
401a57:	8b c3                	mov    %ebx,%eax
401a59:	e8 ee fb ff ff       	call   0x40164c
401a5e:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
401a63:	74 34                	je     0x401a99
401a65:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401a69:	8d 54 24 08          	lea    0x8(%esp),%edx
401a6d:	8b c5                	mov    %ebp,%eax
401a6f:	e8 28 fa ff ff       	call   0x40149c
401a74:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
401a79:	0f 85 54 ff ff ff    	jne    0x4019d3
401a7f:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401a83:	8b 54 24 0c          	mov    0xc(%esp),%edx
401a87:	8b 44 24 08          	mov    0x8(%esp),%eax
401a8b:	e8 34 fc ff ff       	call   0x4016c4
401a90:	8b 04 24             	mov    (%esp),%eax
401a93:	33 d2                	xor    %edx,%edx
401a95:	89 10                	mov    %edx,(%eax)
401a97:	eb 52                	jmp    0x401aeb
401a99:	8b 06                	mov    (%esi),%eax
401a9b:	8b 68 08             	mov    0x8(%eax),%ebp
401a9e:	3b dd                	cmp    %ebp,%ebx
401aa0:	75 42                	jne    0x401ae4
401aa2:	8b 06                	mov    (%esi),%eax
401aa4:	3b 78 0c             	cmp    0xc(%eax),%edi
401aa7:	7f 3b                	jg     0x401ae4
401aa9:	8b 0c 24             	mov    (%esp),%ecx
401aac:	8b c5                	mov    %ebp,%eax
401aae:	8b d7                	mov    %edi,%edx
401ab0:	e8 d7 fc ff ff       	call   0x40178c
401ab5:	8b 04 24             	mov    (%esp),%eax
401ab8:	83 38 00             	cmpl   $0x0,(%eax)
401abb:	74 2e                	je     0x401aeb
401abd:	8b 04 24             	mov    (%esp),%eax
401ac0:	8b 40 04             	mov    0x4(%eax),%eax
401ac3:	8b 16                	mov    (%esi),%edx
401ac5:	01 42 08             	add    %eax,0x8(%edx)
401ac8:	8b 04 24             	mov    (%esp),%eax
401acb:	8b 40 04             	mov    0x4(%eax),%eax
401ace:	8b 16                	mov    (%esi),%edx
401ad0:	29 42 0c             	sub    %eax,0xc(%edx)
401ad3:	8b 06                	mov    (%esi),%eax
401ad5:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
401ad9:	75 10                	jne    0x401aeb
401adb:	8b 06                	mov    (%esi),%eax
401add:	e8 86 f9 ff ff       	call   0x401468
401ae2:	eb 07                	jmp    0x401aeb
401ae4:	8b 04 24             	mov    (%esp),%eax
401ae7:	33 d2                	xor    %edx,%edx
401ae9:	89 10                	mov    %edx,(%eax)
401aeb:	83 c4 18             	add    $0x18,%esp
401aee:	5d                   	pop    %ebp
401aef:	5f                   	pop    %edi
401af0:	5e                   	pop    %esi
401af1:	5b                   	pop    %ebx
401af2:	c3                   	ret
401af3:	90                   	nop
401af4:	53                   	push   %ebx
401af5:	83 c4 e8             	add    $0xffffffe8,%esp
401af8:	8b d9                	mov    %ecx,%ebx
401afa:	8d 88 ff 3f 00 00    	lea    0x3fff(%eax),%ecx
401b00:	81 e1 00 c0 ff ff    	and    $0xffffc000,%ecx
401b06:	89 0c 24             	mov    %ecx,(%esp)
401b09:	03 d0                	add    %eax,%edx
401b0b:	81 e2 00 c0 ff ff    	and    $0xffffc000,%edx
401b11:	89 54 24 04          	mov    %edx,0x4(%esp)
401b15:	8b 44 24 04          	mov    0x4(%esp),%eax
401b19:	3b 04 24             	cmp    (%esp),%eax
401b1c:	76 5f                	jbe    0x401b7d
401b1e:	8b cb                	mov    %ebx,%ecx
401b20:	8b 54 24 04          	mov    0x4(%esp),%edx
401b24:	2b 14 24             	sub    (%esp),%edx
401b27:	8b 04 24             	mov    (%esp),%eax
401b2a:	e8 1d fd ff ff       	call   0x40184c
401b2f:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401b33:	8b d3                	mov    %ebx,%edx
401b35:	b8 f4 15 46 00       	mov    $0x4615f4,%eax
401b3a:	e8 5d f9 ff ff       	call   0x40149c
401b3f:	8b 5c 24 08          	mov    0x8(%esp),%ebx
401b43:	85 db                	test   %ebx,%ebx
401b45:	74 1f                	je     0x401b66
401b47:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401b4b:	8b 54 24 0c          	mov    0xc(%esp),%edx
401b4f:	8b c3                	mov    %ebx,%eax
401b51:	e8 6e fb ff ff       	call   0x4016c4
401b56:	8b 44 24 10          	mov    0x10(%esp),%eax
401b5a:	89 44 24 08          	mov    %eax,0x8(%esp)
401b5e:	8b 44 24 14          	mov    0x14(%esp),%eax
401b62:	89 44 24 0c          	mov    %eax,0xc(%esp)
401b66:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
401b6b:	74 14                	je     0x401b81
401b6d:	8d 54 24 08          	lea    0x8(%esp),%edx
401b71:	b8 f4 15 46 00       	mov    $0x4615f4,%eax
401b76:	e8 a9 f9 ff ff       	call   0x401524
401b7b:	eb 04                	jmp    0x401b81
401b7d:	33 c0                	xor    %eax,%eax
401b7f:	89 03                	mov    %eax,(%ebx)
401b81:	83 c4 18             	add    $0x18,%esp
401b84:	5b                   	pop    %ebx
401b85:	c3                   	ret
401b86:	8b c0                	mov    %eax,%eax
401b88:	55                   	push   %ebp
401b89:	8b ec                	mov    %esp,%ebp
401b8b:	51                   	push   %ecx
401b8c:	33 d2                	xor    %edx,%edx
401b8e:	55                   	push   %ebp
401b8f:	68 50 1c 40 00       	push   $0x401c50
401b94:	64 ff 32             	push   %fs:(%edx)
401b97:	64 89 22             	mov    %esp,%fs:(%edx)
401b9a:	68 c4 15 46 00       	push   $0x4615c4
401b9f:	e8 bc f7 ff ff       	call   0x401360
401ba4:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
401bab:	74 0a                	je     0x401bb7
401bad:	68 c4 15 46 00       	push   $0x4615c4
401bb2:	e8 b1 f7 ff ff       	call   0x401368
401bb7:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
401bbc:	e8 43 f8 ff ff       	call   0x401404
401bc1:	b8 f4 15 46 00       	mov    $0x4615f4,%eax
401bc6:	e8 39 f8 ff ff       	call   0x401404
401bcb:	b8 20 16 46 00       	mov    $0x461620,%eax
401bd0:	e8 2f f8 ff ff       	call   0x401404
401bd5:	68 f8 0f 00 00       	push   $0xff8
401bda:	6a 00                	push   $0x0
401bdc:	e8 5f f7 ff ff       	call   0x401340
401be1:	a3 1c 16 46 00       	mov    %eax,0x46161c
401be6:	83 3d 1c 16 46 00 00 	cmpl   $0x0,0x46161c
401bed:	74 40                	je     0x401c2f
401bef:	b8 03 00 00 00       	mov    $0x3,%eax
401bf4:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
401bfa:	33 c9                	xor    %ecx,%ecx
401bfc:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
401c00:	40                   	inc    %eax
401c01:	3d 01 04 00 00       	cmp    $0x401,%eax
401c06:	75 ec                	jne    0x401bf4
401c08:	c7 45 fc 04 16 46 00 	movl   $0x461604,-0x4(%ebp)
401c0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
401c12:	8b 55 fc             	mov    -0x4(%ebp),%edx
401c15:	89 50 04             	mov    %edx,0x4(%eax)
401c18:	8b 45 fc             	mov    -0x4(%ebp),%eax
401c1b:	8b 55 fc             	mov    -0x4(%ebp),%edx
401c1e:	89 10                	mov    %edx,(%eax)
401c20:	8b 45 fc             	mov    -0x4(%ebp),%eax
401c23:	a3 10 16 46 00       	mov    %eax,0x461610
401c28:	c6 05 bc 15 46 00 01 	movb   $0x1,0x4615bc
401c2f:	33 c0                	xor    %eax,%eax
401c31:	5a                   	pop    %edx
401c32:	59                   	pop    %ecx
401c33:	59                   	pop    %ecx
401c34:	64 89 10             	mov    %edx,%fs:(%eax)
401c37:	68 57 1c 40 00       	push   $0x401c57
401c3c:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
401c43:	74 0a                	je     0x401c4f
401c45:	68 c4 15 46 00       	push   $0x4615c4
401c4a:	e8 21 f7 ff ff       	call   0x401370
401c4f:	c3                   	ret
401c50:	e9 f7 22 00 00       	jmp    0x403f4c
401c55:	eb e5                	jmp    0x401c3c
401c57:	a0 bc 15 46 00       	mov    0x4615bc,%al
401c5c:	59                   	pop    %ecx
401c5d:	5d                   	pop    %ebp
401c5e:	c3                   	ret
401c5f:	90                   	nop
401c60:	55                   	push   %ebp
401c61:	8b ec                	mov    %esp,%ebp
401c63:	83 c4 f8             	add    $0xfffffff8,%esp
401c66:	80 3d bc 15 46 00 00 	cmpb   $0x0,0x4615bc
401c6d:	0f 84 e8 00 00 00    	je     0x401d5b
401c73:	33 c0                	xor    %eax,%eax
401c75:	55                   	push   %ebp
401c76:	68 54 1d 40 00       	push   $0x401d54
401c7b:	64 ff 30             	push   %fs:(%eax)
401c7e:	64 89 20             	mov    %esp,%fs:(%eax)
401c81:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
401c88:	74 0a                	je     0x401c94
401c8a:	68 c4 15 46 00       	push   $0x4615c4
401c8f:	e8 d4 f6 ff ff       	call   0x401368
401c94:	c6 05 bc 15 46 00 00 	movb   $0x0,0x4615bc
401c9b:	a1 1c 16 46 00       	mov    0x46161c,%eax
401ca0:	50                   	push   %eax
401ca1:	e8 a2 f6 ff ff       	call   0x401348
401ca6:	33 c0                	xor    %eax,%eax
401ca8:	a3 1c 16 46 00       	mov    %eax,0x46161c
401cad:	a1 e4 15 46 00       	mov    0x4615e4,%eax
401cb2:	89 45 f8             	mov    %eax,-0x8(%ebp)
401cb5:	eb 1b                	jmp    0x401cd2
401cb7:	68 00 80 00 00       	push   $0x8000
401cbc:	6a 00                	push   $0x0
401cbe:	8b 45 f8             	mov    -0x8(%ebp),%eax
401cc1:	8b 40 08             	mov    0x8(%eax),%eax
401cc4:	50                   	push   %eax
401cc5:	e8 8e f6 ff ff       	call   0x401358
401cca:	8b 45 f8             	mov    -0x8(%ebp),%eax
401ccd:	8b 00                	mov    (%eax),%eax
401ccf:	89 45 f8             	mov    %eax,-0x8(%ebp)
401cd2:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
401cd7:	3b 45 f8             	cmp    -0x8(%ebp),%eax
401cda:	75 db                	jne    0x401cb7
401cdc:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
401ce1:	e8 1e f7 ff ff       	call   0x401404
401ce6:	b8 f4 15 46 00       	mov    $0x4615f4,%eax
401ceb:	e8 14 f7 ff ff       	call   0x401404
401cf0:	b8 20 16 46 00       	mov    $0x461620,%eax
401cf5:	e8 0a f7 ff ff       	call   0x401404
401cfa:	a1 dc 15 46 00       	mov    0x4615dc,%eax
401cff:	89 45 fc             	mov    %eax,-0x4(%ebp)
401d02:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
401d06:	74 21                	je     0x401d29
401d08:	8b 45 fc             	mov    -0x4(%ebp),%eax
401d0b:	8b 00                	mov    (%eax),%eax
401d0d:	a3 dc 15 46 00       	mov    %eax,0x4615dc
401d12:	8b 45 fc             	mov    -0x4(%ebp),%eax
401d15:	50                   	push   %eax
401d16:	e8 2d f6 ff ff       	call   0x401348
401d1b:	a1 dc 15 46 00       	mov    0x4615dc,%eax
401d20:	89 45 fc             	mov    %eax,-0x4(%ebp)
401d23:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
401d27:	75 df                	jne    0x401d08
401d29:	33 c0                	xor    %eax,%eax
401d2b:	5a                   	pop    %edx
401d2c:	59                   	pop    %ecx
401d2d:	59                   	pop    %ecx
401d2e:	64 89 10             	mov    %edx,%fs:(%eax)
401d31:	68 5b 1d 40 00       	push   $0x401d5b
401d36:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
401d3d:	74 0a                	je     0x401d49
401d3f:	68 c4 15 46 00       	push   $0x4615c4
401d44:	e8 27 f6 ff ff       	call   0x401370
401d49:	68 c4 15 46 00       	push   $0x4615c4
401d4e:	e8 25 f6 ff ff       	call   0x401378
401d53:	c3                   	ret
401d54:	e9 f3 21 00 00       	jmp    0x403f4c
401d59:	eb db                	jmp    0x401d36
401d5b:	59                   	pop    %ecx
401d5c:	59                   	pop    %ecx
401d5d:	5d                   	pop    %ebp
401d5e:	c3                   	ret
401d5f:	90                   	nop
401d60:	53                   	push   %ebx
401d61:	83 c4 f8             	add    $0xfffffff8,%esp
401d64:	3b 05 10 16 46 00    	cmp    0x461610,%eax
401d6a:	75 09                	jne    0x401d75
401d6c:	8b 50 04             	mov    0x4(%eax),%edx
401d6f:	89 15 10 16 46 00    	mov    %edx,0x461610
401d75:	8b 50 04             	mov    0x4(%eax),%edx
401d78:	89 14 24             	mov    %edx,(%esp)
401d7b:	8b 50 08             	mov    0x8(%eax),%edx
401d7e:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
401d84:	7f 4e                	jg     0x401dd4
401d86:	3b 04 24             	cmp    (%esp),%eax
401d89:	75 17                	jne    0x401da2
401d8b:	85 d2                	test   %edx,%edx
401d8d:	79 03                	jns    0x401d92
401d8f:	83 c2 03             	add    $0x3,%edx
401d92:	c1 fa 02             	sar    $0x2,%edx
401d95:	a1 1c 16 46 00       	mov    0x46161c,%eax
401d9a:	33 c9                	xor    %ecx,%ecx
401d9c:	89 4c 90 f4          	mov    %ecx,-0xc(%eax,%edx,4)
401da0:	eb 4b                	jmp    0x401ded
401da2:	85 d2                	test   %edx,%edx
401da4:	79 03                	jns    0x401da9
401da6:	83 c2 03             	add    $0x3,%edx
401da9:	c1 fa 02             	sar    $0x2,%edx
401dac:	8b 0d 1c 16 46 00    	mov    0x46161c,%ecx
401db2:	8b 1c 24             	mov    (%esp),%ebx
401db5:	89 5c 91 f4          	mov    %ebx,-0xc(%ecx,%edx,4)
401db9:	8b 00                	mov    (%eax),%eax
401dbb:	89 44 24 04          	mov    %eax,0x4(%esp)