4101dd:	56                   	push   %esi
4101de:	8d 41 01             	lea    0x1(%ecx),%eax
4101e1:	6a 04                	push   $0x4
4101e3:	50                   	push   %eax
4101e4:	e8 c3 96 ff ff       	call   0x4098ac
4101e9:	8b f0                	mov    %eax,%esi
4101eb:	59                   	pop    %ecx
4101ec:	59                   	pop    %ecx
4101ed:	85 f6                	test   %esi,%esi
4101ef:	74 65                	je     0x410256
4101f1:	83 3f 00             	cmpl   $0x0,(%edi)
4101f4:	74 50                	je     0x410246
4101f6:	53                   	push   %ebx
4101f7:	8b de                	mov    %esi,%ebx
4101f9:	2b df                	sub    %edi,%ebx
4101fb:	8b 0f                	mov    (%edi),%ecx
4101fd:	8d 51 01             	lea    0x1(%ecx),%edx
410200:	8a 01                	mov    (%ecx),%al
410202:	41                   	inc    %ecx
410203:	84 c0                	test   %al,%al
410205:	75 f9                	jne    0x410200
410207:	2b ca                	sub    %edx,%ecx
410209:	6a 01                	push   $0x1
41020b:	8d 41 01             	lea    0x1(%ecx),%eax
41020e:	50                   	push   %eax
41020f:	89 45 fc             	mov    %eax,-0x4(%ebp)
410212:	e8 95 96 ff ff       	call   0x4098ac
410217:	6a 00                	push   $0x0
410219:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
41021c:	e8 03 96 ff ff       	call   0x409824
410221:	83 c4 0c             	add    $0xc,%esp
410224:	83 3c 3b 00          	cmpl   $0x0,(%ebx,%edi,1)
410228:	74 2c                	je     0x410256
41022a:	ff 37                	push   (%edi)
41022c:	ff 75 fc             	push   -0x4(%ebp)
41022f:	ff 34 3b             	push   (%ebx,%edi,1)
410232:	e8 50 95 ff ff       	call   0x409787
410237:	83 c4 0c             	add    $0xc,%esp
41023a:	85 c0                	test   %eax,%eax
41023c:	75 1d                	jne    0x41025b
41023e:	83 c7 04             	add    $0x4,%edi
410241:	39 07                	cmp    %eax,(%edi)
410243:	75 b6                	jne    0x4101fb
410245:	5b                   	pop    %ebx
410246:	6a 00                	push   $0x0
410248:	e8 d7 95 ff ff       	call   0x409824
41024d:	59                   	pop    %ecx
41024e:	8b c6                	mov    %esi,%eax
410250:	5e                   	pop    %esi
410251:	5f                   	pop    %edi
410252:	8b e5                	mov    %ebp,%esp
410254:	5d                   	pop    %ebp
410255:	c3                   	ret
410256:	e8 86 95 ff ff       	call   0x4097e1
41025b:	33 c0                	xor    %eax,%eax
41025d:	50                   	push   %eax
41025e:	50                   	push   %eax
41025f:	50                   	push   %eax
410260:	50                   	push   %eax
410261:	50                   	push   %eax
410262:	e8 f4 79 ff ff       	call   0x407c5b
410267:	cc                   	int3
410268:	8b ff                	mov    %edi,%edi
41026a:	55                   	push   %ebp
41026b:	8b ec                	mov    %esp,%ebp
41026d:	51                   	push   %ecx
41026e:	51                   	push   %ecx
41026f:	57                   	push   %edi
410270:	8b 7d 08             	mov    0x8(%ebp),%edi
410273:	85 ff                	test   %edi,%edi
410275:	75 07                	jne    0x41027e
410277:	33 c0                	xor    %eax,%eax
410279:	e9 91 00 00 00       	jmp    0x41030f
41027e:	53                   	push   %ebx
41027f:	33 db                	xor    %ebx,%ebx
410281:	8b c7                	mov    %edi,%eax
410283:	8b cb                	mov    %ebx,%ecx
410285:	89 5d fc             	mov    %ebx,-0x4(%ebp)
410288:	56                   	push   %esi
410289:	39 1f                	cmp    %ebx,(%edi)
41028b:	74 08                	je     0x410295
41028d:	8d 40 04             	lea    0x4(%eax),%eax
410290:	41                   	inc    %ecx
410291:	39 18                	cmp    %ebx,(%eax)
410293:	75 f8                	jne    0x41028d
410295:	8d 41 01             	lea    0x1(%ecx),%eax
410298:	6a 04                	push   $0x4
41029a:	50                   	push   %eax
41029b:	e8 0c 96 ff ff       	call   0x4098ac
4102a0:	8b f0                	mov    %eax,%esi
4102a2:	59                   	pop    %ecx
4102a3:	59                   	pop    %ecx
4102a4:	85 f6                	test   %esi,%esi
4102a6:	74 6c                	je     0x410314
4102a8:	39 1f                	cmp    %ebx,(%edi)
4102aa:	74 58                	je     0x410304
4102ac:	8b de                	mov    %esi,%ebx
4102ae:	2b df                	sub    %edi,%ebx
4102b0:	8b 0f                	mov    (%edi),%ecx
4102b2:	8d 51 02             	lea    0x2(%ecx),%edx
4102b5:	66 8b 01             	mov    (%ecx),%ax
4102b8:	83 c1 02             	add    $0x2,%ecx
4102bb:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
4102bf:	75 f4                	jne    0x4102b5
4102c1:	2b ca                	sub    %edx,%ecx
4102c3:	d1 f9                	sar    $1,%ecx
4102c5:	6a 02                	push   $0x2
4102c7:	8d 41 01             	lea    0x1(%ecx),%eax
4102ca:	50                   	push   %eax
4102cb:	89 45 f8             	mov    %eax,-0x8(%ebp)
4102ce:	e8 d9 95 ff ff       	call   0x4098ac
4102d3:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
4102d6:	33 c0                	xor    %eax,%eax
4102d8:	50                   	push   %eax
4102d9:	e8 46 95 ff ff       	call   0x409824
4102de:	83 c4 0c             	add    $0xc,%esp
4102e1:	83 3c 3b 00          	cmpl   $0x0,(%ebx,%edi,1)
4102e5:	74 2d                	je     0x410314
4102e7:	ff 37                	push   (%edi)
4102e9:	ff 75 f8             	push   -0x8(%ebp)
4102ec:	ff 34 3b             	push   (%ebx,%edi,1)
4102ef:	e8 8d 7c ff ff       	call   0x407f81
4102f4:	83 c4 0c             	add    $0xc,%esp
4102f7:	85 c0                	test   %eax,%eax
4102f9:	75 1e                	jne    0x410319
4102fb:	83 c7 04             	add    $0x4,%edi
4102fe:	39 07                	cmp    %eax,(%edi)
410300:	75 ae                	jne    0x4102b0
410302:	33 db                	xor    %ebx,%ebx
410304:	53                   	push   %ebx
410305:	e8 1a 95 ff ff       	call   0x409824
41030a:	59                   	pop    %ecx
41030b:	8b c6                	mov    %esi,%eax
41030d:	5e                   	pop    %esi
41030e:	5b                   	pop    %ebx
41030f:	5f                   	pop    %edi
410310:	8b e5                	mov    %ebp,%esp
410312:	5d                   	pop    %ebp
410313:	c3                   	ret
410314:	e8 c8 94 ff ff       	call   0x4097e1
410319:	33 c0                	xor    %eax,%eax
41031b:	50                   	push   %eax
41031c:	50                   	push   %eax
41031d:	50                   	push   %eax
41031e:	50                   	push   %eax
41031f:	50                   	push   %eax
410320:	e8 36 79 ff ff       	call   0x407c5b
410325:	cc                   	int3
410326:	8b ff                	mov    %edi,%edi
410328:	55                   	push   %ebp
410329:	8b ec                	mov    %esp,%ebp
41032b:	53                   	push   %ebx
41032c:	56                   	push   %esi
41032d:	57                   	push   %edi
41032e:	8b 3d 4c 41 42 00    	mov    0x42414c,%edi
410334:	8b f7                	mov    %edi,%esi
410336:	83 3f 00             	cmpl   $0x0,(%edi)
410339:	74 2a                	je     0x410365
41033b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41033e:	53                   	push   %ebx
41033f:	ff 36                	push   (%esi)
410341:	ff 75 08             	push   0x8(%ebp)
410344:	e8 03 55 00 00       	call   0x41584c
410349:	83 c4 0c             	add    $0xc,%esp
41034c:	85 c0                	test   %eax,%eax
41034e:	75 0d                	jne    0x41035d
410350:	8b 06                	mov    (%esi),%eax
410352:	8a 04 03             	mov    (%ebx,%eax,1),%al
410355:	3c 3d                	cmp    $0x3d,%al
410357:	74 1a                	je     0x410373
410359:	84 c0                	test   %al,%al
41035b:	74 16                	je     0x410373
41035d:	83 c6 04             	add    $0x4,%esi
410360:	83 3e 00             	cmpl   $0x0,(%esi)
410363:	75 d9                	jne    0x41033e
410365:	2b f7                	sub    %edi,%esi
410367:	c1 fe 02             	sar    $0x2,%esi
41036a:	f7 de                	neg    %esi
41036c:	5f                   	pop    %edi
41036d:	8b c6                	mov    %esi,%eax
41036f:	5e                   	pop    %esi
410370:	5b                   	pop    %ebx
410371:	5d                   	pop    %ebp
410372:	c3                   	ret
410373:	2b f7                	sub    %edi,%esi
410375:	c1 fe 02             	sar    $0x2,%esi
410378:	eb f2                	jmp    0x41036c
41037a:	8b ff                	mov    %edi,%edi
41037c:	55                   	push   %ebp
41037d:	8b ec                	mov    %esp,%ebp
41037f:	53                   	push   %ebx
410380:	56                   	push   %esi
410381:	57                   	push   %edi
410382:	8b 3d 50 41 42 00    	mov    0x424150,%edi
410388:	8b f7                	mov    %edi,%esi
41038a:	83 3f 00             	cmpl   $0x0,(%edi)
41038d:	74 2d                	je     0x4103bc
41038f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
410392:	53                   	push   %ebx
410393:	ff 36                	push   (%esi)
410395:	ff 75 08             	push   0x8(%ebp)
410398:	e8 b2 52 00 00       	call   0x41564f
41039d:	83 c4 0c             	add    $0xc,%esp
4103a0:	85 c0                	test   %eax,%eax
4103a2:	75 10                	jne    0x4103b4
4103a4:	8b 06                	mov    (%esi),%eax
4103a6:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
4103aa:	83 f8 3d             	cmp    $0x3d,%eax
4103ad:	74 1b                	je     0x4103ca
4103af:	66 85 c0             	test   %ax,%ax
4103b2:	74 16                	je     0x4103ca
4103b4:	83 c6 04             	add    $0x4,%esi
4103b7:	83 3e 00             	cmpl   $0x0,(%esi)
4103ba:	75 d6                	jne    0x410392
4103bc:	2b f7                	sub    %edi,%esi
4103be:	c1 fe 02             	sar    $0x2,%esi
4103c1:	f7 de                	neg    %esi
4103c3:	5f                   	pop    %edi
4103c4:	8b c6                	mov    %esi,%eax
4103c6:	5e                   	pop    %esi
4103c7:	5b                   	pop    %ebx
4103c8:	5d                   	pop    %ebp
4103c9:	c3                   	ret
4103ca:	2b f7                	sub    %edi,%esi
4103cc:	c1 fe 02             	sar    $0x2,%esi
4103cf:	eb f2                	jmp    0x4103c3
4103d1:	8b ff                	mov    %edi,%edi
4103d3:	55                   	push   %ebp
4103d4:	8b ec                	mov    %esp,%ebp
4103d6:	5d                   	pop    %ebp
4103d7:	e9 63 f9 ff ff       	jmp    0x40fd3f
4103dc:	8b ff                	mov    %edi,%edi
4103de:	55                   	push   %ebp
4103df:	8b ec                	mov    %esp,%ebp
4103e1:	5d                   	pop    %ebp
4103e2:	e9 93 fb ff ff       	jmp    0x40ff7a
4103e7:	ff 15 84 b0 41 00    	call   *0x41b084
4103ed:	85 c0                	test   %eax,%eax
4103ef:	a3 c4 46 42 00       	mov    %eax,0x4246c4
4103f4:	0f 95 c0             	setne  %al
4103f7:	c3                   	ret
4103f8:	83 25 c4 46 42 00 00 	andl   $0x0,0x4246c4
4103ff:	b0 01                	mov    $0x1,%al
410401:	c3                   	ret
410402:	8b ff                	mov    %edi,%edi
410404:	55                   	push   %ebp
410405:	8b ec                	mov    %esp,%ebp
410407:	51                   	push   %ecx
410408:	a1 0c 30 42 00       	mov    0x42300c,%eax
41040d:	33 c5                	xor    %ebp,%eax
41040f:	89 45 fc             	mov    %eax,-0x4(%ebp)
410412:	57                   	push   %edi
410413:	8b 7d 08             	mov    0x8(%ebp),%edi
410416:	3b 7d 0c             	cmp    0xc(%ebp),%edi
410419:	75 04                	jne    0x41041f
41041b:	b0 01                	mov    $0x1,%al
41041d:	eb 57                	jmp    0x410476
41041f:	56                   	push   %esi
410420:	8b f7                	mov    %edi,%esi
410422:	53                   	push   %ebx
410423:	8b 1e                	mov    (%esi),%ebx
410425:	85 db                	test   %ebx,%ebx
410427:	74 0e                	je     0x410437
410429:	8b cb                	mov    %ebx,%ecx
41042b:	ff 15 a8 b1 41 00    	call   *0x41b1a8
410431:	ff d3                	call   *%ebx
410433:	84 c0                	test   %al,%al
410435:	74 08                	je     0x41043f
410437:	83 c6 08             	add    $0x8,%esi
41043a:	3b 75 0c             	cmp    0xc(%ebp),%esi
41043d:	75 e4                	jne    0x410423
41043f:	3b 75 0c             	cmp    0xc(%ebp),%esi
410442:	75 04                	jne    0x410448
410444:	b0 01                	mov    $0x1,%al
410446:	eb 2c                	jmp    0x410474
410448:	3b f7                	cmp    %edi,%esi
41044a:	74 26                	je     0x410472
41044c:	83 c6 fc             	add    $0xfffffffc,%esi
41044f:	83 7e fc 00          	cmpl   $0x0,-0x4(%esi)
410453:	74 13                	je     0x410468
410455:	8b 1e                	mov    (%esi),%ebx
410457:	85 db                	test   %ebx,%ebx
410459:	74 0d                	je     0x410468
41045b:	6a 00                	push   $0x0
41045d:	8b cb                	mov    %ebx,%ecx
41045f:	ff 15 a8 b1 41 00    	call   *0x41b1a8
410465:	ff d3                	call   *%ebx
410467:	59                   	pop    %ecx
410468:	83 ee 08             	sub    $0x8,%esi
41046b:	8d 46 04             	lea    0x4(%esi),%eax
41046e:	3b c7                	cmp    %edi,%eax
410470:	75 dd                	jne    0x41044f
410472:	32 c0                	xor    %al,%al
410474:	5b                   	pop    %ebx
410475:	5e                   	pop    %esi
410476:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410479:	33 cd                	xor    %ebp,%ecx
41047b:	5f                   	pop    %edi
41047c:	e8 d5 2a ff ff       	call   0x402f56
410481:	8b e5                	mov    %ebp,%esp
410483:	5d                   	pop    %ebp
410484:	c3                   	ret
410485:	8b ff                	mov    %edi,%edi
410487:	55                   	push   %ebp
410488:	8b ec                	mov    %esp,%ebp
41048a:	51                   	push   %ecx
41048b:	a1 0c 30 42 00       	mov    0x42300c,%eax
410490:	33 c5                	xor    %ebp,%eax
410492:	89 45 fc             	mov    %eax,-0x4(%ebp)
410495:	56                   	push   %esi
410496:	8b 75 0c             	mov    0xc(%ebp),%esi
410499:	39 75 08             	cmp    %esi,0x8(%ebp)
41049c:	74 23                	je     0x4104c1
41049e:	83 c6 fc             	add    $0xfffffffc,%esi
4104a1:	57                   	push   %edi
4104a2:	8b 3e                	mov    (%esi),%edi
4104a4:	85 ff                	test   %edi,%edi
4104a6:	74 0d                	je     0x4104b5
4104a8:	6a 00                	push   $0x0
4104aa:	8b cf                	mov    %edi,%ecx
4104ac:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4104b2:	ff d7                	call   *%edi
4104b4:	59                   	pop    %ecx
4104b5:	83 ee 08             	sub    $0x8,%esi
4104b8:	8d 46 04             	lea    0x4(%esi),%eax
4104bb:	3b 45 08             	cmp    0x8(%ebp),%eax
4104be:	75 e2                	jne    0x4104a2
4104c0:	5f                   	pop    %edi
4104c1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4104c4:	b0 01                	mov    $0x1,%al
4104c6:	33 cd                	xor    %ebp,%ecx
4104c8:	5e                   	pop    %esi
4104c9:	e8 88 2a ff ff       	call   0x402f56
4104ce:	8b e5                	mov    %ebp,%esp
4104d0:	5d                   	pop    %ebp
4104d1:	c3                   	ret
4104d2:	6a 0c                	push   $0xc
4104d4:	68 c8 1e 42 00       	push   $0x421ec8
4104d9:	e8 72 36 ff ff       	call   0x403b50
4104de:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4104e2:	8b 45 08             	mov    0x8(%ebp),%eax
4104e5:	ff 30                	push   (%eax)
4104e7:	e8 b9 e9 ff ff       	call   0x40eea5
4104ec:	59                   	pop    %ecx
4104ed:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4104f1:	8b 35 0c 30 42 00    	mov    0x42300c,%esi
4104f7:	8b ce                	mov    %esi,%ecx
4104f9:	83 e1 1f             	and    $0x1f,%ecx
4104fc:	33 35 d0 46 42 00    	xor    0x4246d0,%esi
410502:	d3 ce                	ror    %cl,%esi