41ae73:	c3                   	ret
41ae74:	e9 37 92 fe ff       	jmp    0x4040b0
41ae79:	eb eb                	jmp    0x41ae66
41ae7b:	8b c3                	mov    %ebx,%eax
41ae7d:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
41ae81:	74 0f                	je     0x41ae92
41ae83:	e8 10 8e fe ff       	call   0x403c98
41ae88:	64 8f 05 00 00 00 00 	pop    %fs:0x0
41ae8f:	83 c4 0c             	add    $0xc,%esp
41ae92:	8b c3                	mov    %ebx,%eax
41ae94:	5f                   	pop    %edi
41ae95:	5e                   	pop    %esi
41ae96:	5b                   	pop    %ebx
41ae97:	8b e5                	mov    %ebp,%esp
41ae99:	5d                   	pop    %ebp
41ae9a:	c2 08 00             	ret    $0x8
41ae9d:	8d 40 00             	lea    0x0(%eax),%eax
41aea0:	53                   	push   %ebx
41aea1:	56                   	push   %esi
41aea2:	e8 41 8e fe ff       	call   0x403ce8
41aea7:	8b da                	mov    %edx,%ebx
41aea9:	8b f0                	mov    %eax,%esi
41aeab:	8b 46 04             	mov    0x4(%esi),%eax
41aeae:	85 c0                	test   %eax,%eax
41aeb0:	7c 06                	jl     0x41aeb8
41aeb2:	50                   	push   %eax
41aeb3:	e8 c8 ba fe ff       	call   0x406980
41aeb8:	8b d3                	mov    %ebx,%edx
41aeba:	80 e2 fc             	and    $0xfc,%dl
41aebd:	8b c6                	mov    %esi,%eax
41aebf:	e8 48 8a fe ff       	call   0x40390c
41aec4:	84 db                	test   %bl,%bl
41aec6:	7e 07                	jle    0x41aecf
41aec8:	8b c6                	mov    %esi,%eax
41aeca:	e8 c1 8d fe ff       	call   0x403c90
41aecf:	5e                   	pop    %esi
41aed0:	5b                   	pop    %ebx
41aed1:	c3                   	ret
41aed2:	8b c0                	mov    %eax,%eax
41aed4:	89 50 04             	mov    %edx,0x4(%eax)
41aed7:	89 48 08             	mov    %ecx,0x8(%eax)
41aeda:	c3                   	ret
41aedb:	90                   	nop
41aedc:	53                   	push   %ebx
41aedd:	56                   	push   %esi
41aede:	57                   	push   %edi
41aedf:	8b d8                	mov    %eax,%ebx
41aee1:	8b 7b 0c             	mov    0xc(%ebx),%edi
41aee4:	85 ff                	test   %edi,%edi
41aee6:	7c 24                	jl     0x41af0c
41aee8:	85 c9                	test   %ecx,%ecx
41aeea:	7c 20                	jl     0x41af0c
41aeec:	8b 73 08             	mov    0x8(%ebx),%esi
41aeef:	2b f7                	sub    %edi,%esi
41aef1:	85 f6                	test   %esi,%esi
41aef3:	7e 17                	jle    0x41af0c
41aef5:	3b ce                	cmp    %esi,%ecx
41aef7:	7d 02                	jge    0x41aefb
41aef9:	8b f1                	mov    %ecx,%esi
41aefb:	8b 43 04             	mov    0x4(%ebx),%eax
41aefe:	03 c7                	add    %edi,%eax
41af00:	8b ce                	mov    %esi,%ecx
41af02:	e8 e5 7f fe ff       	call   0x402eec
41af07:	01 73 0c             	add    %esi,0xc(%ebx)
41af0a:	eb 02                	jmp    0x41af0e
41af0c:	33 f6                	xor    %esi,%esi
41af0e:	8b c6                	mov    %esi,%eax
41af10:	5f                   	pop    %edi
41af11:	5e                   	pop    %esi
41af12:	5b                   	pop    %ebx
41af13:	c3                   	ret
41af14:	66 83 e9 01          	sub    $0x1,%cx
41af18:	72 09                	jb     0x41af23
41af1a:	74 0c                	je     0x41af28
41af1c:	66 ff c9             	dec    %cx
41af1f:	74 0c                	je     0x41af2d
41af21:	eb 10                	jmp    0x41af33
41af23:	89 50 0c             	mov    %edx,0xc(%eax)
41af26:	eb 0b                	jmp    0x41af33
41af28:	01 50 0c             	add    %edx,0xc(%eax)
41af2b:	eb 06                	jmp    0x41af33
41af2d:	03 50 08             	add    0x8(%eax),%edx
41af30:	89 50 0c             	mov    %edx,0xc(%eax)
41af33:	8b 40 0c             	mov    0xc(%eax),%eax
41af36:	c3                   	ret
41af37:	90                   	nop
41af38:	53                   	push   %ebx
41af39:	56                   	push   %esi
41af3a:	e8 a9 8d fe ff       	call   0x403ce8
41af3f:	8b da                	mov    %edx,%ebx
41af41:	8b f0                	mov    %eax,%esi
41af43:	8b c6                	mov    %esi,%eax
41af45:	e8 1a 00 00 00       	call   0x41af64
41af4a:	8b d3                	mov    %ebx,%edx
41af4c:	80 e2 fc             	and    $0xfc,%dl
41af4f:	8b c6                	mov    %esi,%eax
41af51:	e8 b6 89 fe ff       	call   0x40390c
41af56:	84 db                	test   %bl,%bl
41af58:	7e 07                	jle    0x41af61
41af5a:	8b c6                	mov    %esi,%eax
41af5c:	e8 2f 8d fe ff       	call   0x403c90
41af61:	5e                   	pop    %esi
41af62:	5b                   	pop    %ebx
41af63:	c3                   	ret
41af64:	53                   	push   %ebx
41af65:	8b d8                	mov    %eax,%ebx
41af67:	33 d2                	xor    %edx,%edx
41af69:	8b c3                	mov    %ebx,%eax
41af6b:	e8 44 00 00 00       	call   0x41afb4
41af70:	33 c0                	xor    %eax,%eax
41af72:	89 43 08             	mov    %eax,0x8(%ebx)
41af75:	33 c0                	xor    %eax,%eax
41af77:	89 43 0c             	mov    %eax,0xc(%ebx)
41af7a:	5b                   	pop    %ebx
41af7b:	c3                   	ret
41af7c:	53                   	push   %ebx
41af7d:	56                   	push   %esi
41af7e:	57                   	push   %edi
41af7f:	8b fa                	mov    %edx,%edi
41af81:	8b f0                	mov    %eax,%esi
41af83:	6a 00                	push   $0x0
41af85:	6a 00                	push   $0x0
41af87:	8b c7                	mov    %edi,%eax
41af89:	e8 c6 f8 ff ff       	call   0x41a854
41af8e:	8b c7                	mov    %edi,%eax
41af90:	8b 10                	mov    (%eax),%edx
41af92:	ff 12                	call   *(%edx)
41af94:	8b d8                	mov    %eax,%ebx
41af96:	8b d3                	mov    %ebx,%edx
41af98:	8b c6                	mov    %esi,%eax
41af9a:	8b 08                	mov    (%eax),%ecx
41af9c:	ff 51 04             	call   *0x4(%ecx)
41af9f:	85 db                	test   %ebx,%ebx
41afa1:	74 0c                	je     0x41afaf
41afa3:	8b 56 04             	mov    0x4(%esi),%edx
41afa6:	8b cb                	mov    %ebx,%ecx
41afa8:	8b c7                	mov    %edi,%eax
41afaa:	e8 b1 fa ff ff       	call   0x41aa60
41afaf:	5f                   	pop    %edi
41afb0:	5e                   	pop    %esi
41afb1:	5b                   	pop    %ebx
41afb2:	c3                   	ret
41afb3:	90                   	nop
41afb4:	53                   	push   %ebx
41afb5:	51                   	push   %ecx
41afb6:	89 14 24             	mov    %edx,(%esp)
41afb9:	8b d8                	mov    %eax,%ebx
41afbb:	8b d4                	mov    %esp,%edx
41afbd:	8b c3                	mov    %ebx,%eax
41afbf:	8b 08                	mov    (%eax),%ecx
41afc1:	ff 51 1c             	call   *0x1c(%ecx)
41afc4:	8b d0                	mov    %eax,%edx
41afc6:	8b 4b 08             	mov    0x8(%ebx),%ecx
41afc9:	8b c3                	mov    %ebx,%eax
41afcb:	e8 04 ff ff ff       	call   0x41aed4
41afd0:	8b 04 24             	mov    (%esp),%eax
41afd3:	89 43 10             	mov    %eax,0x10(%ebx)
41afd6:	5a                   	pop    %edx
41afd7:	5b                   	pop    %ebx
41afd8:	c3                   	ret
41afd9:	8d 40 00             	lea    0x0(%eax),%eax
41afdc:	53                   	push   %ebx
41afdd:	56                   	push   %esi
41afde:	57                   	push   %edi
41afdf:	8b f2                	mov    %edx,%esi
41afe1:	8b d8                	mov    %eax,%ebx
41afe3:	8b 7b 0c             	mov    0xc(%ebx),%edi
41afe6:	8b d6                	mov    %esi,%edx
41afe8:	8b c3                	mov    %ebx,%eax
41afea:	e8 c5 ff ff ff       	call   0x41afb4
41afef:	89 73 08             	mov    %esi,0x8(%ebx)
41aff2:	3b f7                	cmp    %edi,%esi
41aff4:	7d 0d                	jge    0x41b003
41aff6:	66 b9 02 00          	mov    $0x2,%cx
41affa:	33 d2                	xor    %edx,%edx
41affc:	8b c3                	mov    %ebx,%eax
41affe:	8b 18                	mov    (%eax),%ebx
41b000:	ff 53 14             	call   *0x14(%ebx)
41b003:	5f                   	pop    %edi
41b004:	5e                   	pop    %esi
41b005:	5b                   	pop    %ebx
41b006:	c3                   	ret
41b007:	90                   	nop
41b008:	53                   	push   %ebx
41b009:	51                   	push   %ecx
41b00a:	8b da                	mov    %edx,%ebx
41b00c:	83 3b 00             	cmpl   $0x0,(%ebx)
41b00f:	7e 17                	jle    0x41b028
41b011:	8b 13                	mov    (%ebx),%edx
41b013:	3b 50 08             	cmp    0x8(%eax),%edx
41b016:	74 10                	je     0x41b028
41b018:	8b 13                	mov    (%ebx),%edx
41b01a:	81 c2 ff 1f 00 00    	add    $0x1fff,%edx
41b020:	81 e2 00 e0 ff ff    	and    $0xffffe000,%edx
41b026:	89 13                	mov    %edx,(%ebx)
41b028:	8b 50 04             	mov    0x4(%eax),%edx
41b02b:	89 14 24             	mov    %edx,(%esp)
41b02e:	8b 0b                	mov    (%ebx),%ecx
41b030:	8b 50 10             	mov    0x10(%eax),%edx
41b033:	3b ca                	cmp    %edx,%ecx
41b035:	74 4a                	je     0x41b081
41b037:	83 3b 00             	cmpl   $0x0,(%ebx)
41b03a:	75 0f                	jne    0x41b04b
41b03c:	8b 40 04             	mov    0x4(%eax),%eax
41b03f:	e8 d4 7c fe ff       	call   0x402d18
41b044:	33 c0                	xor    %eax,%eax
41b046:	89 04 24             	mov    %eax,(%esp)
41b049:	eb 36                	jmp    0x41b081
41b04b:	85 d2                	test   %edx,%edx
41b04d:	75 0c                	jne    0x41b05b
41b04f:	8b 03                	mov    (%ebx),%eax
41b051:	e8 a6 7c fe ff       	call   0x402cfc
41b056:	89 04 24             	mov    %eax,(%esp)
41b059:	eb 09                	jmp    0x41b064
41b05b:	8b 13                	mov    (%ebx),%edx
41b05d:	8b c4                	mov    %esp,%eax
41b05f:	e8 cc 7c fe ff       	call   0x402d30
41b064:	83 3c 24 00          	cmpl   $0x0,(%esp)
41b068:	75 17                	jne    0x41b081
41b06a:	8b 0d d4 77 4a 00    	mov    0x4a77d4,%ecx
41b070:	b2 01                	mov    $0x1,%dl
41b072:	a1 48 57 41 00       	mov    0x415748,%eax
41b077:	e8 50 14 ff ff       	call   0x40c4cc
41b07c:	e8 0f 91 fe ff       	call   0x404190
41b081:	8b 04 24             	mov    (%esp),%eax
41b084:	5a                   	pop    %edx
41b085:	5b                   	pop    %ebx
41b086:	c3                   	ret
41b087:	90                   	nop
41b088:	53                   	push   %ebx
41b089:	56                   	push   %esi
41b08a:	57                   	push   %edi
41b08b:	55                   	push   %ebp
41b08c:	8b f1                	mov    %ecx,%esi
41b08e:	8b ea                	mov    %edx,%ebp
41b090:	8b d8                	mov    %eax,%ebx
41b092:	8b 43 0c             	mov    0xc(%ebx),%eax
41b095:	85 c0                	test   %eax,%eax
41b097:	7c 38                	jl     0x41b0d1
41b099:	85 f6                	test   %esi,%esi
41b09b:	7c 34                	jl     0x41b0d1
41b09d:	8b f8                	mov    %eax,%edi
41b09f:	03 fe                	add    %esi,%edi
41b0a1:	85 ff                	test   %edi,%edi
41b0a3:	7e 2c                	jle    0x41b0d1
41b0a5:	3b 7b 08             	cmp    0x8(%ebx),%edi
41b0a8:	7e 11                	jle    0x41b0bb
41b0aa:	3b 7b 10             	cmp    0x10(%ebx),%edi
41b0ad:	7e 09                	jle    0x41b0b8
41b0af:	8b d7                	mov    %edi,%edx
41b0b1:	8b c3                	mov    %ebx,%eax
41b0b3:	e8 fc fe ff ff       	call   0x41afb4
41b0b8:	89 7b 08             	mov    %edi,0x8(%ebx)
41b0bb:	8b 53 04             	mov    0x4(%ebx),%edx
41b0be:	03 53 0c             	add    0xc(%ebx),%edx
41b0c1:	8b c5                	mov    %ebp,%eax
41b0c3:	8b ce                	mov    %esi,%ecx
41b0c5:	e8 22 7e fe ff       	call   0x402eec
41b0ca:	89 7b 0c             	mov    %edi,0xc(%ebx)
41b0cd:	8b c6                	mov    %esi,%eax
41b0cf:	eb 02                	jmp    0x41b0d3
41b0d1:	33 c0                	xor    %eax,%eax
41b0d3:	5d                   	pop    %ebp
41b0d4:	5f                   	pop    %edi
41b0d5:	5e                   	pop    %esi
41b0d6:	5b                   	pop    %ebx
41b0d7:	c3                   	ret
41b0d8:	55                   	push   %ebp
41b0d9:	8b ec                	mov    %esp,%ebp
41b0db:	53                   	push   %ebx
41b0dc:	56                   	push   %esi
41b0dd:	57                   	push   %edi
41b0de:	84 d2                	test   %dl,%dl
41b0e0:	74 08                	je     0x41b0ea
41b0e2:	83 c4 f0             	add    $0xfffffff0,%esp
41b0e5:	e8 56 8b fe ff       	call   0x403c40
41b0ea:	8b f1                	mov    %ecx,%esi
41b0ec:	8b da                	mov    %edx,%ebx
41b0ee:	8b f8                	mov    %eax,%edi
41b0f0:	33 d2                	xor    %edx,%edx
41b0f2:	8b c7                	mov    %edi,%eax
41b0f4:	e8 f3 87 fe ff       	call   0x4038ec
41b0f9:	8b 45 08             	mov    0x8(%ebp),%eax
41b0fc:	50                   	push   %eax
41b0fd:	6a 00                	push   $0x0
41b0ff:	8b 45 0c             	mov    0xc(%ebp),%eax
41b102:	e8 05 9b fe ff       	call   0x404c0c
41b107:	8b c8                	mov    %eax,%ecx
41b109:	8b d6                	mov    %esi,%edx
41b10b:	8b c7                	mov    %edi,%eax
41b10d:	e8 be 00 00 00       	call   0x41b1d0
41b112:	8b c7                	mov    %edi,%eax
41b114:	84 db                	test   %bl,%bl
41b116:	74 0f                	je     0x41b127
41b118:	e8 7b 8b fe ff       	call   0x403c98
41b11d:	64 8f 05 00 00 00 00 	pop    %fs:0x0
41b124:	83 c4 0c             	add    $0xc,%esp
41b127:	8b c7                	mov    %edi,%eax
41b129:	5f                   	pop    %edi
41b12a:	5e                   	pop    %esi
41b12b:	5b                   	pop    %ebx
41b12c:	5d                   	pop    %ebp
41b12d:	c2 08 00             	ret    $0x8
41b130:	55                   	push   %ebp
41b131:	8b ec                	mov    %esp,%ebp
41b133:	83 c4 f0             	add    $0xfffffff0,%esp
41b136:	33 c0                	xor    %eax,%eax
41b138:	89 45 f0             	mov    %eax,-0x10(%ebp)
41b13b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41b13e:	33 c0                	xor    %eax,%eax
41b140:	55                   	push   %ebp
41b141:	68 c2 b1 41 00       	push   $0x41b1c2
41b146:	64 ff 30             	push   %fs:(%eax)
41b149:	64 89 20             	mov    %esp,%fs:(%eax)
41b14c:	8b 45 08             	mov    0x8(%ebp),%eax
41b14f:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
41b153:	74 10                	je     0x41b165
41b155:	8d 55 fc             	lea    -0x4(%ebp),%edx
41b158:	8b 45 08             	mov    0x8(%ebp),%eax
41b15b:	8b 40 fc             	mov    -0x4(%eax),%eax
41b15e:	e8 65 db fe ff       	call   0x408cc8
41b163:	eb 0e                	jmp    0x41b173
41b165:	8d 45 fc             	lea    -0x4(%ebp),%eax
41b168:	8b 55 08             	mov    0x8(%ebp),%edx
41b16b:	8b 52 fc             	mov    -0x4(%edx),%edx
41b16e:	e8 cd 97 fe ff       	call   0x404940
41b173:	8b 45 fc             	mov    -0x4(%ebp),%eax
41b176:	89 45 f4             	mov    %eax,-0xc(%ebp)
41b179:	c6 45 f8 0b          	movb   $0xb,-0x8(%ebp)
41b17d:	8d 45 f4             	lea    -0xc(%ebp),%eax
41b180:	50                   	push   %eax
41b181:	6a 00                	push   $0x0
41b183:	8d 55 f0             	lea    -0x10(%ebp),%edx
41b186:	a1 d0 75 4a 00       	mov    0x4a75d0,%eax
41b18b:	e8 e4 b4 fe ff       	call   0x406674
41b190:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41b193:	b2 01                	mov    $0x1,%dl
41b195:	a1 1c 5a 41 00       	mov    0x415a1c,%eax
41b19a:	e8 ad 12 ff ff       	call   0x40c44c
41b19f:	e8 ec 8f fe ff       	call   0x404190
41b1a4:	33 c0                	xor    %eax,%eax
41b1a6:	5a                   	pop    %edx
41b1a7:	59                   	pop    %ecx
41b1a8:	59                   	pop    %ecx
41b1a9:	64 89 10             	mov    %edx,%fs:(%eax)
41b1ac:	68 c9 b1 41 00       	push   $0x41b1c9
41b1b1:	8d 45 f0             	lea    -0x10(%ebp),%eax
41b1b4:	e8 8f 95 fe ff       	call   0x404748
41b1b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
41b1bc:	e8 87 95 fe ff       	call   0x404748