40327e:	33 c4                	xor    %esp,%eax
403280:	89 44 24 50          	mov    %eax,0x50(%esp)
403284:	53                   	push   %ebx
403285:	8b 5d 08             	mov    0x8(%ebp),%ebx
403288:	8d 44 24 08          	lea    0x8(%esp),%eax
40328c:	56                   	push   %esi
40328d:	8b 75 14             	mov    0x14(%ebp),%esi
403290:	57                   	push   %edi
403291:	ff 75 20             	push   0x20(%ebp)
403294:	8b f9                	mov    %ecx,%edi
403296:	ff 75 1c             	push   0x1c(%ebp)
403299:	ff 76 14             	push   0x14(%esi)
40329c:	68 14 fc 42 00       	push   $0x42fc14
4032a1:	50                   	push   %eax
4032a2:	57                   	push   %edi
4032a3:	e8 78 0c 00 00       	call   0x403f20
4032a8:	83 c4 10             	add    $0x10,%esp
4032ab:	50                   	push   %eax
4032ac:	8d 44 24 24          	lea    0x24(%esp),%eax
4032b0:	6a 40                	push   $0x40
4032b2:	50                   	push   %eax
4032b3:	e8 18 df ff ff       	call   0x4011d0
4032b8:	83 c4 14             	add    $0x14,%esp
4032bb:	50                   	push   %eax
4032bc:	8d 44 24 1c          	lea    0x1c(%esp),%eax
4032c0:	50                   	push   %eax
4032c1:	ff 75 18             	push   0x18(%ebp)
4032c4:	56                   	push   %esi
4032c5:	ff 75 10             	push   0x10(%ebp)
4032c8:	ff 75 0c             	push   0xc(%ebp)
4032cb:	53                   	push   %ebx
4032cc:	57                   	push   %edi
4032cd:	e8 4e 08 00 00       	call   0x403b20
4032d2:	8b 4c 24 7c          	mov    0x7c(%esp),%ecx
4032d6:	83 c4 20             	add    $0x20,%esp
4032d9:	8b c3                	mov    %ebx,%eax
4032db:	5f                   	pop    %edi
4032dc:	5e                   	pop    %esi
4032dd:	5b                   	pop    %ebx
4032de:	33 cc                	xor    %esp,%ecx
4032e0:	e8 27 41 00 00       	call   0x40740c
4032e5:	8b e5                	mov    %ebp,%esp
4032e7:	5d                   	pop    %ebp
4032e8:	c2 1c 00             	ret    $0x1c
4032eb:	cc                   	int3
4032ec:	cc                   	int3
4032ed:	cc                   	int3
4032ee:	cc                   	int3
4032ef:	cc                   	int3
4032f0:	55                   	push   %ebp
4032f1:	8b ec                	mov    %esp,%ebp
4032f3:	83 e4 f8             	and    $0xfffffff8,%esp
4032f6:	83 ec 54             	sub    $0x54,%esp
4032f9:	a1 14 30 43 00       	mov    0x433014,%eax
4032fe:	33 c4                	xor    %esp,%eax
403300:	89 44 24 50          	mov    %eax,0x50(%esp)
403304:	53                   	push   %ebx
403305:	8b 5d 08             	mov    0x8(%ebp),%ebx
403308:	8d 44 24 08          	lea    0x8(%esp),%eax
40330c:	56                   	push   %esi
40330d:	8b 75 14             	mov    0x14(%ebp),%esi
403310:	57                   	push   %edi
403311:	ff 75 1c             	push   0x1c(%ebp)
403314:	8b f9                	mov    %ecx,%edi
403316:	ff 76 14             	push   0x14(%esi)
403319:	68 18 fc 42 00       	push   $0x42fc18
40331e:	50                   	push   %eax
40331f:	57                   	push   %edi
403320:	e8 fb 0b 00 00       	call   0x403f20
403325:	83 c4 10             	add    $0x10,%esp
403328:	50                   	push   %eax
403329:	8d 44 24 20          	lea    0x20(%esp),%eax
40332d:	6a 40                	push   $0x40
40332f:	50                   	push   %eax
403330:	e8 9b de ff ff       	call   0x4011d0
403335:	50                   	push   %eax
403336:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40333a:	50                   	push   %eax
40333b:	ff 75 18             	push   0x18(%ebp)
40333e:	56                   	push   %esi
40333f:	ff 75 10             	push   0x10(%ebp)
403342:	ff 75 0c             	push   0xc(%ebp)
403345:	53                   	push   %ebx
403346:	57                   	push   %edi
403347:	e8 d4 07 00 00       	call   0x403b20
40334c:	8b 8c 24 8c 00 00 00 	mov    0x8c(%esp),%ecx
403353:	83 c4 30             	add    $0x30,%esp
403356:	8b c3                	mov    %ebx,%eax
403358:	5f                   	pop    %edi
403359:	5e                   	pop    %esi
40335a:	5b                   	pop    %ebx
40335b:	33 cc                	xor    %esp,%ecx
40335d:	e8 aa 40 00 00       	call   0x40740c
403362:	8b e5                	mov    %ebp,%esp
403364:	5d                   	pop    %ebp
403365:	c2 18 00             	ret    $0x18
403368:	cc                   	int3
403369:	cc                   	int3
40336a:	cc                   	int3
40336b:	cc                   	int3
40336c:	cc                   	int3
40336d:	cc                   	int3
40336e:	cc                   	int3
40336f:	cc                   	int3
403370:	55                   	push   %ebp
403371:	8b ec                	mov    %esp,%ebp
403373:	83 e4 f8             	and    $0xfffffff8,%esp
403376:	83 ec 54             	sub    $0x54,%esp
403379:	a1 14 30 43 00       	mov    0x433014,%eax
40337e:	33 c4                	xor    %esp,%eax
403380:	89 44 24 50          	mov    %eax,0x50(%esp)
403384:	53                   	push   %ebx
403385:	8b 5d 08             	mov    0x8(%ebp),%ebx
403388:	8d 44 24 08          	lea    0x8(%esp),%eax
40338c:	56                   	push   %esi
40338d:	8b 75 14             	mov    0x14(%ebp),%esi
403390:	57                   	push   %edi
403391:	ff 75 1c             	push   0x1c(%ebp)
403394:	8b f9                	mov    %ecx,%edi
403396:	ff 76 14             	push   0x14(%esi)
403399:	68 1c fc 42 00       	push   $0x42fc1c
40339e:	50                   	push   %eax
40339f:	57                   	push   %edi
4033a0:	e8 7b 0b 00 00       	call   0x403f20
4033a5:	83 c4 10             	add    $0x10,%esp
4033a8:	50                   	push   %eax
4033a9:	8d 44 24 20          	lea    0x20(%esp),%eax
4033ad:	6a 40                	push   $0x40
4033af:	50                   	push   %eax
4033b0:	e8 1b de ff ff       	call   0x4011d0
4033b5:	50                   	push   %eax
4033b6:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4033ba:	50                   	push   %eax
4033bb:	ff 75 18             	push   0x18(%ebp)
4033be:	56                   	push   %esi
4033bf:	ff 75 10             	push   0x10(%ebp)
4033c2:	ff 75 0c             	push   0xc(%ebp)
4033c5:	53                   	push   %ebx
4033c6:	57                   	push   %edi
4033c7:	e8 54 07 00 00       	call   0x403b20
4033cc:	8b 8c 24 8c 00 00 00 	mov    0x8c(%esp),%ecx
4033d3:	83 c4 30             	add    $0x30,%esp
4033d6:	8b c3                	mov    %ebx,%eax
4033d8:	5f                   	pop    %edi
4033d9:	5e                   	pop    %esi
4033da:	5b                   	pop    %ebx
4033db:	33 cc                	xor    %esp,%ecx
4033dd:	e8 2a 40 00 00       	call   0x40740c
4033e2:	8b e5                	mov    %ebp,%esp
4033e4:	5d                   	pop    %ebp
4033e5:	c2 18 00             	ret    $0x18
4033e8:	cc                   	int3
4033e9:	cc                   	int3
4033ea:	cc                   	int3
4033eb:	cc                   	int3
4033ec:	cc                   	int3
4033ed:	cc                   	int3
4033ee:	cc                   	int3
4033ef:	cc                   	int3
4033f0:	55                   	push   %ebp
4033f1:	8b ec                	mov    %esp,%ebp
4033f3:	6a ff                	push   $0xffffffff
4033f5:	68 55 2b 42 00       	push   $0x422b55
4033fa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403400:	50                   	push   %eax
403401:	83 ec 48             	sub    $0x48,%esp
403404:	a1 14 30 43 00       	mov    0x433014,%eax
403409:	33 c5                	xor    %ebp,%eax
40340b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40340e:	53                   	push   %ebx
40340f:	56                   	push   %esi
403410:	57                   	push   %edi
403411:	50                   	push   %eax
403412:	8d 45 f4             	lea    -0xc(%ebp),%eax
403415:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40341b:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40341e:	8b 7d 14             	mov    0x14(%ebp),%edi
403421:	8a 45 18             	mov    0x18(%ebp),%al
403424:	8b 5d 08             	mov    0x8(%ebp),%ebx
403427:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40342a:	f7 47 14 00 40 00 00 	testl  $0x4000,0x14(%edi)
403431:	88 45 bc             	mov    %al,-0x44(%ebp)
403434:	75 1c                	jne    0x403452
403436:	0f b6 45 1c          	movzbl 0x1c(%ebp),%eax
40343a:	8b 11                	mov    (%ecx),%edx
40343c:	50                   	push   %eax
40343d:	ff 75 bc             	push   -0x44(%ebp)
403440:	57                   	push   %edi
403441:	ff 75 10             	push   0x10(%ebp)
403444:	ff 75 0c             	push   0xc(%ebp)
403447:	53                   	push   %ebx
403448:	ff 52 24             	call   *0x24(%edx)
40344b:	8b c3                	mov    %ebx,%eax
40344d:	e9 88 01 00 00       	jmp    0x4035da
403452:	8b 47 30             	mov    0x30(%edi),%eax
403455:	8b 48 04             	mov    0x4(%eax),%ecx
403458:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40345b:	8b 01                	mov    (%ecx),%eax
40345d:	ff 50 04             	call   *0x4(%eax)
403460:	8d 45 b0             	lea    -0x50(%ebp),%eax
403463:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40346a:	50                   	push   %eax
40346b:	e8 40 18 00 00       	call   0x404cb0
403470:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
403473:	83 c4 04             	add    $0x4,%esp
403476:	8b f0                	mov    %eax,%esi
403478:	85 c9                	test   %ecx,%ecx
40347a:	74 11                	je     0x40348d
40347c:	8b 11                	mov    (%ecx),%edx
40347e:	ff 52 08             	call   *0x8(%edx)
403481:	85 c0                	test   %eax,%eax
403483:	74 08                	je     0x40348d
403485:	8b 10                	mov    (%eax),%edx
403487:	8b c8                	mov    %eax,%ecx
403489:	6a 01                	push   $0x1
40348b:	ff 12                	call   *(%edx)
40348d:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
403494:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40349b:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
4034a2:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
4034a6:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
4034aa:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4034ad:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4034b4:	8b 06                	mov    (%esi),%eax
4034b6:	51                   	push   %ecx
4034b7:	8b ce                	mov    %esi,%ecx
4034b9:	74 3b                	je     0x4034f6
4034bb:	ff 50 1c             	call   *0x1c(%eax)
4034be:	8d 45 c0             	lea    -0x40(%ebp),%eax
4034c1:	50                   	push   %eax
4034c2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4034c5:	e8 d6 10 00 00       	call   0x4045a0
4034ca:	8b 55 d4             	mov    -0x2c(%ebp),%edx
4034cd:	83 fa 10             	cmp    $0x10,%edx
4034d0:	72 33                	jb     0x403505
4034d2:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4034d5:	42                   	inc    %edx
4034d6:	8b c1                	mov    %ecx,%eax
4034d8:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
4034de:	72 1b                	jb     0x4034fb
4034e0:	8b 49 fc             	mov    -0x4(%ecx),%ecx
4034e3:	83 c2 23             	add    $0x23,%edx
4034e6:	2b c1                	sub    %ecx,%eax
4034e8:	83 c0 fc             	add    $0xfffffffc,%eax
4034eb:	83 f8 1f             	cmp    $0x1f,%eax
4034ee:	0f 87 04 01 00 00    	ja     0x4035f8
4034f4:	eb 05                	jmp    0x4034fb
4034f6:	ff 50 18             	call   *0x18(%eax)
4034f9:	eb c3                	jmp    0x4034be
4034fb:	52                   	push   %edx
4034fc:	51                   	push   %ecx
4034fd:	e8 4a 41 00 00       	call   0x40764c
403502:	83 c4 08             	add    $0x8,%esp
403505:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
403509:	8b 77 20             	mov    0x20(%edi),%esi
40350c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40350f:	7c 0e                	jl     0x40351f
403511:	7f 04                	jg     0x403517
403513:	85 f6                	test   %esi,%esi
403515:	74 08                	je     0x40351f
403517:	3b f0                	cmp    %eax,%esi
403519:	76 04                	jbe    0x40351f
40351b:	2b f0                	sub    %eax,%esi
40351d:	eb 02                	jmp    0x403521
40351f:	33 f6                	xor    %esi,%esi
403521:	8b 47 14             	mov    0x14(%edi),%eax
403524:	25 c0 01 00 00       	and    $0x1c0,%eax
403529:	83 f8 40             	cmp    $0x40,%eax
40352c:	74 28                	je     0x403556
40352e:	56                   	push   %esi
40352f:	ff 75 bc             	push   -0x44(%ebp)
403532:	8d 45 b0             	lea    -0x50(%ebp),%eax
403535:	ff 75 10             	push   0x10(%ebp)
403538:	ff 75 0c             	push   0xc(%ebp)
40353b:	50                   	push   %eax
40353c:	ff 75 b8             	push   -0x48(%ebp)
40353f:	e8 ec 04 00 00       	call   0x403a30
403544:	83 c4 18             	add    $0x18,%esp
403547:	33 f6                	xor    %esi,%esi
403549:	8b 08                	mov    (%eax),%ecx
40354b:	8b 50 04             	mov    0x4(%eax),%edx
40354e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
403551:	89 55 10             	mov    %edx,0x10(%ebp)
403554:	eb 06                	jmp    0x40355c
403556:	8b 55 10             	mov    0x10(%ebp),%edx
403559:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40355c:	ff 75 e8             	push   -0x18(%ebp)
40355f:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403563:	8d 45 d8             	lea    -0x28(%ebp),%eax
403566:	8b 5d d8             	mov    -0x28(%ebp),%ebx
403569:	0f 43 c3             	cmovae %ebx,%eax
40356c:	50                   	push   %eax
40356d:	52                   	push   %edx
40356e:	51                   	push   %ecx
40356f:	8d 45 b0             	lea    -0x50(%ebp),%eax
403572:	50                   	push   %eax
403573:	ff 75 b8             	push   -0x48(%ebp)
403576:	e8 25 05 00 00       	call   0x403aa0
40357b:	56                   	push   %esi
40357c:	ff 75 bc             	push   -0x44(%ebp)
40357f:	8b 75 ac             	mov    -0x54(%ebp),%esi
403582:	8b 08                	mov    (%eax),%ecx
403584:	8b 40 04             	mov    0x4(%eax),%eax
403587:	50                   	push   %eax
403588:	51                   	push   %ecx
403589:	56                   	push   %esi
40358a:	ff 75 b8             	push   -0x48(%ebp)
40358d:	89 4d 0c             	mov    %ecx,0xc(%ebp)
403590:	89 45 10             	mov    %eax,0x10(%ebp)
403593:	c7 47 20 00 00 00 00 	movl   $0x0,0x20(%edi)
40359a:	c7 47 24 00 00 00 00 	movl   $0x0,0x24(%edi)
4035a1:	e8 8a 04 00 00       	call   0x403a30
4035a6:	8b 45 ec             	mov    -0x14(%ebp),%eax
4035a9:	83 c4 30             	add    $0x30,%esp
4035ac:	83 f8 10             	cmp    $0x10,%eax
4035af:	72 27                	jb     0x4035d8
4035b1:	8d 48 01             	lea    0x1(%eax),%ecx
4035b4:	8b c3                	mov    %ebx,%eax
4035b6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4035bc:	72 10                	jb     0x4035ce
4035be:	8b 5b fc             	mov    -0x4(%ebx),%ebx
4035c1:	83 c1 23             	add    $0x23,%ecx
4035c4:	2b c3                	sub    %ebx,%eax
4035c6:	83 c0 fc             	add    $0xfffffffc,%eax
4035c9:	83 f8 1f             	cmp    $0x1f,%eax
4035cc:	77 2a                	ja     0x4035f8
4035ce:	51                   	push   %ecx
4035cf:	53                   	push   %ebx
4035d0:	e8 77 40 00 00       	call   0x40764c
4035d5:	83 c4 08             	add    $0x8,%esp
4035d8:	8b c6                	mov    %esi,%eax
4035da:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4035dd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4035e4:	59                   	pop    %ecx
4035e5:	5f                   	pop    %edi
4035e6:	5e                   	pop    %esi
4035e7:	5b                   	pop    %ebx
4035e8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4035eb:	33 cd                	xor    %ebp,%ecx
4035ed:	e8 1a 3e 00 00       	call   0x40740c
4035f2:	8b e5                	mov    %ebp,%esp
4035f4:	5d                   	pop    %ebp
4035f5:	c2 18 00             	ret    $0x18
4035f8:	e8 94 9a 00 00       	call   0x40d091
4035fd:	cc                   	int3
4035fe:	cc                   	int3
4035ff:	cc                   	int3
403600:	55                   	push   %ebp
403601:	8b ec                	mov    %esp,%ebp
403603:	6a ff                	push   $0xffffffff