403380:	55                   	push   %ebp
403381:	8b ec                	mov    %esp,%ebp
403383:	6a ff                	push   $0xffffffff
403385:	68 35 b8 43 00       	push   $0x43b835
40338a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403390:	50                   	push   %eax
403391:	81 ec 28 02 00 00    	sub    $0x228,%esp
403397:	a1 14 50 45 00       	mov    0x455014,%eax
40339c:	33 c5                	xor    %ebp,%eax
40339e:	89 45 f0             	mov    %eax,-0x10(%ebp)
4033a1:	53                   	push   %ebx
4033a2:	56                   	push   %esi
4033a3:	57                   	push   %edi
4033a4:	50                   	push   %eax
4033a5:	8d 45 f4             	lea    -0xc(%ebp),%eax
4033a8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4033ae:	8b f1                	mov    %ecx,%esi
4033b0:	68 04 01 00 00       	push   $0x104
4033b5:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4033bb:	50                   	push   %eax
4033bc:	6a 00                	push   $0x0
4033be:	ff 15 a8 e0 43 00    	call   *0x43e0a8
4033c4:	85 c0                	test   %eax,%eax
4033c6:	0f 84 4f 01 00 00    	je     0x40351b
4033cc:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4033d2:	50                   	push   %eax
4033d3:	ff 15 2c e2 43 00    	call   *0x43e22c
4033d9:	85 c0                	test   %eax,%eax
4033db:	0f 84 3a 01 00 00    	je     0x40351b
4033e1:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
4033e7:	8d 51 02             	lea    0x2(%ecx),%edx
4033ea:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4033f0:	66 8b 01             	mov    (%ecx),%ax
4033f3:	83 c1 02             	add    $0x2,%ecx
4033f6:	66 85 c0             	test   %ax,%ax
4033f9:	75 f5                	jne    0x4033f0
4033fb:	2b ca                	sub    %edx,%ecx
4033fd:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
403403:	d1 f9                	sar    $1,%ecx
403405:	51                   	push   %ecx
403406:	50                   	push   %eax
403407:	8b ce                	mov    %esi,%ecx
403409:	e8 e2 fa ff ff       	call   0x402ef0
40340e:	6a 16                	push   $0x16
403410:	68 f0 df 44 00       	push   $0x44dff0
403415:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
40341b:	c7 85 d0 fd ff ff 00 	movl   $0x0,-0x230(%ebp)
403422:	00 00 00
403425:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
40342c:	00 00 00
40342f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
403436:	00 00 00
403439:	e8 c2 fb ff ff       	call   0x403000
40343e:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
403445:	8b 4e 10             	mov    0x10(%esi),%ecx
403448:	85 c9                	test   %ecx,%ecx
40344a:	0f 84 87 00 00 00    	je     0x4034d7
403450:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
403456:	85 c0                	test   %eax,%eax
403458:	74 7d                	je     0x4034d7
40345a:	8d 58 0b             	lea    0xb(%eax),%ebx
40345d:	ba 02 00 00 00       	mov    $0x2,%edx
403462:	03 d9                	add    %ecx,%ebx
403464:	33 c9                	xor    %ecx,%ecx
403466:	8b c3                	mov    %ebx,%eax
403468:	f7 e2                	mul    %edx
40346a:	0f 90 c1             	seto   %cl
40346d:	f7 d9                	neg    %ecx
40346f:	0b c8                	or     %eax,%ecx
403471:	51                   	push   %ecx
403472:	e8 e7 05 02 00       	call   0x423a5e
403477:	8b f8                	mov    %eax,%edi
403479:	83 c4 04             	add    $0x4,%esp
40347c:	85 ff                	test   %edi,%edi
40347e:	74 57                	je     0x4034d7
403480:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
403484:	8b c6                	mov    %esi,%eax
403486:	72 02                	jb     0x40348a
403488:	8b 06                	mov    (%esi),%eax
40348a:	50                   	push   %eax
40348b:	53                   	push   %ebx
40348c:	57                   	push   %edi
40348d:	e8 d4 03 02 00       	call   0x423866
403492:	83 c4 0c             	add    $0xc,%esp
403495:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40349b:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
4034a2:	0f 43 85 d0 fd ff ff 	cmovae -0x230(%ebp),%eax
4034a9:	50                   	push   %eax
4034aa:	57                   	push   %edi
4034ab:	ff 15 30 e2 43 00    	call   *0x43e230
4034b1:	8b d7                	mov    %edi,%edx
4034b3:	8d 4a 02             	lea    0x2(%edx),%ecx
4034b6:	66 8b 02             	mov    (%edx),%ax
4034b9:	83 c2 02             	add    $0x2,%edx
4034bc:	66 85 c0             	test   %ax,%ax
4034bf:	75 f5                	jne    0x4034b6
4034c1:	2b d1                	sub    %ecx,%edx
4034c3:	8b ce                	mov    %esi,%ecx
4034c5:	d1 fa                	sar    $1,%edx
4034c7:	52                   	push   %edx
4034c8:	57                   	push   %edi
4034c9:	e8 22 fa ff ff       	call   0x402ef0
4034ce:	57                   	push   %edi
4034cf:	e8 6f 05 02 00       	call   0x423a43
4034d4:	83 c4 04             	add    $0x4,%esp
4034d7:	8b 8d e4 fd ff ff    	mov    -0x21c(%ebp),%ecx
4034dd:	83 f9 08             	cmp    $0x8,%ecx
4034e0:	72 35                	jb     0x403517
4034e2:	8b 95 d0 fd ff ff    	mov    -0x230(%ebp),%edx
4034e8:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4034ef:	8b c2                	mov    %edx,%eax
4034f1:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4034f7:	72 14                	jb     0x40350d
4034f9:	8b 50 fc             	mov    -0x4(%eax),%edx
4034fc:	83 c1 23             	add    $0x23,%ecx
4034ff:	2b c2                	sub    %edx,%eax
403501:	83 c0 fc             	add    $0xfffffffc,%eax
403504:	83 f8 1f             	cmp    $0x1f,%eax
403507:	0f 87 92 00 00 00    	ja     0x40359f
40350d:	51                   	push   %ecx
40350e:	52                   	push   %edx
40350f:	e8 a4 66 01 00       	call   0x419bb8
403514:	83 c4 08             	add    $0x8,%esp
403517:	b0 01                	mov    $0x1,%al
403519:	eb 68                	jmp    0x403583
40351b:	a1 20 72 45 00       	mov    0x457220,%eax
403520:	85 c0                	test   %eax,%eax
403522:	75 3c                	jne    0x403560
403524:	68 84 00 00 00       	push   $0x84
403529:	e8 98 66 01 00       	call   0x419bc6
40352e:	8b f0                	mov    %eax,%esi
403530:	89 b5 cc fd ff ff    	mov    %esi,-0x234(%ebp)
403536:	68 84 00 00 00       	push   $0x84
40353b:	6a 00                	push   $0x0
40353d:	56                   	push   %esi
40353e:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
403545:	e8 c6 86 01 00       	call   0x41bc10
40354a:	83 c4 10             	add    $0x10,%esp
40354d:	8b ce                	mov    %esi,%ecx
40354f:	e8 5c 00 00 00       	call   0x4035b0
403554:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40355b:	a3 20 72 45 00       	mov    %eax,0x457220
403560:	8b 48 04             	mov    0x4(%eax),%ecx
403563:	83 c0 04             	add    $0x4,%eax
403566:	68 98 df 44 00       	push   $0x44df98
40356b:	68 54 9f 44 00       	push   $0x449f54
403570:	50                   	push   %eax
403571:	8b 71 24             	mov    0x24(%ecx),%esi
403574:	8b ce                	mov    %esi,%ecx
403576:	ff 15 5c e2 43 00    	call   *0x43e25c
40357c:	ff d6                	call   *%esi
40357e:	83 c4 0c             	add    $0xc,%esp
403581:	32 c0                	xor    %al,%al
403583:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403586:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40358d:	59                   	pop    %ecx
40358e:	5f                   	pop    %edi
40358f:	5e                   	pop    %esi
403590:	5b                   	pop    %ebx
403591:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403594:	33 cd                	xor    %ebp,%ecx
403596:	e8 0f 66 01 00       	call   0x419baa
40359b:	8b e5                	mov    %ebp,%esp
40359d:	5d                   	pop    %ebp
40359e:	c3                   	ret
40359f:	e8 ef c3 01 00       	call   0x41f993
4035a4:	cc                   	int3
4035a5:	cc                   	int3
4035a6:	cc                   	int3
4035a7:	cc                   	int3
4035a8:	cc                   	int3
4035a9:	cc                   	int3
4035aa:	cc                   	int3
4035ab:	cc                   	int3
4035ac:	cc                   	int3
4035ad:	cc                   	int3
4035ae:	cc                   	int3
4035af:	cc                   	int3
4035b0:	55                   	push   %ebp
4035b1:	8b ec                	mov    %esp,%ebp
4035b3:	6a ff                	push   $0xffffffff
4035b5:	68 eb b8 43 00       	push   $0x43b8eb
4035ba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4035c0:	50                   	push   %eax
4035c1:	83 ec 08             	sub    $0x8,%esp
4035c4:	53                   	push   %ebx
4035c5:	56                   	push   %esi
4035c6:	57                   	push   %edi
4035c7:	a1 14 50 45 00       	mov    0x455014,%eax
4035cc:	33 c5                	xor    %ebp,%eax
4035ce:	50                   	push   %eax
4035cf:	8d 45 f4             	lea    -0xc(%ebp),%eax
4035d2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4035d8:	8b c1                	mov    %ecx,%eax
4035da:	89 45 f0             	mov    %eax,-0x10(%ebp)
4035dd:	8d 48 04             	lea    0x4(%eax),%ecx
4035e0:	33 d2                	xor    %edx,%edx
4035e2:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4035e5:	c7 01 78 f1 44 00    	movl   $0x44f178,(%ecx)
4035eb:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
4035f2:	c7 41 18 00 00 00 00 	movl   $0x0,0x18(%ecx)
4035f9:	c7 41 1c 07 00 00 00 	movl   $0x7,0x1c(%ecx)
403600:	66 89 51 08          	mov    %dx,0x8(%ecx)
403604:	8d 59 20             	lea    0x20(%ecx),%ebx
403607:	89 55 fc             	mov    %edx,-0x4(%ebp)
40360a:	33 c0                	xor    %eax,%eax
40360c:	89 13                	mov    %edx,(%ebx)
40360e:	89 53 10             	mov    %edx,0x10(%ebx)
403611:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
403618:	66 89 03             	mov    %ax,(%ebx)
40361b:	8d 79 38             	lea    0x38(%ecx),%edi
40361e:	89 07                	mov    %eax,(%edi)
403620:	89 47 10             	mov    %eax,0x10(%edi)
403623:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40362a:	66 89 07             	mov    %ax,(%edi)
40362d:	8d 71 50             	lea    0x50(%ecx),%esi
403630:	89 06                	mov    %eax,(%esi)
403632:	89 46 10             	mov    %eax,0x10(%esi)
403635:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40363c:	66 89 06             	mov    %ax,(%esi)
40363f:	83 c1 68             	add    $0x68,%ecx
403642:	89 01                	mov    %eax,(%ecx)
403644:	89 41 10             	mov    %eax,0x10(%ecx)
403647:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
40364e:	66 89 01             	mov    %ax,(%ecx)
403651:	6a 0c                	push   $0xc
403653:	68 20 e0 44 00       	push   $0x44e020
403658:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40365c:	e8 8f f8 ff ff       	call   0x402ef0
403661:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403664:	6a 00                	push   $0x0
403666:	68 54 9f 44 00       	push   $0x449f54
40366b:	8d 49 0c             	lea    0xc(%ecx),%ecx
40366e:	e8 7d f8 ff ff       	call   0x402ef0
403673:	6a 0c                	push   $0xc
403675:	68 20 e0 44 00       	push   $0x44e020
40367a:	8b cb                	mov    %ebx,%ecx
40367c:	e8 6f f8 ff ff       	call   0x402ef0
403681:	6a 0c                	push   $0xc
403683:	68 20 e0 44 00       	push   $0x44e020
403688:	8b cf                	mov    %edi,%ecx
40368a:	e8 61 f8 ff ff       	call   0x402ef0
40368f:	6a 00                	push   $0x0
403691:	68 54 9f 44 00       	push   $0x449f54
403696:	8b ce                	mov    %esi,%ecx
403698:	e8 53 f8 ff ff       	call   0x402ef0
40369d:	e8 2e 7a 00 00       	call   0x40b0d0
4036a2:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4036a5:	89 43 08             	mov    %eax,0x8(%ebx)
4036a8:	68 10 01 00 00       	push   $0x110
4036ad:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
4036b4:	e8 0d 65 01 00       	call   0x419bc6
4036b9:	8b f0                	mov    %eax,%esi
4036bb:	89 75 ec             	mov    %esi,-0x14(%ebp)
4036be:	68 10 01 00 00       	push   $0x110
4036c3:	6a 00                	push   $0x0
4036c5:	56                   	push   %esi
4036c6:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
4036ca:	e8 41 85 01 00       	call   0x41bc10
4036cf:	83 c4 10             	add    $0x10,%esp
4036d2:	8b ce                	mov    %esi,%ecx
4036d4:	e8 e7 d9 00 00       	call   0x4110c0
4036d9:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
4036dd:	8d 8e 94 00 00 00    	lea    0x94(%esi),%ecx
4036e3:	c7 06 a8 f0 44 00    	movl   $0x44f0a8,(%esi)
4036e9:	e8 42 87 00 00       	call   0x40be30
4036ee:	c7 86 d4 00 00 00 00 	movl   $0x0,0xd4(%esi)
4036f5:	00 00 00
4036f8:	33 c0                	xor    %eax,%eax
4036fa:	c7 86 e4 00 00 00 00 	movl   $0x0,0xe4(%esi)
403701:	00 00 00
403704:	c7 86 e8 00 00 00 07 	movl   $0x7,0xe8(%esi)
40370b:	00 00 00
40370e:	66 89 86 d4 00 00 00 	mov    %ax,0xd4(%esi)
403715:	89 86 00 01 00 00    	mov    %eax,0x100(%esi)
40371b:	89 86 04 01 00 00    	mov    %eax,0x104(%esi)
403721:	89 86 08 01 00 00    	mov    %eax,0x108(%esi)
403727:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
40372b:	8d 4e 04             	lea    0x4(%esi),%ecx
40372e:	6a 0c                	push   $0xc
403730:	68 20 e0 44 00       	push   $0x44e020
403735:	89 86 90 00 00 00    	mov    %eax,0x90(%esi)
40373b:	c6 86 d1 00 00 00 01 	movb   $0x1,0xd1(%esi)
403742:	89 46 68             	mov    %eax,0x68(%esi)
403745:	e8 a6 f7 ff ff       	call   0x402ef0
40374a:	8b ce                	mov    %esi,%ecx
40374c:	e8 bf 2a 01 00       	call   0x416210
403751:	8b ce                	mov    %esi,%ecx
403753:	e8 08 3b 01 00       	call   0x417260
403758:	83 ec 08             	sub    $0x8,%esp
40375b:	c6 86 d0 00 00 00 00 	movb   $0x0,0xd0(%esi)
403762:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
403766:	8b ce                	mov    %esi,%ecx
403768:	89 33                	mov    %esi,(%ebx)
40376a:	e8 a1 e0 00 00       	call   0x411810
40376f:	8b 0b                	mov    (%ebx),%ecx
403771:	6a 00                	push   $0x0
403773:	e8 e8 db 00 00       	call   0x411360
403778:	ff 33                	push   (%ebx)
40377a:	e8 51 79 00 00       	call   0x40b0d0
40377f:	8b c8                	mov    %eax,%ecx
403781:	e8 fa 79 00 00       	call   0x40b180
403786:	8b c3                	mov    %ebx,%eax
403788:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40378b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403792:	59                   	pop    %ecx
403793:	5f                   	pop    %edi
403794:	5e                   	pop    %esi
403795:	5b                   	pop    %ebx
403796:	8b e5                	mov    %ebp,%esp
403798:	5d                   	pop    %ebp
403799:	c3                   	ret
40379a:	cc                   	int3
40379b:	cc                   	int3
40379c:	cc                   	int3
40379d:	cc                   	int3
40379e:	cc                   	int3
40379f:	cc                   	int3
4037a0:	56                   	push   %esi
4037a1:	8b f1                	mov    %ecx,%esi
4037a3:	8b 4e 7c             	mov    0x7c(%esi),%ecx
4037a6:	83 f9 08             	cmp    $0x8,%ecx
4037a9:	72 32                	jb     0x4037dd
4037ab:	8b 46 68             	mov    0x68(%esi),%eax
4037ae:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4037b5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4037bb:	72 16                	jb     0x4037d3
4037bd:	8b 50 fc             	mov    -0x4(%eax),%edx
4037c0:	83 c1 23             	add    $0x23,%ecx
4037c3:	2b c2                	sub    %edx,%eax
4037c5:	83 c0 fc             	add    $0xfffffffc,%eax
4037c8:	83 f8 1f             	cmp    $0x1f,%eax
4037cb:	0f 87 52 01 00 00    	ja     0x403923
4037d1:	8b c2                	mov    %edx,%eax
4037d3:	51                   	push   %ecx
4037d4:	50                   	push   %eax
4037d5:	e8 de 63 01 00       	call   0x419bb8
4037da:	83 c4 08             	add    $0x8,%esp
4037dd:	33 c0                	xor    %eax,%eax
4037df:	c7 46 78 00 00 00 00 	movl   $0x0,0x78(%esi)
4037e6:	c7 46 7c 07 00 00 00 	movl   $0x7,0x7c(%esi)
4037ed:	66 89 46 68          	mov    %ax,0x68(%esi)
4037f1:	8b 4e 64             	mov    0x64(%esi),%ecx
4037f4:	83 f9 08             	cmp    $0x8,%ecx
4037f7:	72 32                	jb     0x40382b
4037f9:	8b 46 50             	mov    0x50(%esi),%eax
4037fc:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
403803:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403809:	72 16                	jb     0x403821
40380b:	8b 50 fc             	mov    -0x4(%eax),%edx