40fe9f:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fea2:	50                   	push   %eax
40fea3:	ff 36                	push   (%esi)
40fea5:	e8 28 5d 00 00       	call   0x415bd2
40feaa:	83 c4 0c             	add    $0xc,%esp
40fead:	85 c0                	test   %eax,%eax
40feaf:	75 19                	jne    0x40feca
40feb1:	ff 36                	push   (%esi)
40feb3:	83 4e 08 02          	orl    $0x2,0x8(%esi)
40feb7:	89 7e 1c             	mov    %edi,0x1c(%esi)
40feba:	e8 a1 60 ff ff       	call   0x405f60
40febf:	59                   	pop    %ecx
40fec0:	3b 46 0c             	cmp    0xc(%esi),%eax
40fec3:	75 21                	jne    0x40fee6
40fec5:	89 7e 18             	mov    %edi,0x18(%esi)
40fec8:	eb 1c                	jmp    0x40fee6
40feca:	8b 56 08             	mov    0x8(%esi),%edx
40fecd:	f6 c2 01             	test   $0x1,%dl
40fed0:	75 14                	jne    0x40fee6
40fed2:	57                   	push   %edi
40fed3:	e8 89 fd ff ff       	call   0x40fc61
40fed8:	59                   	pop    %ecx
40fed9:	85 c0                	test   %eax,%eax
40fedb:	74 09                	je     0x40fee6
40fedd:	83 ca 01             	or     $0x1,%edx
40fee0:	89 56 08             	mov    %edx,0x8(%esi)
40fee3:	89 7e 1c             	mov    %edi,0x1c(%esi)
40fee6:	8b 4e 08             	mov    0x8(%esi),%ecx
40fee9:	b8 00 03 00 00       	mov    $0x300,%eax
40feee:	23 c8                	and    %eax,%ecx
40fef0:	3b c8                	cmp    %eax,%ecx
40fef2:	0f 84 9e 00 00 00    	je     0x40ff96
40fef8:	6a 78                	push   $0x78
40fefa:	8d 45 84             	lea    -0x7c(%ebp),%eax
40fefd:	50                   	push   %eax
40fefe:	8b 46 10             	mov    0x10(%esi),%eax
40ff01:	f7 d8                	neg    %eax
40ff03:	1b c0                	sbb    %eax,%eax
40ff05:	25 02 f0 ff ff       	and    $0xfffff002,%eax
40ff0a:	05 01 10 00 00       	add    $0x1001,%eax
40ff0f:	50                   	push   %eax
40ff10:	57                   	push   %edi
40ff11:	ff d3                	call   *%ebx
40ff13:	85 c0                	test   %eax,%eax
40ff15:	0f 84 18 ff ff ff    	je     0x40fe33
40ff1b:	8d 45 84             	lea    -0x7c(%ebp),%eax
40ff1e:	50                   	push   %eax
40ff1f:	ff 36                	push   (%esi)
40ff21:	e8 52 5b 00 00       	call   0x415a78
40ff26:	59                   	pop    %ecx
40ff27:	33 db                	xor    %ebx,%ebx
40ff29:	59                   	pop    %ecx
40ff2a:	85 c0                	test   %eax,%eax
40ff2c:	75 2f                	jne    0x40ff5d
40ff2e:	81 4e 08 00 02 00 00 	orl    $0x200,0x8(%esi)
40ff35:	8b 46 08             	mov    0x8(%esi),%eax
40ff38:	39 5e 10             	cmp    %ebx,0x10(%esi)
40ff3b:	74 0a                	je     0x40ff47
40ff3d:	0d 00 01 00 00       	or     $0x100,%eax
40ff42:	89 46 08             	mov    %eax,0x8(%esi)
40ff45:	eb 47                	jmp    0x40ff8e
40ff47:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40ff4a:	74 3b                	je     0x40ff87
40ff4c:	ff 36                	push   (%esi)
40ff4e:	e8 0d 60 ff ff       	call   0x405f60
40ff53:	59                   	pop    %ecx
40ff54:	3b 46 0c             	cmp    0xc(%esi),%eax
40ff57:	75 2e                	jne    0x40ff87
40ff59:	6a 01                	push   $0x1
40ff5b:	eb 1c                	jmp    0x40ff79
40ff5d:	39 5e 10             	cmp    %ebx,0x10(%esi)
40ff60:	75 34                	jne    0x40ff96
40ff62:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40ff65:	74 2f                	je     0x40ff96
40ff67:	8d 45 84             	lea    -0x7c(%ebp),%eax
40ff6a:	50                   	push   %eax
40ff6b:	ff 36                	push   (%esi)
40ff6d:	e8 06 5b 00 00       	call   0x415a78
40ff72:	59                   	pop    %ecx
40ff73:	59                   	pop    %ecx
40ff74:	85 c0                	test   %eax,%eax
40ff76:	75 1e                	jne    0x40ff96
40ff78:	53                   	push   %ebx
40ff79:	57                   	push   %edi
40ff7a:	8b ce                	mov    %esi,%ecx
40ff7c:	e8 eb fd ff ff       	call   0x40fd6c
40ff81:	59                   	pop    %ecx
40ff82:	59                   	pop    %ecx
40ff83:	85 c0                	test   %eax,%eax
40ff85:	74 0f                	je     0x40ff96
40ff87:	81 4e 08 00 01 00 00 	orl    $0x100,0x8(%esi)
40ff8e:	39 5e 18             	cmp    %ebx,0x18(%esi)
40ff91:	75 03                	jne    0x40ff96
40ff93:	89 7e 18             	mov    %edi,0x18(%esi)
40ff96:	8b 46 08             	mov    0x8(%esi),%eax
40ff99:	c1 e8 02             	shr    $0x2,%eax
40ff9c:	f7 d0                	not    %eax
40ff9e:	83 e0 01             	and    $0x1,%eax
40ffa1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ffa4:	5f                   	pop    %edi
40ffa5:	5e                   	pop    %esi
40ffa6:	33 cd                	xor    %ebp,%ecx
40ffa8:	5b                   	pop    %ebx
40ffa9:	e8 78 66 ff ff       	call   0x406626
40ffae:	c9                   	leave
40ffaf:	c2 04 00             	ret    $0x4
40ffb2:	8b ff                	mov    %edi,%edi
40ffb4:	55                   	push   %ebp
40ffb5:	8b ec                	mov    %esp,%ebp
40ffb7:	83 ec 7c             	sub    $0x7c,%esp
40ffba:	a1 68 b2 42 00       	mov    0x42b268,%eax
40ffbf:	33 c5                	xor    %ebp,%eax
40ffc1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ffc4:	56                   	push   %esi
40ffc5:	57                   	push   %edi
40ffc6:	8b 7d 08             	mov    0x8(%ebp),%edi
40ffc9:	e8 73 aa ff ff       	call   0x40aa41
40ffce:	8b f0                	mov    %eax,%esi
40ffd0:	8b d7                	mov    %edi,%edx
40ffd2:	81 c6 9c 00 00 00    	add    $0x9c,%esi
40ffd8:	e8 a8 fc ff ff       	call   0x40fc85
40ffdd:	8b f8                	mov    %eax,%edi
40ffdf:	6a 78                	push   $0x78
40ffe1:	8d 45 84             	lea    -0x7c(%ebp),%eax
40ffe4:	50                   	push   %eax
40ffe5:	8b 46 10             	mov    0x10(%esi),%eax
40ffe8:	f7 d8                	neg    %eax
40ffea:	1b c0                	sbb    %eax,%eax
40ffec:	25 02 f0 ff ff       	and    $0xfffff002,%eax
40fff1:	05 01 10 00 00       	add    $0x1001,%eax
40fff6:	50                   	push   %eax
40fff7:	57                   	push   %edi
40fff8:	ff 15 50 a1 41 00    	call   *0x41a150
40fffe:	85 c0                	test   %eax,%eax
410000:	75 06                	jne    0x410008
410002:	21 46 08             	and    %eax,0x8(%esi)
410005:	40                   	inc    %eax
410006:	eb 5b                	jmp    0x410063
410008:	8d 45 84             	lea    -0x7c(%ebp),%eax
41000b:	50                   	push   %eax
41000c:	ff 36                	push   (%esi)
41000e:	e8 65 5a 00 00       	call   0x415a78
410013:	59                   	pop    %ecx
410014:	59                   	pop    %ecx
410015:	85 c0                	test   %eax,%eax
410017:	75 09                	jne    0x410022
410019:	39 46 10             	cmp    %eax,0x10(%esi)
41001c:	75 30                	jne    0x41004e
41001e:	6a 01                	push   $0x1
410020:	eb 1e                	jmp    0x410040
410022:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
410026:	75 30                	jne    0x410058
410028:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
41002c:	74 2a                	je     0x410058
41002e:	8d 45 84             	lea    -0x7c(%ebp),%eax
410031:	50                   	push   %eax
410032:	ff 36                	push   (%esi)
410034:	e8 3f 5a 00 00       	call   0x415a78
410039:	59                   	pop    %ecx
41003a:	59                   	pop    %ecx
41003b:	85 c0                	test   %eax,%eax
41003d:	75 19                	jne    0x410058
41003f:	50                   	push   %eax
410040:	57                   	push   %edi
410041:	8b ce                	mov    %esi,%ecx
410043:	e8 24 fd ff ff       	call   0x40fd6c
410048:	59                   	pop    %ecx
410049:	59                   	pop    %ecx
41004a:	85 c0                	test   %eax,%eax
41004c:	74 0a                	je     0x410058
41004e:	83 4e 08 04          	orl    $0x4,0x8(%esi)
410052:	89 7e 18             	mov    %edi,0x18(%esi)
410055:	89 7e 1c             	mov    %edi,0x1c(%esi)
410058:	8b 46 08             	mov    0x8(%esi),%eax
41005b:	c1 e8 02             	shr    $0x2,%eax
41005e:	f7 d0                	not    %eax
410060:	83 e0 01             	and    $0x1,%eax
410063:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410066:	5f                   	pop    %edi
410067:	33 cd                	xor    %ebp,%ecx
410069:	5e                   	pop    %esi
41006a:	e8 b7 65 ff ff       	call   0x406626
41006f:	c9                   	leave
410070:	c2 04 00             	ret    $0x4
410073:	ff 36                	push   (%esi)
410075:	e8 e6 5e ff ff       	call   0x405f60
41007a:	ff 76 04             	push   0x4(%esi)
41007d:	83 e8 03             	sub    $0x3,%eax
410080:	f7 d8                	neg    %eax
410082:	1b c0                	sbb    %eax,%eax
410084:	40                   	inc    %eax
410085:	89 46 10             	mov    %eax,0x10(%esi)
410088:	e8 d3 5e ff ff       	call   0x405f60
41008d:	83 e8 03             	sub    $0x3,%eax
410090:	f7 d8                	neg    %eax
410092:	1b c0                	sbb    %eax,%eax
410094:	83 66 18 00          	andl   $0x0,0x18(%esi)
410098:	40                   	inc    %eax
410099:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
41009d:	59                   	pop    %ecx
41009e:	59                   	pop    %ecx
41009f:	89 46 14             	mov    %eax,0x14(%esi)
4100a2:	74 05                	je     0x4100a9
4100a4:	6a 02                	push   $0x2
4100a6:	58                   	pop    %eax
4100a7:	eb 07                	jmp    0x4100b0
4100a9:	8b 16                	mov    (%esi),%edx
4100ab:	e8 09 fc ff ff       	call   0x40fcb9
4100b0:	6a 01                	push   $0x1
4100b2:	68 e0 fd 40 00       	push   $0x40fde0
4100b7:	89 46 0c             	mov    %eax,0xc(%esi)
4100ba:	ff 15 54 a1 41 00    	call   *0x41a154
4100c0:	8b 46 08             	mov    0x8(%esi),%eax
4100c3:	a9 00 01 00 00       	test   $0x100,%eax
4100c8:	74 0b                	je     0x4100d5
4100ca:	a9 00 02 00 00       	test   $0x200,%eax
4100cf:	74 04                	je     0x4100d5
4100d1:	a8 07                	test   $0x7,%al
4100d3:	75 04                	jne    0x4100d9
4100d5:	83 66 08 00          	andl   $0x0,0x8(%esi)
4100d9:	c3                   	ret
4100da:	ff 36                	push   (%esi)
4100dc:	e8 7f 5e ff ff       	call   0x405f60
4100e1:	83 e8 03             	sub    $0x3,%eax
4100e4:	f7 d8                	neg    %eax
4100e6:	1b c0                	sbb    %eax,%eax
4100e8:	40                   	inc    %eax
4100e9:	59                   	pop    %ecx
4100ea:	89 46 10             	mov    %eax,0x10(%esi)
4100ed:	74 05                	je     0x4100f4
4100ef:	6a 02                	push   $0x2
4100f1:	58                   	pop    %eax
4100f2:	eb 07                	jmp    0x4100fb
4100f4:	8b 16                	mov    (%esi),%edx
4100f6:	e8 be fb ff ff       	call   0x40fcb9
4100fb:	6a 01                	push   $0x1
4100fd:	68 b2 ff 40 00       	push   $0x40ffb2
410102:	89 46 0c             	mov    %eax,0xc(%esi)
410105:	ff 15 54 a1 41 00    	call   *0x41a154
41010b:	f6 46 08 04          	testb  $0x4,0x8(%esi)
41010f:	75 04                	jne    0x410115
410111:	83 66 08 00          	andl   $0x0,0x8(%esi)
410115:	c3                   	ret
410116:	8b ff                	mov    %edi,%edi
410118:	55                   	push   %ebp
410119:	8b ec                	mov    %esp,%ebp
41011b:	53                   	push   %ebx
41011c:	56                   	push   %esi
41011d:	57                   	push   %edi
41011e:	e8 1e a9 ff ff       	call   0x40aa41
410123:	8b 5d 08             	mov    0x8(%ebp),%ebx
410126:	8b f0                	mov    %eax,%esi
410128:	81 c6 9c 00 00 00    	add    $0x9c,%esi
41012e:	85 db                	test   %ebx,%ebx
410130:	75 0c                	jne    0x41013e
410132:	81 4e 08 04 01 00 00 	orl    $0x104,0x8(%esi)
410139:	e9 bd 00 00 00       	jmp    0x4101fb
41013e:	8d 43 40             	lea    0x40(%ebx),%eax
410141:	8d 7e 04             	lea    0x4(%esi),%edi
410144:	89 1e                	mov    %ebx,(%esi)
410146:	89 07                	mov    %eax,(%edi)
410148:	85 c0                	test   %eax,%eax
41014a:	74 15                	je     0x410161
41014c:	80 38 00             	cmpb   $0x0,(%eax)
41014f:	74 10                	je     0x410161
410151:	57                   	push   %edi
410152:	6a 16                	push   $0x16
410154:	68 40 d4 41 00       	push   $0x41d440
410159:	e8 fd f9 ff ff       	call   0x40fb5b
41015e:	83 c4 0c             	add    $0xc,%esp
410161:	8b 06                	mov    (%esi),%eax
410163:	83 66 08 00          	andl   $0x0,0x8(%esi)
410167:	85 c0                	test   %eax,%eax
410169:	74 53                	je     0x4101be
41016b:	80 38 00             	cmpb   $0x0,(%eax)
41016e:	74 4e                	je     0x4101be
410170:	8b 07                	mov    (%edi),%eax
410172:	85 c0                	test   %eax,%eax
410174:	74 0c                	je     0x410182
410176:	80 38 00             	cmpb   $0x0,(%eax)
410179:	74 07                	je     0x410182
41017b:	e8 f3 fe ff ff       	call   0x410073
410180:	eb 05                	jmp    0x410187
410182:	e8 53 ff ff ff       	call   0x4100da
410187:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
41018b:	0f 85 80 00 00 00    	jne    0x410211
410191:	56                   	push   %esi
410192:	6a 40                	push   $0x40
410194:	68 38 d2 41 00       	push   $0x41d238
410199:	e8 bd f9 ff ff       	call   0x40fb5b
41019e:	83 c4 0c             	add    $0xc,%esp
4101a1:	85 c0                	test   %eax,%eax
4101a3:	74 62                	je     0x410207
4101a5:	8b 3f                	mov    (%edi),%edi
4101a7:	85 ff                	test   %edi,%edi
4101a9:	74 0c                	je     0x4101b7
4101ab:	80 3f 00             	cmpb   $0x0,(%edi)
4101ae:	74 07                	je     0x4101b7
4101b0:	e8 be fe ff ff       	call   0x410073
4101b5:	eb 50                	jmp    0x410207
4101b7:	e8 1e ff ff ff       	call   0x4100da
4101bc:	eb 49                	jmp    0x410207
4101be:	8b 3f                	mov    (%edi),%edi
4101c0:	85 ff                	test   %edi,%edi
4101c2:	74 30                	je     0x4101f4
4101c4:	80 3f 00             	cmpb   $0x0,(%edi)
4101c7:	74 2b                	je     0x4101f4
4101c9:	57                   	push   %edi
4101ca:	e8 91 5d ff ff       	call   0x405f60
4101cf:	83 e8 03             	sub    $0x3,%eax
4101d2:	f7 d8                	neg    %eax
4101d4:	59                   	pop    %ecx
4101d5:	1b c0                	sbb    %eax,%eax
4101d7:	6a 01                	push   $0x1
4101d9:	40                   	inc    %eax
4101da:	68 d4 fc 40 00       	push   $0x40fcd4
4101df:	89 46 14             	mov    %eax,0x14(%esi)
4101e2:	ff 15 54 a1 41 00    	call   *0x41a154
4101e8:	f6 46 08 04          	testb  $0x4,0x8(%esi)
4101ec:	75 19                	jne    0x410207
4101ee:	83 66 08 00          	andl   $0x0,0x8(%esi)
4101f2:	eb 13                	jmp    0x410207
4101f4:	c7 46 08 04 01 00 00 	movl   $0x104,0x8(%esi)
4101fb:	ff 15 4c a1 41 00    	call   *0x41a14c
410201:	89 46 18             	mov    %eax,0x18(%esi)
410204:	89 46 1c             	mov    %eax,0x1c(%esi)
410207:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
41020b:	0f 84 ef 00 00 00    	je     0x410300
410211:	8b cb                	mov    %ebx,%ecx
410213:	83 eb 80             	sub    $0xffffff80,%ebx
410216:	f7 d9                	neg    %ecx
410218:	1b c9                	sbb    %ecx,%ecx
41021a:	23 cb                	and    %ebx,%ecx
41021c:	8b fe                	mov    %esi,%edi
41021e:	e8 9a f9 ff ff       	call   0x40fbbd
410223:	8b f8                	mov    %eax,%edi
410225:	89 7d 08             	mov    %edi,0x8(%ebp)
410228:	85 ff                	test   %edi,%edi
41022a:	0f 84 d0 00 00 00    	je     0x410300
410230:	81 ff e8 fd 00 00    	cmp    $0xfde8,%edi
410236:	0f 84 c4 00 00 00    	je     0x410300
41023c:	81 ff e9 fd 00 00    	cmp    $0xfde9,%edi
410242:	0f 84 b8 00 00 00    	je     0x410300
410248:	0f b7 c7             	movzwl %di,%eax
41024b:	50                   	push   %eax
41024c:	ff 15 48 a1 41 00    	call   *0x41a148
410252:	85 c0                	test   %eax,%eax
410254:	0f 84 a6 00 00 00    	je     0x410300
41025a:	6a 01                	push   $0x1
41025c:	ff 76 18             	push   0x18(%esi)