40555c:	53                   	push   %ebx
40555d:	68 09 04 00 00       	push   $0x409
405562:	57                   	push   %edi
405563:	ff d6                	call   *%esi
405565:	ff 75 10             	push   0x10(%ebp)
405568:	53                   	push   %ebx
405569:	68 01 20 00 00       	push   $0x2001
40556e:	57                   	push   %edi
40556f:	ff d6                	call   *%esi
405571:	e9 d6 01 00 00       	jmp    0x40574c
405576:	81 ff 05 04 00 00    	cmp    $0x405,%edi
40557c:	75 28                	jne    0x4055a6
40557e:	8d 45 0c             	lea    0xc(%ebp),%eax
405581:	50                   	push   %eax
405582:	53                   	push   %ebx
405583:	68 ec 03 00 00       	push   $0x3ec
405588:	ff 75 08             	push   0x8(%ebp)
40558b:	ff 15 d0 81 40 00    	call   *0x4081d0
405591:	50                   	push   %eax
405592:	68 5f 53 40 00       	push   $0x40535f
405597:	53                   	push   %ebx
405598:	53                   	push   %ebx
405599:	ff 15 bc 80 40 00    	call   *0x4080bc
40559f:	50                   	push   %eax
4055a0:	ff 15 14 81 40 00    	call   *0x408114
4055a6:	8b 35 48 82 40 00    	mov    0x408248,%esi
4055ac:	81 ff 11 01 00 00    	cmp    $0x111,%edi
4055b2:	75 20                	jne    0x4055d4
4055b4:	66 81 7d 10 03 04    	cmpw   $0x403,0x10(%ebp)
4055ba:	75 39                	jne    0x4055f5
4055bc:	53                   	push   %ebx
4055bd:	ff 35 f0 eb 42 00    	push   0x42ebf0
4055c3:	ff d6                	call   *%esi
4055c5:	6a 08                	push   $0x8
4055c7:	ff 75 fc             	push   -0x4(%ebp)
4055ca:	ff d6                	call   *%esi
4055cc:	ff 75 fc             	push   -0x4(%ebp)
4055cf:	e8 55 ec ff ff       	call   0x404229
4055d4:	81 ff 04 04 00 00    	cmp    $0x404,%edi
4055da:	75 53                	jne    0x40562f
4055dc:	39 1d ec eb 42 00    	cmp    %ebx,0x42ebec
4055e2:	74 24                	je     0x405608
4055e4:	6a 78                	push   $0x78
4055e6:	c7 05 68 9c 42 00 02 	movl   $0x2,0x429c68
4055ed:	00 00 00
4055f0:	e8 d8 eb ff ff       	call   0x4041cd
4055f5:	ff 75 14             	push   0x14(%ebp)
4055f8:	ff 75 10             	push   0x10(%ebp)
4055fb:	57                   	push   %edi
4055fc:	e8 5a ec ff ff       	call   0x40425b
405601:	5f                   	pop    %edi
405602:	5e                   	pop    %esi
405603:	5b                   	pop    %ebx
405604:	c9                   	leave
405605:	c2 10 00             	ret    $0x10
405608:	6a 08                	push   $0x8
40560a:	ff 35 28 f4 42 00    	push   0x42f428
405610:	ff d6                	call   *%esi
405612:	39 1d cc f4 42 00    	cmp    %ebx,0x42f4cc
405618:	75 0e                	jne    0x405628
40561a:	a1 70 a0 42 00       	mov    0x42a070,%eax
40561f:	53                   	push   %ebx
405620:	ff 70 34             	push   0x34(%eax)
405623:	e8 65 fc ff ff       	call   0x40528d
405628:	6a 01                	push   $0x1
40562a:	e8 9e eb ff ff       	call   0x4041cd
40562f:	83 ff 7b             	cmp    $0x7b,%edi
405632:	75 c1                	jne    0x4055f5
405634:	8b 45 fc             	mov    -0x4(%ebp),%eax
405637:	39 45 10             	cmp    %eax,0x10(%ebp)
40563a:	75 b9                	jne    0x4055f5
40563c:	53                   	push   %ebx
40563d:	53                   	push   %ebx
40563e:	68 04 10 00 00       	push   $0x1004
405643:	50                   	push   %eax
405644:	ff 15 00 82 40 00    	call   *0x408200
40564a:	3b c3                	cmp    %ebx,%eax
40564c:	89 45 10             	mov    %eax,0x10(%ebp)
40564f:	0f 8e f7 00 00 00    	jle    0x40574c
405655:	ff 15 64 82 40 00    	call   *0x408264
40565b:	6a e1                	push   $0xffffffe1
40565d:	53                   	push   %ebx
40565e:	8b f0                	mov    %eax,%esi
405660:	e8 23 0b 00 00       	call   0x406188
405665:	50                   	push   %eax
405666:	6a 01                	push   $0x1
405668:	53                   	push   %ebx
405669:	56                   	push   %esi
40566a:	ff 15 5c 82 40 00    	call   *0x40825c
405670:	8b 4d 14             	mov    0x14(%ebp),%ecx
405673:	0f bf 45 14          	movswl 0x14(%ebp),%eax
405677:	c1 e9 10             	shr    $0x10,%ecx
40567a:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
40567e:	0f bf c9             	movswl %cx,%ecx
405681:	75 13                	jne    0x405696
405683:	8d 45 ec             	lea    -0x14(%ebp),%eax
405686:	50                   	push   %eax
405687:	ff 75 fc             	push   -0x4(%ebp)
40568a:	ff 15 cc 81 40 00    	call   *0x4081cc
405690:	8b 45 ec             	mov    -0x14(%ebp),%eax
405693:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405696:	53                   	push   %ebx
405697:	ff 75 08             	push   0x8(%ebp)
40569a:	53                   	push   %ebx
40569b:	51                   	push   %ecx
40569c:	50                   	push   %eax
40569d:	68 80 01 00 00       	push   $0x180
4056a2:	56                   	push   %esi
4056a3:	ff 15 60 82 40 00    	call   *0x408260
4056a9:	83 f8 01             	cmp    $0x1,%eax
4056ac:	0f 85 9a 00 00 00    	jne    0x40574c
4056b2:	8b 45 10             	mov    0x10(%ebp),%eax
4056b5:	33 f6                	xor    %esi,%esi
4056b7:	46                   	inc    %esi
4056b8:	89 5d cc             	mov    %ebx,-0x34(%ebp)
4056bb:	c7 45 d8 98 a8 42 00 	movl   $0x42a898,-0x28(%ebp)
4056c2:	c7 45 dc 00 10 00 00 	movl   $0x1000,-0x24(%ebp)
4056c9:	89 45 08             	mov    %eax,0x8(%ebp)
4056cc:	bf 2d 10 00 00       	mov    $0x102d,%edi
4056d1:	ff 4d 08             	decl   0x8(%ebp)
4056d4:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4056d7:	50                   	push   %eax
4056d8:	ff 75 08             	push   0x8(%ebp)
4056db:	57                   	push   %edi
4056dc:	ff 75 fc             	push   -0x4(%ebp)
4056df:	ff 15 00 82 40 00    	call   *0x408200
4056e5:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4056e8:	8d 74 06 02          	lea    0x2(%esi,%eax,1),%esi
4056ec:	75 e3                	jne    0x4056d1
4056ee:	53                   	push   %ebx
4056ef:	ff 15 c4 81 40 00    	call   *0x4081c4
4056f5:	ff 15 c0 81 40 00    	call   *0x4081c0
4056fb:	56                   	push   %esi
4056fc:	6a 42                	push   $0x42
4056fe:	ff 15 58 81 40 00    	call   *0x408158
405704:	50                   	push   %eax
405705:	89 45 08             	mov    %eax,0x8(%ebp)
405708:	ff 15 b8 80 40 00    	call   *0x4080b8
40570e:	8b f0                	mov    %eax,%esi
405710:	8d 45 c4             	lea    -0x3c(%ebp),%eax
405713:	89 75 d8             	mov    %esi,-0x28(%ebp)
405716:	50                   	push   %eax
405717:	53                   	push   %ebx
405718:	57                   	push   %edi
405719:	ff 75 fc             	push   -0x4(%ebp)
40571c:	ff 15 00 82 40 00    	call   *0x408200
405722:	03 f0                	add    %eax,%esi
405724:	c6 06 0d             	movb   $0xd,(%esi)
405727:	46                   	inc    %esi
405728:	c6 06 0a             	movb   $0xa,(%esi)
40572b:	46                   	inc    %esi
40572c:	43                   	inc    %ebx
40572d:	3b 5d 10             	cmp    0x10(%ebp),%ebx
405730:	7c de                	jl     0x405710
405732:	ff 75 08             	push   0x8(%ebp)
405735:	ff 15 1c 81 40 00    	call   *0x40811c
40573b:	ff 75 08             	push   0x8(%ebp)
40573e:	6a 01                	push   $0x1
405740:	ff 15 bc 81 40 00    	call   *0x4081bc
405746:	ff 15 b8 81 40 00    	call   *0x4081b8
40574c:	33 c0                	xor    %eax,%eax
40574e:	e9 ae fe ff ff       	jmp    0x405601
405753:	55                   	push   %ebp
405754:	8b ec                	mov    %esp,%ebp
405756:	83 ec 20             	sub    $0x20,%esp
405759:	b8 7c 83 40 00       	mov    $0x40837c,%eax
40575e:	80 65 e1 00          	andb   $0x0,-0x1f(%ebp)
405762:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405765:	89 45 e8             	mov    %eax,-0x18(%ebp)
405768:	8d 45 e0             	lea    -0x20(%ebp),%eax
40576b:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40576f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405773:	89 45 f8             	mov    %eax,-0x8(%ebp)
405776:	8d 45 f4             	lea    -0xc(%ebp),%eax
405779:	56                   	push   %esi
40577a:	50                   	push   %eax
40577b:	c6 45 e0 01          	movb   $0x1,-0x20(%ebp)
40577f:	ff 75 08             	push   0x8(%ebp)
405782:	66 c7 45 e2 04 00    	movw   $0x4,-0x1e(%ebp)
405788:	c7 45 f0 6c 83 40 00 	movl   $0x40836c,-0x10(%ebp)
40578f:	c7 45 f4 0c 00 00 00 	movl   $0xc,-0xc(%ebp)
405796:	ff 15 c4 80 40 00    	call   *0x4080c4
40579c:	85 c0                	test   %eax,%eax
40579e:	74 04                	je     0x4057a4
4057a0:	33 c0                	xor    %eax,%eax
4057a2:	eb 27                	jmp    0x4057cb
4057a4:	8b 35 c0 80 40 00    	mov    0x4080c0,%esi
4057aa:	ff d6                	call   *%esi
4057ac:	3d b7 00 00 00       	cmp    $0xb7,%eax
4057b1:	75 18                	jne    0x4057cb
4057b3:	8d 45 e0             	lea    -0x20(%ebp),%eax
4057b6:	50                   	push   %eax
4057b7:	68 07 00 00 80       	push   $0x80000007
4057bc:	ff 75 08             	push   0x8(%ebp)
4057bf:	ff 15 0c 80 40 00    	call   *0x40800c
4057c5:	85 c0                	test   %eax,%eax
4057c7:	75 d7                	jne    0x4057a0
4057c9:	ff d6                	call   *%esi
4057cb:	5e                   	pop    %esi
4057cc:	c9                   	leave
4057cd:	c2 04 00             	ret    $0x4
4057d0:	6a 00                	push   $0x0
4057d2:	ff 74 24 08          	push   0x8(%esp)
4057d6:	ff 15 c4 80 40 00    	call   *0x4080c4
4057dc:	85 c0                	test   %eax,%eax
4057de:	74 04                	je     0x4057e4
4057e0:	33 c0                	xor    %eax,%eax
4057e2:	eb 06                	jmp    0x4057ea
4057e4:	ff 15 c0 80 40 00    	call   *0x4080c0
4057ea:	c2 04 00             	ret    $0x4
4057ed:	6a 05                	push   $0x5
4057ef:	e8 0a 0d 00 00       	call   0x4064fe
4057f4:	85 c0                	test   %eax,%eax
4057f6:	74 0a                	je     0x405802
4057f8:	ff d0                	call   *%eax
4057fa:	85 c0                	test   %eax,%eax
4057fc:	74 04                	je     0x405802
4057fe:	33 c0                	xor    %eax,%eax
405800:	40                   	inc    %eax
405801:	c3                   	ret
405802:	33 c0                	xor    %eax,%eax
405804:	c3                   	ret
405805:	55                   	push   %ebp
405806:	8b ec                	mov    %esp,%ebp
405808:	83 ec 10             	sub    $0x10,%esp
40580b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40580e:	c7 05 a0 c0 42 00 44 	movl   $0x44,0x42c0a0
405815:	00 00 00
405818:	50                   	push   %eax
405819:	33 c0                	xor    %eax,%eax
40581b:	68 a0 c0 42 00       	push   $0x42c0a0
405820:	50                   	push   %eax
405821:	50                   	push   %eax
405822:	68 00 00 00 04       	push   $0x4000000
405827:	50                   	push   %eax
405828:	50                   	push   %eax
405829:	50                   	push   %eax
40582a:	ff 75 08             	push   0x8(%ebp)
40582d:	50                   	push   %eax
40582e:	ff 15 c8 80 40 00    	call   *0x4080c8
405834:	85 c0                	test   %eax,%eax
405836:	74 0c                	je     0x405844
405838:	ff 75 f4             	push   -0xc(%ebp)
40583b:	ff 15 14 81 40 00    	call   *0x408114
405841:	8b 45 f0             	mov    -0x10(%ebp),%eax
405844:	c9                   	leave
405845:	c2 04 00             	ret    $0x4
405848:	8b 44 24 04          	mov    0x4(%esp),%eax
40584c:	50                   	push   %eax
40584d:	83 60 24 00          	andl   $0x0,0x24(%eax)
405851:	c7 00 3c 00 00 00    	movl   $0x3c,(%eax)
405857:	ff 15 6c 81 40 00    	call   *0x40816c
40585d:	c2 04 00             	ret    $0x4
405860:	ff 25 d8 81 40 00    	jmp    *0x4081d8
405866:	68 00 04 00 00       	push   $0x400
40586b:	ff 74 24 0c          	push   0xc(%esp)
40586f:	ff 74 24 0c          	push   0xc(%esp)
405873:	ff 35 f8 eb 42 00    	push   0x42ebf8
405879:	ff 15 dc 81 40 00    	call   *0x4081dc
40587f:	c2 08 00             	ret    $0x8
405882:	8b 44 24 08          	mov    0x8(%esp),%eax
405886:	8b c8                	mov    %eax,%ecx
405888:	81 e1 ff ff 1f 00    	and    $0x1fffff,%ecx
40588e:	83 3d e0 f4 42 00 00 	cmpl   $0x0,0x42f4e0
405895:	74 05                	je     0x40589c
405897:	c1 e8 15             	shr    $0x15,%eax
40589a:	75 47                	jne    0x4058e3
40589c:	83 3d e8 f4 42 00 00 	cmpl   $0x0,0x42f4e8
4058a3:	74 06                	je     0x4058ab
4058a5:	81 f1 00 00 18 00    	xor    $0x180000,%ecx
4058ab:	a1 28 f4 42 00       	mov    0x42f428,%eax
4058b0:	68 30 a2 40 00       	push   $0x40a230
4058b5:	a3 34 a2 40 00       	mov    %eax,0x40a234
4058ba:	a1 20 f4 42 00       	mov    0x42f420,%eax
4058bf:	a3 38 a2 40 00       	mov    %eax,0x40a238
4058c4:	8b 44 24 08          	mov    0x8(%esp),%eax
4058c8:	a3 3c a2 40 00       	mov    %eax,0x40a23c
4058cd:	c7 05 40 a2 40 00 20 	movl   $0x42ec20,0x40a240
4058d4:	ec 42 00
4058d7:	89 0d 44 a2 40 00    	mov    %ecx,0x40a244
4058dd:	ff 15 e0 81 40 00    	call   *0x4081e0
4058e3:	c2 08 00             	ret    $0x8
4058e6:	56                   	push   %esi
4058e7:	8b 74 24 08          	mov    0x8(%esp),%esi
4058eb:	57                   	push   %edi
4058ec:	56                   	push   %esi
4058ed:	e8 e8 03 00 00       	call   0x405cda
4058f2:	8b f8                	mov    %eax,%edi
4058f4:	83 ff ff             	cmp    $0xffffffff,%edi
4058f7:	74 2e                	je     0x405927
4058f9:	f6 44 24 10 01       	testb  $0x1,0x10(%esp)
4058fe:	56                   	push   %esi
4058ff:	74 08                	je     0x405909
405901:	ff 15 cc 80 40 00    	call   *0x4080cc
405907:	eb 06                	jmp    0x40590f
405909:	ff 15 28 81 40 00    	call   *0x408128
40590f:	85 c0                	test   %eax,%eax
405911:	74 05                	je     0x405918
405913:	33 c0                	xor    %eax,%eax
405915:	40                   	inc    %eax
405916:	eb 11                	jmp    0x405929
405918:	f6 44 24 10 04       	testb  $0x4,0x10(%esp)
40591d:	75 08                	jne    0x405927
40591f:	57                   	push   %edi
405920:	56                   	push   %esi
405921:	ff 15 b4 80 40 00    	call   *0x4080b4
405927:	33 c0                	xor    %eax,%eax
405929:	5f                   	pop    %edi
40592a:	5e                   	pop    %esi
40592b:	c2 08 00             	ret    $0x8
40592e:	55                   	push   %ebp
40592f:	8b ec                	mov    %esp,%ebp
405931:	81 ec 4c 01 00 00    	sub    $0x14c,%esp
405937:	53                   	push   %ebx
405938:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40593b:	56                   	push   %esi
40593c:	57                   	push   %edi
40593d:	8b 7d 08             	mov    0x8(%ebp),%edi
405940:	8b c3                	mov    %ebx,%eax
405942:	83 e0 04             	and    $0x4,%eax
405945:	57                   	push   %edi
405946:	89 45 fc             	mov    %eax,-0x4(%ebp)
405949:	e8 9e 02 00 00       	call   0x405bec
40594e:	f6 c3 08             	test   $0x8,%bl
405951:	89 45 f4             	mov    %eax,-0xc(%ebp)
405954:	74 17                	je     0x40596d
405956:	57                   	push   %edi
405957:	ff 15 28 81 40 00    	call   *0x408128
40595d:	f7 d8                	neg    %eax
40595f:	1b c0                	sbb    %eax,%eax
405961:	40                   	inc    %eax
405962:	01 05 c8 f4 42 00    	add    %eax,0x42f4c8
405968:	e9 8a 01 00 00       	jmp    0x405af7
40596d:	89 5d 08             	mov    %ebx,0x8(%ebp)
405970:	83 65 08 01          	andl   $0x1,0x8(%ebp)
405974:	74 11                	je     0x405987
405976:	85 c0                	test   %eax,%eax
405978:	0f 84 27 01 00 00    	je     0x405aa5
40597e:	f6 c3 02             	test   $0x2,%bl
405981:	0f 84 1e 01 00 00    	je     0x405aa5
405987:	be a0 b8 42 00       	mov    $0x42b8a0,%esi
40598c:	57                   	push   %edi
40598d:	56                   	push   %esi
40598e:	e8 d3 07 00 00       	call   0x406166
405993:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405997:	74 0d                	je     0x4059a6
405999:	68 c4 a3 40 00       	push   $0x40a3c4
40599e:	56                   	push   %esi
40599f:	e8 de 07 00 00       	call   0x406182
4059a4:	eb 06                	jmp    0x4059ac