412ff0:	74 de                	je     0x412fd0
412ff2:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
412ff6:	76 d8                	jbe    0x412fd0
412ff8:	8b 75 1c             	mov    0x1c(%ebp),%esi
412ffb:	53                   	push   %ebx
412ffc:	33 db                	xor    %ebx,%ebx
412ffe:	83 fe 41             	cmp    $0x41,%esi
413001:	74 12                	je     0x413015
413003:	83 fe 45             	cmp    $0x45,%esi
413006:	74 0d                	je     0x413015
413008:	83 fe 46             	cmp    $0x46,%esi
41300b:	74 08                	je     0x413015
41300d:	88 5d fc             	mov    %bl,-0x4(%ebp)
413010:	83 fe 47             	cmp    $0x47,%esi
413013:	75 04                	jne    0x413019
413015:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
413019:	8b 4d 24             	mov    0x24(%ebp),%ecx
41301c:	8b c1                	mov    %ecx,%eax
41301e:	83 e0 08             	and    $0x8,%eax
413021:	0b c3                	or     %ebx,%eax
413023:	75 41                	jne    0x413066
413025:	ff 75 08             	push   0x8(%ebp)
413028:	e8 e0 f5 ff ff       	call   0x41260d
41302d:	59                   	pop    %ecx
41302e:	8b c8                	mov    %eax,%ecx
413030:	85 c9                	test   %ecx,%ecx
413032:	74 2f                	je     0x413063
413034:	8b 45 08             	mov    0x8(%ebp),%eax
413037:	39 58 04             	cmp    %ebx,0x4(%eax)
41303a:	7f 0c                	jg     0x413048
41303c:	7c 04                	jl     0x413042
41303e:	39 18                	cmp    %ebx,(%eax)
413040:	73 06                	jae    0x413048
413042:	c6 45 f8 01          	movb   $0x1,-0x8(%ebp)
413046:	eb 03                	jmp    0x41304b
413048:	88 5d f8             	mov    %bl,-0x8(%ebp)
41304b:	ff 75 fc             	push   -0x4(%ebp)
41304e:	ff 75 10             	push   0x10(%ebp)
413051:	57                   	push   %edi
413052:	ff 75 f8             	push   -0x8(%ebp)
413055:	51                   	push   %ecx
413056:	e8 09 fe ff ff       	call   0x412e64
41305b:	83 c4 14             	add    $0x14,%esp
41305e:	e9 b4 00 00 00       	jmp    0x413117
413063:	8b 4d 24             	mov    0x24(%ebp),%ecx
413066:	8b c1                	mov    %ecx,%eax
413068:	83 e0 10             	and    $0x10,%eax
41306b:	0b c3                	or     %ebx,%eax
41306d:	74 04                	je     0x413073
41306f:	6a 03                	push   $0x3
413071:	eb 02                	jmp    0x413075
413073:	6a 02                	push   $0x2
413075:	83 e1 20             	and    $0x20,%ecx
413078:	0b cb                	or     %ebx,%ecx
41307a:	58                   	pop    %eax
41307b:	74 03                	je     0x413080
41307d:	8b 5d 30             	mov    0x30(%ebp),%ebx
413080:	83 fe 61             	cmp    $0x61,%esi
413083:	7f 2b                	jg     0x4130b0
413085:	74 0a                	je     0x413091
413087:	83 ee 41             	sub    $0x41,%esi
41308a:	74 05                	je     0x413091
41308c:	83 ee 04             	sub    $0x4,%esi
41308f:	eb 22                	jmp    0x4130b3
413091:	53                   	push   %ebx
413092:	ff 75 2c             	push   0x2c(%ebp)
413095:	50                   	push   %eax
413096:	ff 75 fc             	push   -0x4(%ebp)
413099:	ff 75 20             	push   0x20(%ebp)
41309c:	ff 75 18             	push   0x18(%ebp)
41309f:	ff 75 14             	push   0x14(%ebp)
4130a2:	ff 75 10             	push   0x10(%ebp)
4130a5:	57                   	push   %edi
4130a6:	ff 75 08             	push   0x8(%ebp)
4130a9:	e8 64 f6 ff ff       	call   0x412712
4130ae:	eb 64                	jmp    0x413114
4130b0:	83 ee 65             	sub    $0x65,%esi
4130b3:	74 42                	je     0x4130f7
4130b5:	83 ee 01             	sub    $0x1,%esi
4130b8:	74 1f                	je     0x4130d9
4130ba:	ff 75 2c             	push   0x2c(%ebp)
4130bd:	53                   	push   %ebx
4130be:	50                   	push   %eax
4130bf:	ff 75 fc             	push   -0x4(%ebp)
4130c2:	ff 75 20             	push   0x20(%ebp)
4130c5:	ff 75 18             	push   0x18(%ebp)
4130c8:	ff 75 14             	push   0x14(%ebp)
4130cb:	ff 75 10             	push   0x10(%ebp)
4130ce:	57                   	push   %edi
4130cf:	ff 75 08             	push   0x8(%ebp)
4130d2:	e8 c3 fc ff ff       	call   0x412d9a
4130d7:	eb 3b                	jmp    0x413114
4130d9:	53                   	push   %ebx
4130da:	ff 75 2c             	push   0x2c(%ebp)
4130dd:	ff 75 20             	push   0x20(%ebp)
4130e0:	ff 75 18             	push   0x18(%ebp)
4130e3:	ff 75 14             	push   0x14(%ebp)
4130e6:	ff 75 10             	push   0x10(%ebp)
4130e9:	57                   	push   %edi
4130ea:	ff 75 08             	push   0x8(%ebp)
4130ed:	e8 1f fb ff ff       	call   0x412c11
4130f2:	83 c4 20             	add    $0x20,%esp
4130f5:	eb 20                	jmp    0x413117
4130f7:	53                   	push   %ebx
4130f8:	ff 75 2c             	push   0x2c(%ebp)
4130fb:	50                   	push   %eax
4130fc:	ff 75 fc             	push   -0x4(%ebp)
4130ff:	ff 75 20             	push   0x20(%ebp)
413102:	ff 75 18             	push   0x18(%ebp)
413105:	ff 75 14             	push   0x14(%ebp)
413108:	ff 75 10             	push   0x10(%ebp)
41310b:	57                   	push   %edi
41310c:	ff 75 08             	push   0x8(%ebp)
41310f:	e8 0d f9 ff ff       	call   0x412a21
413114:	83 c4 28             	add    $0x28,%esp
413117:	5b                   	pop    %ebx
413118:	5f                   	pop    %edi
413119:	5e                   	pop    %esi
41311a:	c9                   	leave
41311b:	c3                   	ret
41311c:	8b ff                	mov    %edi,%edi
41311e:	55                   	push   %ebp
41311f:	8b ec                	mov    %esp,%ebp
413121:	8b 45 08             	mov    0x8(%ebp),%eax
413124:	85 c0                	test   %eax,%eax
413126:	75 15                	jne    0x41313d
413128:	e8 a6 bb ff ff       	call   0x40ecd3
41312d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
413133:	e8 de ba ff ff       	call   0x40ec16
413138:	83 c8 ff             	or     $0xffffffff,%eax
41313b:	5d                   	pop    %ebp
41313c:	c3                   	ret
41313d:	8b 40 10             	mov    0x10(%eax),%eax
413140:	90                   	nop
413141:	5d                   	pop    %ebp
413142:	c3                   	ret
413143:	8b 0d 18 60 42 00    	mov    0x426018,%ecx
413149:	33 c0                	xor    %eax,%eax
41314b:	83 c9 01             	or     $0x1,%ecx
41314e:	39 0d 30 73 42 00    	cmp    %ecx,0x427330
413154:	0f 94 c0             	sete   %al
413157:	c3                   	ret
413158:	8b ff                	mov    %edi,%edi
41315a:	55                   	push   %ebp
41315b:	8b ec                	mov    %esp,%ebp
41315d:	51                   	push   %ecx
41315e:	51                   	push   %ecx
41315f:	66 8b 45 08          	mov    0x8(%ebp),%ax
413163:	b9 ff ff 00 00       	mov    $0xffff,%ecx
413168:	56                   	push   %esi
413169:	66 8b 75 0c          	mov    0xc(%ebp),%si
41316d:	0f b7 d6             	movzwl %si,%edx
413170:	66 3b c1             	cmp    %cx,%ax
413173:	74 47                	je     0x4131bc
413175:	b9 00 01 00 00       	mov    $0x100,%ecx
41317a:	66 3b c1             	cmp    %cx,%ax
41317d:	73 10                	jae    0x41318f
41317f:	0f b7 c8             	movzwl %ax,%ecx
413182:	a1 44 66 42 00       	mov    0x426644,%eax
413187:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
41318b:	23 c2                	and    %edx,%eax
41318d:	eb 2f                	jmp    0x4131be
41318f:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
413193:	33 c0                	xor    %eax,%eax
413195:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
413199:	8d 45 fc             	lea    -0x4(%ebp),%eax
41319c:	50                   	push   %eax
41319d:	6a 01                	push   $0x1
41319f:	8d 45 f8             	lea    -0x8(%ebp),%eax
4131a2:	50                   	push   %eax
4131a3:	6a 01                	push   $0x1
4131a5:	e8 72 36 00 00       	call   0x41681c
4131aa:	83 c4 10             	add    $0x10,%esp
4131ad:	85 c0                	test   %eax,%eax
4131af:	74 0b                	je     0x4131bc
4131b1:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
4131b5:	0f b7 ce             	movzwl %si,%ecx
4131b8:	23 c1                	and    %ecx,%eax
4131ba:	eb 02                	jmp    0x4131be
4131bc:	33 c0                	xor    %eax,%eax
4131be:	5e                   	pop    %esi
4131bf:	c9                   	leave
4131c0:	c3                   	ret
4131c1:	8b ff                	mov    %edi,%edi
4131c3:	55                   	push   %ebp
4131c4:	8b ec                	mov    %esp,%ebp
4131c6:	83 ec 20             	sub    $0x20,%esp
4131c9:	a1 18 60 42 00       	mov    0x426018,%eax
4131ce:	33 c5                	xor    %ebp,%eax
4131d0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4131d3:	ff 75 10             	push   0x10(%ebp)
4131d6:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4131d9:	e8 6c 98 ff ff       	call   0x40ca4a
4131de:	8b 55 08             	mov    0x8(%ebp),%edx
4131e1:	83 fa ff             	cmp    $0xffffffff,%edx
4131e4:	7c 13                	jl     0x4131f9
4131e6:	81 fa ff 00 00 00    	cmp    $0xff,%edx
4131ec:	7f 0b                	jg     0x4131f9
4131ee:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4131f1:	8b 00                	mov    (%eax),%eax
4131f3:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
4131f7:	eb 74                	jmp    0x41326d
4131f9:	53                   	push   %ebx
4131fa:	56                   	push   %esi
4131fb:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4131fe:	8b da                	mov    %edx,%ebx
413200:	c1 fb 08             	sar    $0x8,%ebx
413203:	0f b6 cb             	movzbl %bl,%ecx
413206:	57                   	push   %edi
413207:	8b 06                	mov    (%esi),%eax
413209:	33 ff                	xor    %edi,%edi
41320b:	66 39 3c 48          	cmp    %di,(%eax,%ecx,2)
41320f:	7d 10                	jge    0x413221
413211:	33 c9                	xor    %ecx,%ecx
413213:	88 5d f0             	mov    %bl,-0x10(%ebp)
413216:	6a 02                	push   $0x2
413218:	88 55 f1             	mov    %dl,-0xf(%ebp)
41321b:	88 4d f2             	mov    %cl,-0xe(%ebp)
41321e:	58                   	pop    %eax
41321f:	eb 0b                	jmp    0x41322c
413221:	33 c9                	xor    %ecx,%ecx
413223:	88 55 f0             	mov    %dl,-0x10(%ebp)
413226:	33 c0                	xor    %eax,%eax
413228:	88 4d f1             	mov    %cl,-0xf(%ebp)
41322b:	40                   	inc    %eax
41322c:	6a 01                	push   $0x1
41322e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
413231:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
413235:	8d 4d f4             	lea    -0xc(%ebp),%ecx
413238:	ff 76 08             	push   0x8(%esi)
41323b:	51                   	push   %ecx
41323c:	50                   	push   %eax
41323d:	8d 45 f0             	lea    -0x10(%ebp),%eax
413240:	50                   	push   %eax
413241:	8d 45 e4             	lea    -0x1c(%ebp),%eax
413244:	6a 01                	push   $0x1
413246:	50                   	push   %eax
413247:	e8 bd da ff ff       	call   0x410d09
41324c:	83 c4 1c             	add    $0x1c,%esp
41324f:	5f                   	pop    %edi
413250:	5e                   	pop    %esi
413251:	5b                   	pop    %ebx
413252:	85 c0                	test   %eax,%eax
413254:	75 13                	jne    0x413269
413256:	38 45 ec             	cmp    %al,-0x14(%ebp)
413259:	74 0a                	je     0x413265
41325b:	8b 45 e0             	mov    -0x20(%ebp),%eax
41325e:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
413265:	33 c0                	xor    %eax,%eax
413267:	eb 17                	jmp    0x413280
413269:	0f b7 45 f4          	movzwl -0xc(%ebp),%eax
41326d:	23 45 0c             	and    0xc(%ebp),%eax
413270:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
413274:	74 0a                	je     0x413280
413276:	8b 4d e0             	mov    -0x20(%ebp),%ecx
413279:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
413280:	8b 4d fc             	mov    -0x4(%ebp),%ecx
413283:	33 cd                	xor    %ebp,%ecx
413285:	e8 6b 59 ff ff       	call   0x408bf5
41328a:	c9                   	leave
41328b:	c3                   	ret
41328c:	cc                   	int3
41328d:	cc                   	int3
41328e:	cc                   	int3
41328f:	cc                   	int3
413290:	8b ff                	mov    %edi,%edi
413292:	55                   	push   %ebp
413293:	8b ec                	mov    %esp,%ebp
413295:	81 ec 18 01 00 00    	sub    $0x118,%esp
41329b:	a1 18 60 42 00       	mov    0x426018,%eax
4132a0:	33 c5                	xor    %ebp,%eax
4132a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4132a5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4132a8:	53                   	push   %ebx
4132a9:	8b 5d 14             	mov    0x14(%ebp),%ebx
4132ac:	56                   	push   %esi
4132ad:	8b 75 08             	mov    0x8(%ebp),%esi
4132b0:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
4132b6:	89 9d f8 fe ff ff    	mov    %ebx,-0x108(%ebp)
4132bc:	57                   	push   %edi
4132bd:	8b 7d 10             	mov    0x10(%ebp),%edi
4132c0:	89 bd 00 ff ff ff    	mov    %edi,-0x100(%ebp)
4132c6:	85 f6                	test   %esi,%esi
4132c8:	75 25                	jne    0x4132ef
4132ca:	85 c9                	test   %ecx,%ecx
4132cc:	74 21                	je     0x4132ef
4132ce:	e8 00 ba ff ff       	call   0x40ecd3
4132d3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4132d9:	e8 38 b9 ff ff       	call   0x40ec16
4132de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4132e1:	5f                   	pop    %edi
4132e2:	5e                   	pop    %esi
4132e3:	33 cd                	xor    %ebp,%ecx
4132e5:	5b                   	pop    %ebx
4132e6:	e8 0a 59 ff ff       	call   0x408bf5
4132eb:	8b e5                	mov    %ebp,%esp
4132ed:	5d                   	pop    %ebp
4132ee:	c3                   	ret
4132ef:	85 ff                	test   %edi,%edi
4132f1:	74 db                	je     0x4132ce
4132f3:	85 db                	test   %ebx,%ebx
4132f5:	74 d7                	je     0x4132ce
4132f7:	c7 85 e8 fe ff ff 00 	movl   $0x0,-0x118(%ebp)
4132fe:	00 00 00
413301:	83 f9 02             	cmp    $0x2,%ecx
413304:	72 d8                	jb     0x4132de
413306:	49                   	dec    %ecx
413307:	0f af cf             	imul   %edi,%ecx
41330a:	03 ce                	add    %esi,%ecx
41330c:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
413312:	8b c1                	mov    %ecx,%eax
413314:	33 d2                	xor    %edx,%edx
413316:	2b c6                	sub    %esi,%eax
413318:	f7 f7                	div    %edi
41331a:	40                   	inc    %eax
41331b:	83 f8 08             	cmp    $0x8,%eax
41331e:	0f 87 b6 00 00 00    	ja     0x4133da
413324:	3b ce                	cmp    %esi,%ecx
413326:	0f 86 27 04 00 00    	jbe    0x413753
41332c:	8d 14 37             	lea    (%edi,%esi,1),%edx
41332f:	89 95 f0 fe ff ff    	mov    %edx,-0x110(%ebp)
413335:	8b c6                	mov    %esi,%eax
413337:	8b f2                	mov    %edx,%esi
413339:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
41333f:	3b f1                	cmp    %ecx,%esi
413341:	77 2f                	ja     0x413372
413343:	50                   	push   %eax
413344:	56                   	push   %esi
413345:	8b cb                	mov    %ebx,%ecx
413347:	ff 15 50 c2 41 00    	call   *0x41c250
41334d:	ff d3                	call   *%ebx
41334f:	83 c4 08             	add    $0x8,%esp
413352:	85 c0                	test   %eax,%eax
413354:	7e 0a                	jle    0x413360
413356:	8b c6                	mov    %esi,%eax
413358:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
41335e:	eb 06                	jmp    0x413366
413360:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
413366:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
41336c:	03 f7                	add    %edi,%esi
41336e:	3b f1                	cmp    %ecx,%esi
413370:	76 d1                	jbe    0x413343
413372:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
413378:	8b d1                	mov    %ecx,%edx
41337a:	3b c1                	cmp    %ecx,%eax
41337c:	74 3b                	je     0x4133b9
41337e:	2b c1                	sub    %ecx,%eax
413380:	8b df                	mov    %edi,%ebx
413382:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
413388:	eb 06                	jmp    0x413390