41ff47:	90                   	nop
41ff48:	c1 e8 0b             	shr    $0xb,%eax
41ff4b:	a8 01                	test   $0x1,%al
41ff4d:	74 15                	je     0x41ff64
41ff4f:	57                   	push   %edi
41ff50:	e8 eb d8 ff ff       	call   0x41d840
41ff55:	50                   	push   %eax
41ff56:	e8 eb 90 00 00       	call   0x429046
41ff5b:	59                   	pop    %ecx
41ff5c:	59                   	pop    %ecx
41ff5d:	85 c0                	test   %eax,%eax
41ff5f:	74 03                	je     0x41ff64
41ff61:	83 ce ff             	or     $0xffffffff,%esi
41ff64:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41ff67:	e8 be d1 fe ff       	call   0x40d12a
41ff6c:	5f                   	pop    %edi
41ff6d:	8b c6                	mov    %esi,%eax
41ff6f:	5e                   	pop    %esi
41ff70:	c9                   	leave
41ff71:	c3                   	ret
41ff72:	6a 01                	push   $0x1
41ff74:	e8 8a fe ff ff       	call   0x41fe03
41ff79:	59                   	pop    %ecx
41ff7a:	c3                   	ret
41ff7b:	8b ff                	mov    %edi,%edi
41ff7d:	55                   	push   %ebp
41ff7e:	8b ec                	mov    %esp,%ebp
41ff80:	83 ec 14             	sub    $0x14,%esp
41ff83:	8b 45 08             	mov    0x8(%ebp),%eax
41ff86:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ff89:	85 c0                	test   %eax,%eax
41ff8b:	75 09                	jne    0x41ff96
41ff8d:	50                   	push   %eax
41ff8e:	e8 70 fe ff ff       	call   0x41fe03
41ff93:	59                   	pop    %ecx
41ff94:	c9                   	leave
41ff95:	c3                   	ret
41ff96:	8b 40 0c             	mov    0xc(%eax),%eax
41ff99:	90                   	nop
41ff9a:	50                   	push   %eax
41ff9b:	e8 e1 fe ff ff       	call   0x41fe81
41ffa0:	59                   	pop    %ecx
41ffa1:	84 c0                	test   %al,%al
41ffa3:	75 04                	jne    0x41ffa9
41ffa5:	33 c0                	xor    %eax,%eax
41ffa7:	c9                   	leave
41ffa8:	c3                   	ret
41ffa9:	8d 45 f8             	lea    -0x8(%ebp),%eax
41ffac:	89 45 f0             	mov    %eax,-0x10(%ebp)
41ffaf:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41ffb2:	8b 45 f8             	mov    -0x8(%ebp),%eax
41ffb5:	89 45 f4             	mov    %eax,-0xc(%ebp)
41ffb8:	89 45 ec             	mov    %eax,-0x14(%ebp)
41ffbb:	8d 45 f4             	lea    -0xc(%ebp),%eax
41ffbe:	50                   	push   %eax
41ffbf:	8d 45 f0             	lea    -0x10(%ebp),%eax
41ffc2:	50                   	push   %eax
41ffc3:	8d 45 ec             	lea    -0x14(%ebp),%eax
41ffc6:	50                   	push   %eax
41ffc7:	e8 d7 fd ff ff       	call   0x41fda3
41ffcc:	c9                   	leave
41ffcd:	c3                   	ret
41ffce:	8b ff                	mov    %edi,%edi
41ffd0:	55                   	push   %ebp
41ffd1:	8b ec                	mov    %esp,%ebp
41ffd3:	8b 55 08             	mov    0x8(%ebp),%edx
41ffd6:	85 d2                	test   %edx,%edx
41ffd8:	75 15                	jne    0x41ffef
41ffda:	e8 92 c6 ff ff       	call   0x41c671
41ffdf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41ffe5:	e8 04 d4 fe ff       	call   0x40d3ee
41ffea:	83 c8 ff             	or     $0xffffffff,%eax
41ffed:	5d                   	pop    %ebp
41ffee:	c3                   	ret
41ffef:	83 6a 08 01          	subl   $0x1,0x8(%edx)
41fff3:	79 09                	jns    0x41fffe
41fff5:	52                   	push   %edx
41fff6:	e8 ee 17 00 00       	call   0x4217e9
41fffb:	59                   	pop    %ecx
41fffc:	5d                   	pop    %ebp
41fffd:	c3                   	ret
41fffe:	8b 02                	mov    (%edx),%eax
420000:	8a 08                	mov    (%eax),%cl
420002:	40                   	inc    %eax
420003:	89 02                	mov    %eax,(%edx)
420005:	0f b6 c1             	movzbl %cl,%eax
420008:	5d                   	pop    %ebp
420009:	c3                   	ret
42000a:	8b ff                	mov    %edi,%edi
42000c:	55                   	push   %ebp
42000d:	8b ec                	mov    %esp,%ebp
42000f:	5d                   	pop    %ebp
420010:	e9 b9 ff ff ff       	jmp    0x41ffce
420015:	6a 14                	push   $0x14
420017:	68 60 af 43 00       	push   $0x43af60
42001c:	e8 af a4 fe ff       	call   0x40a4d0
420021:	8b 75 08             	mov    0x8(%ebp),%esi
420024:	89 75 dc             	mov    %esi,-0x24(%ebp)
420027:	85 f6                	test   %esi,%esi
420029:	75 18                	jne    0x420043
42002b:	e8 41 c6 ff ff       	call   0x41c671
420030:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
420036:	e8 b3 d3 fe ff       	call   0x40d3ee
42003b:	83 c8 ff             	or     $0xffffffff,%eax
42003e:	e9 cd 00 00 00       	jmp    0x420110
420043:	33 ff                	xor    %edi,%edi
420045:	89 7d e0             	mov    %edi,-0x20(%ebp)
420048:	56                   	push   %esi
420049:	e8 83 d9 ff ff       	call   0x41d9d1
42004e:	59                   	pop    %ecx
42004f:	89 7d fc             	mov    %edi,-0x4(%ebp)
420052:	89 75 e4             	mov    %esi,-0x1c(%ebp)
420055:	8b 46 0c             	mov    0xc(%esi),%eax
420058:	90                   	nop
420059:	c1 e8 0c             	shr    $0xc,%eax
42005c:	a8 01                	test   $0x1,%al
42005e:	75 67                	jne    0x4200c7
420060:	56                   	push   %esi
420061:	e8 da d7 ff ff       	call   0x41d840
420066:	59                   	pop    %ecx
420067:	83 f8 ff             	cmp    $0xffffffff,%eax
42006a:	74 23                	je     0x42008f
42006c:	83 f8 fe             	cmp    $0xfffffffe,%eax
42006f:	74 1e                	je     0x42008f
420071:	8b d0                	mov    %eax,%edx
420073:	c1 fa 06             	sar    $0x6,%edx
420076:	8b d8                	mov    %eax,%ebx
420078:	83 e3 3f             	and    $0x3f,%ebx
42007b:	6b cb 38             	imul   $0x38,%ebx,%ecx
42007e:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
420085:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
420088:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
42008d:	eb 12                	jmp    0x4200a1
42008f:	b9 d0 d2 43 00       	mov    $0x43d2d0,%ecx
420094:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
420097:	8b d0                	mov    %eax,%edx
420099:	c1 fa 06             	sar    $0x6,%edx
42009c:	8b d8                	mov    %eax,%ebx
42009e:	83 e3 3f             	and    $0x3f,%ebx
4200a1:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4200a4:	80 7e 29 00          	cmpb   $0x0,0x29(%esi)
4200a8:	8b 75 08             	mov    0x8(%ebp),%esi
4200ab:	75 1d                	jne    0x4200ca
4200ad:	83 f8 ff             	cmp    $0xffffffff,%eax
4200b0:	74 0f                	je     0x4200c1
4200b2:	83 f8 fe             	cmp    $0xfffffffe,%eax
4200b5:	74 0a                	je     0x4200c1
4200b7:	6b cb 38             	imul   $0x38,%ebx,%ecx
4200ba:	03 0c 95 00 f8 43 00 	add    0x43f800(,%edx,4),%ecx
4200c1:	f6 41 2d 01          	testb  $0x1,0x2d(%ecx)
4200c5:	75 03                	jne    0x4200ca
4200c7:	33 ff                	xor    %edi,%edi
4200c9:	47                   	inc    %edi
4200ca:	85 ff                	test   %edi,%edi
4200cc:	75 28                	jne    0x4200f6
4200ce:	e8 9e c5 ff ff       	call   0x41c671
4200d3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4200d9:	e8 10 d3 fe ff       	call   0x40d3ee
4200de:	6a fe                	push   $0xfffffffe
4200e0:	8d 45 f0             	lea    -0x10(%ebp),%eax
4200e3:	50                   	push   %eax
4200e4:	68 c0 d0 43 00       	push   $0x43d0c0
4200e9:	e8 62 cb fe ff       	call   0x40cc50
4200ee:	83 c4 0c             	add    $0xc,%esp
4200f1:	e9 45 ff ff ff       	jmp    0x42003b
4200f6:	56                   	push   %esi
4200f7:	e8 d2 fe ff ff       	call   0x41ffce
4200fc:	59                   	pop    %ecx
4200fd:	8b f8                	mov    %eax,%edi
4200ff:	89 7d e0             	mov    %edi,-0x20(%ebp)
420102:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
420109:	e8 18 00 00 00       	call   0x420126
42010e:	8b c7                	mov    %edi,%eax
420110:	8b 4d f0             	mov    -0x10(%ebp),%ecx
420113:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
42011a:	59                   	pop    %ecx
42011b:	5f                   	pop    %edi
42011c:	5e                   	pop    %esi
42011d:	5b                   	pop    %ebx
42011e:	c9                   	leave
42011f:	c3                   	ret
420120:	8b 75 dc             	mov    -0x24(%ebp),%esi
420123:	8b 7d e0             	mov    -0x20(%ebp),%edi
420126:	56                   	push   %esi
420127:	e8 b9 d8 ff ff       	call   0x41d9e5
42012c:	59                   	pop    %ecx
42012d:	c3                   	ret
42012e:	6a 0c                	push   $0xc
420130:	68 80 af 43 00       	push   $0x43af80
420135:	e8 96 a3 fe ff       	call   0x40a4d0
42013a:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
42013e:	8b 45 08             	mov    0x8(%ebp),%eax
420141:	ff 30                	push   (%eax)
420143:	e8 89 d8 ff ff       	call   0x41d9d1
420148:	59                   	pop    %ecx
420149:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
42014d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
420150:	e8 34 00 00 00       	call   0x420189
420155:	8b f0                	mov    %eax,%esi
420157:	89 75 e4             	mov    %esi,-0x1c(%ebp)
42015a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
420161:	e8 17 00 00 00       	call   0x42017d
420166:	8b c6                	mov    %esi,%eax
420168:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42016b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
420172:	59                   	pop    %ecx
420173:	5f                   	pop    %edi
420174:	5e                   	pop    %esi
420175:	5b                   	pop    %ebx
420176:	c9                   	leave
420177:	c2 0c 00             	ret    $0xc
42017a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
42017d:	8b 45 10             	mov    0x10(%ebp),%eax
420180:	ff 30                	push   (%eax)
420182:	e8 5e d8 ff ff       	call   0x41d9e5
420187:	59                   	pop    %ecx
420188:	c3                   	ret
420189:	8b ff                	mov    %edi,%edi
42018b:	55                   	push   %ebp
42018c:	8b ec                	mov    %esp,%ebp
42018e:	51                   	push   %ecx
42018f:	53                   	push   %ebx
420190:	56                   	push   %esi
420191:	8b f1                	mov    %ecx,%esi
420193:	57                   	push   %edi
420194:	8b 06                	mov    (%esi),%eax
420196:	8b 7e 04             	mov    0x4(%esi),%edi
420199:	8b 18                	mov    (%eax),%ebx
42019b:	53                   	push   %ebx
42019c:	e8 40 da ff ff       	call   0x41dbe1
4201a1:	ff 76 04             	push   0x4(%esi)
4201a4:	88 45 fc             	mov    %al,-0x4(%ebp)
4201a7:	8b 06                	mov    (%esi),%eax
4201a9:	ff 30                	push   (%eax)
4201ab:	8b 46 10             	mov    0x10(%esi),%eax
4201ae:	ff 30                	push   (%eax)
4201b0:	8b 46 0c             	mov    0xc(%esi),%eax
4201b3:	ff 30                	push   (%eax)
4201b5:	8b 46 08             	mov    0x8(%esi),%eax
4201b8:	ff 30                	push   (%eax)
4201ba:	e8 8d 00 00 00       	call   0x42024c
4201bf:	57                   	push   %edi
4201c0:	53                   	push   %ebx
4201c1:	ff 75 fc             	push   -0x4(%ebp)
4201c4:	8b f0                	mov    %eax,%esi
4201c6:	e8 c1 da ff ff       	call   0x41dc8c
4201cb:	83 c4 24             	add    $0x24,%esp
4201ce:	8b c6                	mov    %esi,%eax
4201d0:	5f                   	pop    %edi
4201d1:	5e                   	pop    %esi
4201d2:	5b                   	pop    %ebx
4201d3:	c9                   	leave
4201d4:	c3                   	ret
4201d5:	8b ff                	mov    %edi,%edi
4201d7:	55                   	push   %ebp
4201d8:	8b ec                	mov    %esp,%ebp
4201da:	83 ec 20             	sub    $0x20,%esp
4201dd:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4201e1:	74 2b                	je     0x42020e
4201e3:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4201e7:	74 25                	je     0x42020e
4201e9:	8b 4d 14             	mov    0x14(%ebp),%ecx
4201ec:	85 c9                	test   %ecx,%ecx
4201ee:	75 22                	jne    0x420212
4201f0:	8b 45 18             	mov    0x18(%ebp),%eax
4201f3:	50                   	push   %eax
4201f4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4201f8:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
4201ff:	33 c0                	xor    %eax,%eax
420201:	50                   	push   %eax
420202:	50                   	push   %eax
420203:	50                   	push   %eax
420204:	50                   	push   %eax
420205:	50                   	push   %eax
420206:	e8 66 d1 fe ff       	call   0x40d371
42020b:	83 c4 18             	add    $0x18,%esp
42020e:	33 c0                	xor    %eax,%eax
420210:	c9                   	leave
420211:	c3                   	ret
420212:	8d 45 14             	lea    0x14(%ebp),%eax
420215:	89 4d f8             	mov    %ecx,-0x8(%ebp)
420218:	89 45 e0             	mov    %eax,-0x20(%ebp)
42021b:	8b 45 18             	mov    0x18(%ebp),%eax
42021e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
420221:	8d 45 08             	lea    0x8(%ebp),%eax
420224:	89 45 e8             	mov    %eax,-0x18(%ebp)
420227:	8d 45 0c             	lea    0xc(%ebp),%eax
42022a:	89 45 ec             	mov    %eax,-0x14(%ebp)
42022d:	8d 45 10             	lea    0x10(%ebp),%eax
420230:	89 45 f0             	mov    %eax,-0x10(%ebp)
420233:	8d 45 f8             	lea    -0x8(%ebp),%eax
420236:	50                   	push   %eax
420237:	8d 45 e0             	lea    -0x20(%ebp),%eax
42023a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
42023d:	50                   	push   %eax
42023e:	8d 45 f4             	lea    -0xc(%ebp),%eax
420241:	50                   	push   %eax
420242:	8d 4d ff             	lea    -0x1(%ebp),%ecx
420245:	e8 e4 fe ff ff       	call   0x42012e
42024a:	c9                   	leave
42024b:	c3                   	ret
42024c:	8b ff                	mov    %edi,%edi
42024e:	55                   	push   %ebp
42024f:	8b ec                	mov    %esp,%ebp
420251:	83 ec 0c             	sub    $0xc,%esp
420254:	53                   	push   %ebx
420255:	8b 5d 0c             	mov    0xc(%ebp),%ebx
420258:	56                   	push   %esi
420259:	57                   	push   %edi
42025a:	85 db                	test   %ebx,%ebx
42025c:	74 2c                	je     0x42028a
42025e:	8b 7d 10             	mov    0x10(%ebp),%edi
420261:	85 ff                	test   %edi,%edi
420263:	74 25                	je     0x42028a
420265:	8b 4d 14             	mov    0x14(%ebp),%ecx
420268:	85 c9                	test   %ecx,%ecx
42026a:	75 25                	jne    0x420291
42026c:	8b 45 18             	mov    0x18(%ebp),%eax
42026f:	50                   	push   %eax
420270:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
420274:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
42027b:	33 c0                	xor    %eax,%eax
42027d:	50                   	push   %eax
42027e:	50                   	push   %eax
42027f:	50                   	push   %eax
420280:	50                   	push   %eax
420281:	50                   	push   %eax
420282:	e8 ea d0 fe ff       	call   0x40d371
420287:	83 c4 18             	add    $0x18,%esp
42028a:	33 c0                	xor    %eax,%eax
42028c:	5f                   	pop    %edi
42028d:	5e                   	pop    %esi
42028e:	5b                   	pop    %ebx
42028f:	c9                   	leave
420290:	c3                   	ret
420291:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
420295:	74 d5                	je     0x42026c
420297:	83 c8 ff             	or     $0xffffffff,%eax
42029a:	33 d2                	xor    %edx,%edx
42029c:	f7 f3                	div    %ebx
42029e:	3b f8                	cmp    %eax,%edi
4202a0:	77 ca                	ja     0x42026c
4202a2:	8d 41 0c             	lea    0xc(%ecx),%eax
4202a5:	89 45 f4             	mov    %eax,-0xc(%ebp)
4202a8:	8b 00                	mov    (%eax),%eax
4202aa:	90                   	nop
4202ab:	a9 c0 04 00 00       	test   $0x4c0,%eax
4202b0:	74 05                	je     0x4202b7
4202b2:	8b 51 18             	mov    0x18(%ecx),%edx
4202b5:	eb 05                	jmp    0x4202bc