4080b5:	33 fa                	xor    %edx,%edi
4080b7:	2b fa                	sub    %edx,%edi
4080b9:	83 e7 0f             	and    $0xf,%edi
4080bc:	33 fa                	xor    %edx,%edi
4080be:	2b fa                	sub    %edx,%edi
4080c0:	85 ff                	test   %edi,%edi
4080c2:	75 3c                	jne    0x408100
4080c4:	8b 4d 10             	mov    0x10(%ebp),%ecx
4080c7:	8b d1                	mov    %ecx,%edx
4080c9:	83 e2 7f             	and    $0x7f,%edx
4080cc:	89 55 f4             	mov    %edx,-0xc(%ebp)
4080cf:	3b ca                	cmp    %edx,%ecx
4080d1:	74 12                	je     0x4080e5
4080d3:	2b ca                	sub    %edx,%ecx
4080d5:	51                   	push   %ecx
4080d6:	50                   	push   %eax
4080d7:	e8 73 ff ff ff       	call   0x40804f
4080dc:	83 c4 08             	add    $0x8,%esp
4080df:	8b 45 08             	mov    0x8(%ebp),%eax
4080e2:	8b 55 f4             	mov    -0xc(%ebp),%edx
4080e5:	85 d2                	test   %edx,%edx
4080e7:	74 45                	je     0x40812e
4080e9:	03 45 10             	add    0x10(%ebp),%eax
4080ec:	2b c2                	sub    %edx,%eax
4080ee:	89 45 f8             	mov    %eax,-0x8(%ebp)
4080f1:	33 c0                	xor    %eax,%eax
4080f3:	8b 7d f8             	mov    -0x8(%ebp),%edi
4080f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4080f9:	f3 aa                	rep stos %al,%es:(%edi)
4080fb:	8b 45 08             	mov    0x8(%ebp),%eax
4080fe:	eb 2e                	jmp    0x40812e
408100:	f7 df                	neg    %edi
408102:	83 c7 10             	add    $0x10,%edi
408105:	89 7d f0             	mov    %edi,-0x10(%ebp)
408108:	33 c0                	xor    %eax,%eax
40810a:	8b 7d 08             	mov    0x8(%ebp),%edi
40810d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408110:	f3 aa                	rep stos %al,%es:(%edi)
408112:	8b 45 f0             	mov    -0x10(%ebp),%eax
408115:	8b 4d 08             	mov    0x8(%ebp),%ecx
408118:	8b 55 10             	mov    0x10(%ebp),%edx
40811b:	03 c8                	add    %eax,%ecx
40811d:	2b d0                	sub    %eax,%edx
40811f:	52                   	push   %edx
408120:	6a 00                	push   $0x0
408122:	51                   	push   %ecx
408123:	e8 7e ff ff ff       	call   0x4080a6
408128:	83 c4 0c             	add    $0xc,%esp
40812b:	8b 45 08             	mov    0x8(%ebp),%eax
40812e:	8b 7d fc             	mov    -0x4(%ebp),%edi
408131:	8b e5                	mov    %ebp,%esp
408133:	5d                   	pop    %ebp
408134:	c3                   	ret
408135:	8b ff                	mov    %edi,%edi
408137:	55                   	push   %ebp
408138:	8b ec                	mov    %esp,%ebp
40813a:	83 ec 0c             	sub    $0xc,%esp
40813d:	a1 04 b0 40 00       	mov    0x40b004,%eax
408142:	33 c5                	xor    %ebp,%eax
408144:	89 45 fc             	mov    %eax,-0x4(%ebp)
408147:	6a 06                	push   $0x6
408149:	8d 45 f4             	lea    -0xc(%ebp),%eax
40814c:	50                   	push   %eax
40814d:	68 04 10 00 00       	push   $0x1004
408152:	ff 75 08             	push   0x8(%ebp)
408155:	c6 45 fa 00          	movb   $0x0,-0x6(%ebp)
408159:	ff 15 28 11 40 00    	call   *0x401128
40815f:	85 c0                	test   %eax,%eax
408161:	75 05                	jne    0x408168
408163:	83 c8 ff             	or     $0xffffffff,%eax
408166:	eb 0a                	jmp    0x408172
408168:	8d 45 f4             	lea    -0xc(%ebp),%eax
40816b:	50                   	push   %eax
40816c:	e8 8e a2 ff ff       	call   0x4023ff
408171:	59                   	pop    %ecx
408172:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408175:	33 cd                	xor    %ebp,%ecx
408177:	e8 74 a2 ff ff       	call   0x4023f0
40817c:	c9                   	leave
40817d:	c3                   	ret
40817e:	8b ff                	mov    %edi,%edi
408180:	55                   	push   %ebp
408181:	8b ec                	mov    %esp,%ebp
408183:	83 ec 34             	sub    $0x34,%esp
408186:	a1 04 b0 40 00       	mov    0x40b004,%eax
40818b:	33 c5                	xor    %ebp,%eax
40818d:	89 45 fc             	mov    %eax,-0x4(%ebp)
408190:	8b 45 10             	mov    0x10(%ebp),%eax
408193:	8b 4d 18             	mov    0x18(%ebp),%ecx
408196:	89 45 d8             	mov    %eax,-0x28(%ebp)
408199:	8b 45 14             	mov    0x14(%ebp),%eax
40819c:	53                   	push   %ebx
40819d:	89 45 d0             	mov    %eax,-0x30(%ebp)
4081a0:	8b 00                	mov    (%eax),%eax
4081a2:	56                   	push   %esi
4081a3:	89 45 dc             	mov    %eax,-0x24(%ebp)
4081a6:	8b 45 08             	mov    0x8(%ebp),%eax
4081a9:	57                   	push   %edi
4081aa:	33 ff                	xor    %edi,%edi
4081ac:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4081af:	89 7d e0             	mov    %edi,-0x20(%ebp)
4081b2:	89 7d d4             	mov    %edi,-0x2c(%ebp)
4081b5:	3b 45 0c             	cmp    0xc(%ebp),%eax
4081b8:	0f 84 5f 01 00 00    	je     0x40831d
4081be:	8b 35 e4 10 40 00    	mov    0x4010e4,%esi
4081c4:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4081c7:	51                   	push   %ecx
4081c8:	50                   	push   %eax
4081c9:	ff d6                	call   *%esi
4081cb:	8b 1d 18 11 40 00    	mov    0x401118,%ebx
4081d1:	85 c0                	test   %eax,%eax
4081d3:	74 5e                	je     0x408233
4081d5:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
4081d9:	75 58                	jne    0x408233
4081db:	8d 45 e8             	lea    -0x18(%ebp),%eax
4081de:	50                   	push   %eax
4081df:	ff 75 0c             	push   0xc(%ebp)
4081e2:	ff d6                	call   *%esi
4081e4:	85 c0                	test   %eax,%eax
4081e6:	74 4b                	je     0x408233
4081e8:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
4081ec:	75 45                	jne    0x408233
4081ee:	8b 75 dc             	mov    -0x24(%ebp),%esi
4081f1:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
4081f8:	83 fe ff             	cmp    $0xffffffff,%esi
4081fb:	75 0c                	jne    0x408209
4081fd:	ff 75 d8             	push   -0x28(%ebp)
408200:	e8 5b d4 ff ff       	call   0x405660
408205:	8b f0                	mov    %eax,%esi
408207:	59                   	pop    %ecx
408208:	46                   	inc    %esi
408209:	3b f7                	cmp    %edi,%esi
40820b:	7e 5b                	jle    0x408268
40820d:	81 fe f0 ff ff 7f    	cmp    $0x7ffffff0,%esi
408213:	77 53                	ja     0x408268
408215:	8d 44 36 08          	lea    0x8(%esi,%esi,1),%eax
408219:	3d 00 04 00 00       	cmp    $0x400,%eax
40821e:	77 2f                	ja     0x40824f
408220:	e8 1b 01 00 00       	call   0x408340
408225:	8b c4                	mov    %esp,%eax
408227:	3b c7                	cmp    %edi,%eax
408229:	74 38                	je     0x408263
40822b:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
408231:	eb 2d                	jmp    0x408260
408233:	57                   	push   %edi
408234:	57                   	push   %edi
408235:	ff 75 dc             	push   -0x24(%ebp)
408238:	ff 75 d8             	push   -0x28(%ebp)
40823b:	6a 01                	push   $0x1
40823d:	ff 75 08             	push   0x8(%ebp)
408240:	ff d3                	call   *%ebx
408242:	8b f0                	mov    %eax,%esi
408244:	3b f7                	cmp    %edi,%esi
408246:	75 c3                	jne    0x40820b
408248:	33 c0                	xor    %eax,%eax
40824a:	e9 d1 00 00 00       	jmp    0x408320
40824f:	50                   	push   %eax
408250:	e8 25 f3 ff ff       	call   0x40757a
408255:	59                   	pop    %ecx
408256:	3b c7                	cmp    %edi,%eax
408258:	74 09                	je     0x408263
40825a:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
408260:	83 c0 08             	add    $0x8,%eax
408263:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408266:	eb 03                	jmp    0x40826b
408268:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40826b:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
40826e:	74 d8                	je     0x408248
408270:	8d 04 36             	lea    (%esi,%esi,1),%eax
408273:	50                   	push   %eax
408274:	57                   	push   %edi
408275:	ff 75 e4             	push   -0x1c(%ebp)
408278:	e8 a3 e6 ff ff       	call   0x406920
40827d:	83 c4 0c             	add    $0xc,%esp
408280:	56                   	push   %esi
408281:	ff 75 e4             	push   -0x1c(%ebp)
408284:	ff 75 dc             	push   -0x24(%ebp)
408287:	ff 75 d8             	push   -0x28(%ebp)
40828a:	6a 01                	push   $0x1
40828c:	ff 75 08             	push   0x8(%ebp)
40828f:	ff d3                	call   *%ebx
408291:	85 c0                	test   %eax,%eax
408293:	74 7f                	je     0x408314
408295:	8b 5d cc             	mov    -0x34(%ebp),%ebx
408298:	3b df                	cmp    %edi,%ebx
40829a:	74 1d                	je     0x4082b9
40829c:	57                   	push   %edi
40829d:	57                   	push   %edi
40829e:	ff 75 1c             	push   0x1c(%ebp)
4082a1:	53                   	push   %ebx
4082a2:	56                   	push   %esi
4082a3:	ff 75 e4             	push   -0x1c(%ebp)
4082a6:	57                   	push   %edi
4082a7:	ff 75 0c             	push   0xc(%ebp)
4082aa:	ff 15 14 11 40 00    	call   *0x401114
4082b0:	85 c0                	test   %eax,%eax
4082b2:	74 60                	je     0x408314
4082b4:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4082b7:	eb 5b                	jmp    0x408314
4082b9:	8b 1d 14 11 40 00    	mov    0x401114,%ebx
4082bf:	39 7d d4             	cmp    %edi,-0x2c(%ebp)
4082c2:	75 14                	jne    0x4082d8
4082c4:	57                   	push   %edi
4082c5:	57                   	push   %edi
4082c6:	57                   	push   %edi
4082c7:	57                   	push   %edi
4082c8:	56                   	push   %esi
4082c9:	ff 75 e4             	push   -0x1c(%ebp)
4082cc:	57                   	push   %edi
4082cd:	ff 75 0c             	push   0xc(%ebp)
4082d0:	ff d3                	call   *%ebx
4082d2:	8b f0                	mov    %eax,%esi
4082d4:	3b f7                	cmp    %edi,%esi
4082d6:	74 3c                	je     0x408314
4082d8:	56                   	push   %esi
4082d9:	6a 01                	push   $0x1
4082db:	e8 00 d6 ff ff       	call   0x4058e0
4082e0:	59                   	pop    %ecx
4082e1:	59                   	pop    %ecx
4082e2:	89 45 e0             	mov    %eax,-0x20(%ebp)
4082e5:	3b c7                	cmp    %edi,%eax
4082e7:	74 2b                	je     0x408314
4082e9:	57                   	push   %edi
4082ea:	57                   	push   %edi
4082eb:	56                   	push   %esi
4082ec:	50                   	push   %eax
4082ed:	56                   	push   %esi
4082ee:	ff 75 e4             	push   -0x1c(%ebp)
4082f1:	57                   	push   %edi
4082f2:	ff 75 0c             	push   0xc(%ebp)
4082f5:	ff d3                	call   *%ebx
4082f7:	3b c7                	cmp    %edi,%eax
4082f9:	75 0e                	jne    0x408309
4082fb:	ff 75 e0             	push   -0x20(%ebp)
4082fe:	e8 9b d4 ff ff       	call   0x40579e
408303:	59                   	pop    %ecx
408304:	89 7d e0             	mov    %edi,-0x20(%ebp)
408307:	eb 0b                	jmp    0x408314
408309:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
40830d:	74 05                	je     0x408314
40830f:	8b 4d d0             	mov    -0x30(%ebp),%ecx
408312:	89 01                	mov    %eax,(%ecx)
408314:	ff 75 e4             	push   -0x1c(%ebp)
408317:	e8 7e e6 ff ff       	call   0x40699a
40831c:	59                   	pop    %ecx
40831d:	8b 45 e0             	mov    -0x20(%ebp),%eax
408320:	8d 65 c0             	lea    -0x40(%ebp),%esp
408323:	5f                   	pop    %edi
408324:	5e                   	pop    %esi
408325:	5b                   	pop    %ebx
408326:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408329:	33 cd                	xor    %ebp,%ecx
40832b:	e8 c0 a0 ff ff       	call   0x4023f0
408330:	c9                   	leave
408331:	c3                   	ret
408332:	cc                   	int3
408333:	cc                   	int3
408334:	cc                   	int3
408335:	cc                   	int3
408336:	cc                   	int3
408337:	cc                   	int3
408338:	cc                   	int3
408339:	cc                   	int3
40833a:	cc                   	int3
40833b:	cc                   	int3
40833c:	cc                   	int3
40833d:	cc                   	int3
40833e:	cc                   	int3
40833f:	cc                   	int3
408340:	51                   	push   %ecx
408341:	8d 4c 24 08          	lea    0x8(%esp),%ecx
408345:	2b c8                	sub    %eax,%ecx
408347:	83 e1 0f             	and    $0xf,%ecx
40834a:	03 c1                	add    %ecx,%eax
40834c:	1b c9                	sbb    %ecx,%ecx
40834e:	0b c1                	or     %ecx,%eax
408350:	59                   	pop    %ecx
408351:	e9 1a 00 00 00       	jmp    0x408370
408356:	51                   	push   %ecx
408357:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40835b:	2b c8                	sub    %eax,%ecx
40835d:	83 e1 07             	and    $0x7,%ecx
408360:	03 c1                	add    %ecx,%eax
408362:	1b c9                	sbb    %ecx,%ecx
408364:	0b c1                	or     %ecx,%eax
408366:	59                   	pop    %ecx
408367:	e9 04 00 00 00       	jmp    0x408370
40836c:	cc                   	int3
40836d:	cc                   	int3
40836e:	cc                   	int3
40836f:	cc                   	int3
408370:	51                   	push   %ecx
408371:	8d 4c 24 04          	lea    0x4(%esp),%ecx
408375:	2b c8                	sub    %eax,%ecx
408377:	1b c0                	sbb    %eax,%eax
408379:	f7 d0                	not    %eax
40837b:	23 c8                	and    %eax,%ecx
40837d:	8b c4                	mov    %esp,%eax
40837f:	25 00 f0 ff ff       	and    $0xfffff000,%eax
408384:	3b c8                	cmp    %eax,%ecx
408386:	72 0a                	jb     0x408392
408388:	8b c1                	mov    %ecx,%eax
40838a:	59                   	pop    %ecx
40838b:	94                   	xchg   %eax,%esp
40838c:	8b 00                	mov    (%eax),%eax
40838e:	89 04 24             	mov    %eax,(%esp)
408391:	c3                   	ret
408392:	2d 00 10 00 00       	sub    $0x1000,%eax
408397:	85 00                	test   %eax,(%eax)
408399:	eb e9                	jmp    0x408384
40839b:	cc                   	int3
40839c:	cc                   	int3
40839d:	cc                   	int3
40839e:	cc                   	int3
40839f:	cc                   	int3
4083a0:	55                   	push   %ebp
4083a1:	8b ec                	mov    %esp,%ebp
4083a3:	57                   	push   %edi
4083a4:	56                   	push   %esi
4083a5:	53                   	push   %ebx
4083a6:	8b 4d 10             	mov    0x10(%ebp),%ecx
4083a9:	0b c9                	or     %ecx,%ecx
4083ab:	74 4d                	je     0x4083fa
4083ad:	8b 75 08             	mov    0x8(%ebp),%esi
4083b0:	8b 7d 0c             	mov    0xc(%ebp),%edi
4083b3:	b7 41                	mov    $0x41,%bh
4083b5:	b3 5a                	mov    $0x5a,%bl
4083b7:	b6 20                	mov    $0x20,%dh
4083b9:	8d 49 00             	lea    0x0(%ecx),%ecx
4083bc:	8a 26                	mov    (%esi),%ah
4083be:	0a e4                	or     %ah,%ah
4083c0:	8a 07                	mov    (%edi),%al
4083c2:	74 27                	je     0x4083eb
4083c4:	0a c0                	or     %al,%al
4083c6:	74 23                	je     0x4083eb
4083c8:	83 c6 01             	add    $0x1,%esi
4083cb:	83 c7 01             	add    $0x1,%edi
4083ce:	3a e7                	cmp    %bh,%ah
4083d0:	72 06                	jb     0x4083d8
4083d2:	3a e3                	cmp    %bl,%ah
4083d4:	77 02                	ja     0x4083d8
4083d6:	02 e6                	add    %dh,%ah
4083d8:	3a c7                	cmp    %bh,%al
4083da:	72 06                	jb     0x4083e2
4083dc:	3a c3                	cmp    %bl,%al
4083de:	77 02                	ja     0x4083e2
4083e0:	02 c6                	add    %dh,%al
4083e2:	3a e0                	cmp    %al,%ah
4083e4:	75 0b                	jne    0x4083f1
4083e6:	83 e9 01             	sub    $0x1,%ecx