4045f3:	ff 15 38 22 41 00    	call   *0x412238
4045f9:	8b 40 04             	mov    0x4(%eax),%eax
4045fc:	50                   	push   %eax
4045fd:	8b ce                	mov    %esi,%ecx
4045ff:	ff 15 18 22 41 00    	call   *0x412218
404605:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
40460b:	8b ce                	mov    %esi,%ecx
40460d:	ff 15 38 22 41 00    	call   *0x412238
404613:	8b 40 04             	mov    0x4(%eax),%eax
404616:	50                   	push   %eax
404617:	8b ce                	mov    %esi,%ecx
404619:	ff 15 18 22 41 00    	call   *0x412218
40461f:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
404625:	6a 21                	push   $0x21
404627:	8d 45 84             	lea    -0x7c(%ebp),%eax
40462a:	50                   	push   %eax
40462b:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
404631:	50                   	push   %eax
404632:	ff 75 80             	push   -0x80(%ebp)
404635:	57                   	push   %edi
404636:	68 00 04 00 00       	push   $0x400
40463b:	ff 15 40 20 41 00    	call   *0x412040
404641:	8d 45 84             	lea    -0x7c(%ebp),%eax
404644:	50                   	push   %eax
404645:	b9 fd 00 00 00       	mov    $0xfd,%ecx
40464a:	e8 02 54 00 00       	call   0x409a51
40464f:	50                   	push   %eax
404650:	8d 45 80             	lea    -0x80(%ebp),%eax
404653:	50                   	push   %eax
404654:	ff 15 04 22 41 00    	call   *0x412204
40465a:	59                   	pop    %ecx
40465b:	59                   	pop    %ecx
40465c:	ff 75 80             	push   -0x80(%ebp)
40465f:	6a 05                	push   $0x5
404661:	8b 55 08             	mov    0x8(%ebp),%edx
404664:	8b 8b 80 00 00 00    	mov    0x80(%ebx),%ecx
40466a:	e8 7b 4c 00 00       	call   0x4092ea
40466f:	89 7d fc             	mov    %edi,-0x4(%ebp)
404672:	eb 1a                	jmp    0x40468e
404674:	68 0e 00 07 80       	push   $0x8007000e
404679:	ff 15 74 20 41 00    	call   *0x412074
40467f:	e8 70 51 00 00       	call   0x4097f4
404684:	b8 8a 46 40 00       	mov    $0x40468a,%eax
404689:	c3                   	ret
40468a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40468e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404692:	8d 4d 80             	lea    -0x80(%ebp),%ecx
404695:	ff 15 30 22 41 00    	call   *0x412230
40469b:	e8 6d ac 00 00       	call   0x40f30d
4046a0:	c2 08 00             	ret    $0x8
4046a3:	6a 70                	push   $0x70
4046a5:	b8 47 f7 40 00       	mov    $0x40f747,%eax
4046aa:	e8 d6 ac 00 00       	call   0x40f385
4046af:	8b f9                	mov    %ecx,%edi
4046b1:	89 7d bc             	mov    %edi,-0x44(%ebp)
4046b4:	89 7d 90             	mov    %edi,-0x70(%ebp)
4046b7:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4046ba:	ff 15 f8 21 41 00    	call   *0x4121f8
4046c0:	33 db                	xor    %ebx,%ebx
4046c2:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4046c5:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4046c8:	ff 15 f8 21 41 00    	call   *0x4121f8
4046ce:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4046d2:	89 5d a8             	mov    %ebx,-0x58(%ebp)
4046d5:	89 5d ac             	mov    %ebx,-0x54(%ebp)
4046d8:	89 5d c0             	mov    %ebx,-0x40(%ebp)
4046db:	39 5f 44             	cmp    %ebx,0x44(%edi)
4046de:	0f 84 87 02 00 00    	je     0x40496b
4046e4:	e8 91 43 00 00       	call   0x408a7a
4046e9:	8b c8                	mov    %eax,%ecx
4046eb:	89 4d b0             	mov    %ecx,-0x50(%ebp)
4046ee:	85 c9                	test   %ecx,%ecx
4046f0:	75 15                	jne    0x404707
4046f2:	68 0e 00 07 80       	push   $0x8007000e
4046f7:	ff 15 74 20 41 00    	call   *0x412074
4046fd:	e8 f2 50 00 00       	call   0x4097f4
404702:	e9 64 02 00 00       	jmp    0x40496b
404707:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40470b:	39 9f ac 00 00 00    	cmp    %ebx,0xac(%edi)
404711:	74 3e                	je     0x404751
404713:	8b f3                	mov    %ebx,%esi
404715:	89 75 a4             	mov    %esi,-0x5c(%ebp)
404718:	3b b7 a8 00 00 00    	cmp    0xa8(%edi),%esi
40471e:	0f 83 0e 02 00 00    	jae    0x404932
404724:	6b d6 2c             	imul   $0x2c,%esi,%edx
404727:	8b 87 84 00 00 00    	mov    0x84(%edi),%eax
40472d:	8b bf ac 00 00 00    	mov    0xac(%edi),%edi
404733:	3b 44 3a 24          	cmp    0x24(%edx,%edi,1),%eax
404737:	8b 7d bc             	mov    -0x44(%ebp),%edi
40473a:	75 12                	jne    0x40474e
40473c:	51                   	push   %ecx
40473d:	8b 87 ac 00 00 00    	mov    0xac(%edi),%eax
404743:	8b 14 02             	mov    (%edx,%eax,1),%edx
404746:	e8 b4 43 00 00       	call   0x408aff
40474b:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40474e:	46                   	inc    %esi
40474f:	eb c4                	jmp    0x404715
404751:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
404755:	8b c3                	mov    %ebx,%eax
404757:	89 45 a0             	mov    %eax,-0x60(%ebp)
40475a:	83 f8 0a             	cmp    $0xa,%eax
40475d:	73 07                	jae    0x404766
40475f:	89 5c 85 c4          	mov    %ebx,-0x3c(%ebp,%eax,4)
404763:	40                   	inc    %eax
404764:	eb f1                	jmp    0x404757
404766:	ff b7 84 00 00 00    	push   0x84(%edi)
40476c:	68 50 15 40 00       	push   $0x401550
404771:	8d 45 b4             	lea    -0x4c(%ebp),%eax
404774:	50                   	push   %eax
404775:	ff 15 04 22 41 00    	call   *0x412204
40477b:	83 c4 0c             	add    $0xc,%esp
40477e:	ff 75 b4             	push   -0x4c(%ebp)
404781:	8d 4d 98             	lea    -0x68(%ebp),%ecx
404784:	e8 50 12 00 00       	call   0x4059d9
404789:	8b f0                	mov    %eax,%esi
40478b:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40478f:	68 e0 15 40 00       	push   $0x4015e0
404794:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
404797:	e8 3d 12 00 00       	call   0x4059d9
40479c:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4047a0:	8b 0e                	mov    (%esi),%ecx
4047a2:	85 c9                	test   %ecx,%ecx
4047a4:	74 04                	je     0x4047aa
4047a6:	8b 11                	mov    (%ecx),%edx
4047a8:	eb 02                	jmp    0x4047ac
4047aa:	8b d3                	mov    %ebx,%edx
4047ac:	8b 00                	mov    (%eax),%eax
4047ae:	85 c0                	test   %eax,%eax
4047b0:	74 04                	je     0x4047b6
4047b2:	8b 08                	mov    (%eax),%ecx
4047b4:	eb 02                	jmp    0x4047b8
4047b6:	8b cb                	mov    %ebx,%ecx
4047b8:	8b 47 04             	mov    0x4(%edi),%eax
4047bb:	8b 30                	mov    (%eax),%esi
4047bd:	8d 7d c0             	lea    -0x40(%ebp),%edi
4047c0:	57                   	push   %edi
4047c1:	53                   	push   %ebx
4047c2:	6a 30                	push   $0x30
4047c4:	52                   	push   %edx
4047c5:	51                   	push   %ecx
4047c6:	50                   	push   %eax
4047c7:	8b 4e 50             	mov    0x50(%esi),%ecx
4047ca:	ff 15 20 23 41 00    	call   *0x412320
4047d0:	ff 56 50             	call   *0x50(%esi)
4047d3:	8b f0                	mov    %eax,%esi
4047d5:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
4047d9:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
4047dc:	e8 6e 11 00 00       	call   0x40594f
4047e1:	8b 7d bc             	mov    -0x44(%ebp),%edi
4047e4:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
4047e8:	8d 4d 98             	lea    -0x68(%ebp),%ecx
4047eb:	e8 5f 11 00 00       	call   0x40594f
4047f0:	85 f6                	test   %esi,%esi
4047f2:	0f 88 94 01 00 00    	js     0x40498c
4047f8:	8b 57 0c             	mov    0xc(%edi),%edx
4047fb:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4047fe:	e8 c6 2d 00 00       	call   0x4075c9
404803:	85 c0                	test   %eax,%eax
404805:	79 07                	jns    0x40480e
404807:	8b c8                	mov    %eax,%ecx
404809:	e9 80 01 00 00       	jmp    0x40498e
40480e:	8b 45 c0             	mov    -0x40(%ebp),%eax
404811:	8b 30                	mov    (%eax),%esi
404813:	8d 4d a8             	lea    -0x58(%ebp),%ecx
404816:	51                   	push   %ecx
404817:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40481a:	51                   	push   %ecx
40481b:	6a 0a                	push   $0xa
40481d:	6a ff                	push   $0xffffffff
40481f:	50                   	push   %eax
404820:	8b 4e 10             	mov    0x10(%esi),%ecx
404823:	ff 15 20 23 41 00    	call   *0x412320
404829:	ff 56 10             	call   *0x10(%esi)
40482c:	83 f8 01             	cmp    $0x1,%eax
40482f:	75 08                	jne    0x404839
404831:	89 45 ac             	mov    %eax,-0x54(%ebp)
404834:	89 45 88             	mov    %eax,-0x78(%ebp)
404837:	eb 0b                	jmp    0x404844
404839:	3d 04 00 04 00       	cmp    $0x40004,%eax
40483e:	74 65                	je     0x4048a5
404840:	85 c0                	test   %eax,%eax
404842:	78 61                	js     0x4048a5
404844:	8b fb                	mov    %ebx,%edi
404846:	89 7d 94             	mov    %edi,-0x6c(%ebp)
404849:	3b 7d a8             	cmp    -0x58(%ebp),%edi
40484c:	73 4d                	jae    0x40489b
40484e:	b9 8d 13 00 00       	mov    $0x138d,%ecx
404853:	e8 f9 51 00 00       	call   0x409a51
404858:	50                   	push   %eax
404859:	8d 45 b8             	lea    -0x48(%ebp),%eax
40485c:	50                   	push   %eax
40485d:	ba e8 15 40 00       	mov    $0x4015e8,%edx
404862:	8b 4c bd c4          	mov    -0x3c(%ebp,%edi,4),%ecx
404866:	e8 57 33 00 00       	call   0x407bc2
40486b:	83 f8 01             	cmp    $0x1,%eax
40486e:	75 0c                	jne    0x40487c
404870:	51                   	push   %ecx
404871:	8b 55 b8             	mov    -0x48(%ebp),%edx
404874:	8b 4d b0             	mov    -0x50(%ebp),%ecx
404877:	e8 83 42 00 00       	call   0x408aff
40487c:	8b 4c bd c4          	mov    -0x3c(%ebp,%edi,4),%ecx
404880:	85 c9                	test   %ecx,%ecx
404882:	74 14                	je     0x404898
404884:	8b 01                	mov    (%ecx),%eax
404886:	51                   	push   %ecx
404887:	8b 70 08             	mov    0x8(%eax),%esi
40488a:	8b ce                	mov    %esi,%ecx
40488c:	ff 15 20 23 41 00    	call   *0x412320
404892:	ff d6                	call   *%esi
404894:	89 5c bd c4          	mov    %ebx,-0x3c(%ebp,%edi,4)
404898:	47                   	inc    %edi
404899:	eb ab                	jmp    0x404846
40489b:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
40489f:	0f 84 69 ff ff ff    	je     0x40480e
4048a5:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4048ac:	eb 3b                	jmp    0x4048e9
4048ae:	8b 4d c0             	mov    -0x40(%ebp),%ecx
4048b1:	85 c9                	test   %ecx,%ecx
4048b3:	74 14                	je     0x4048c9
4048b5:	8b 01                	mov    (%ecx),%eax
4048b7:	51                   	push   %ecx
4048b8:	8b 70 08             	mov    0x8(%eax),%esi
4048bb:	8b ce                	mov    %esi,%ecx
4048bd:	ff 15 20 23 41 00    	call   *0x412320
4048c3:	ff d6                	call   *%esi
4048c5:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
4048c9:	8b 45 84             	mov    -0x7c(%ebp),%eax
4048cc:	8b 48 04             	mov    0x4(%eax),%ecx
4048cf:	e8 36 30 00 00       	call   0x40790a
4048d4:	b8 da 48 40 00       	mov    $0x4048da,%eax
4048d9:	c3                   	ret
4048da:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4048e1:	33 db                	xor    %ebx,%ebx
4048e3:	8b 45 90             	mov    -0x70(%ebp),%eax
4048e6:	89 45 bc             	mov    %eax,-0x44(%ebp)
4048e9:	8b fb                	mov    %ebx,%edi
4048eb:	89 7d 8c             	mov    %edi,-0x74(%ebp)
4048ee:	83 ff 0a             	cmp    $0xa,%edi
4048f1:	73 1f                	jae    0x404912
4048f3:	8b 4c bd c4          	mov    -0x3c(%ebp,%edi,4),%ecx
4048f7:	85 c9                	test   %ecx,%ecx
4048f9:	74 14                	je     0x40490f
4048fb:	8b 01                	mov    (%ecx),%eax
4048fd:	51                   	push   %ecx
4048fe:	8b 70 08             	mov    0x8(%eax),%esi
404901:	8b ce                	mov    %esi,%ecx
404903:	ff 15 20 23 41 00    	call   *0x412320
404909:	ff d6                	call   *%esi
40490b:	89 5c bd c4          	mov    %ebx,-0x3c(%ebp,%edi,4)
40490f:	47                   	inc    %edi
404910:	eb d9                	jmp    0x4048eb
404912:	8b 4d c0             	mov    -0x40(%ebp),%ecx
404915:	85 c9                	test   %ecx,%ecx
404917:	74 13                	je     0x40492c
404919:	8b 01                	mov    (%ecx),%eax
40491b:	51                   	push   %ecx
40491c:	8b 70 08             	mov    0x8(%eax),%esi
40491f:	8b ce                	mov    %esi,%ecx
404921:	ff 15 20 23 41 00    	call   *0x412320
404927:	ff d6                	call   *%esi
404929:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40492c:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40492f:	8b 7d bc             	mov    -0x44(%ebp),%edi
404932:	51                   	push   %ecx
404933:	6a 0a                	push   $0xa
404935:	8b 55 08             	mov    0x8(%ebp),%edx
404938:	8b 8f 80 00 00 00    	mov    0x80(%edi),%ecx
40493e:	e8 b1 4a 00 00       	call   0x4093f4
404943:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40494a:	eb 1f                	jmp    0x40496b
40494c:	68 0e 00 07 80       	push   $0x8007000e
404951:	ff 15 74 20 41 00    	call   *0x412074
404957:	e8 98 4e 00 00       	call   0x4097f4
40495c:	b8 62 49 40 00       	mov    $0x404962,%eax
404961:	c3                   	ret
404962:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
404969:	33 db                	xor    %ebx,%ebx
40496b:	88 5d fc             	mov    %bl,-0x4(%ebp)
40496e:	8d 4d b8             	lea    -0x48(%ebp),%ecx
404971:	ff 15 30 22 41 00    	call   *0x412230
404977:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40497b:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40497e:	ff 15 30 22 41 00    	call   *0x412230
404984:	e8 84 a9 00 00       	call   0x40f30d
404989:	c2 04 00             	ret    $0x4
40498c:	8b ce                	mov    %esi,%ecx
40498e:	e8 8e 3d 00 00       	call   0x408721
404993:	cc                   	int3
404994:	6a 04                	push   $0x4
404996:	b8 6c f7 40 00       	mov    $0x40f76c,%eax
40499b:	e8 af a9 00 00       	call   0x40f34f
4049a0:	8b f1                	mov    %ecx,%esi
4049a2:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
4049a6:	75 08                	jne    0x4049b0
4049a8:	33 c0                	xor    %eax,%eax
4049aa:	40                   	inc    %eax
4049ab:	e9 8b 00 00 00       	jmp    0x404a3b
4049b0:	e8 c5 40 00 00       	call   0x408a7a
4049b5:	8b f8                	mov    %eax,%edi
4049b7:	85 ff                	test   %edi,%edi
4049b9:	75 14                	jne    0x4049cf
4049bb:	68 0e 00 07 80       	push   $0x8007000e
4049c0:	ff 15 74 20 41 00    	call   *0x412074
4049c6:	e8 29 4e 00 00       	call   0x4097f4
4049cb:	33 c0                	xor    %eax,%eax
4049cd:	eb 6c                	jmp    0x404a3b
4049cf:	83 be d8 00 00 00 01 	cmpl   $0x1,0xd8(%esi)
4049d6:	75 13                	jne    0x4049eb
4049d8:	83 be b0 00 00 00 00 	cmpl   $0x0,0xb0(%esi)
4049df:	75 0a                	jne    0x4049eb
4049e1:	57                   	push   %edi
4049e2:	8b ce                	mov    %esi,%ecx
4049e4:	e8 6f 02 00 00       	call   0x404c58
4049e9:	eb 0b                	jmp    0x4049f6
4049eb:	57                   	push   %edi
4049ec:	ff 75 08             	push   0x8(%ebp)
4049ef:	8b ce                	mov    %esi,%ecx
4049f1:	e8 40 03 00 00       	call   0x404d36
4049f6:	8b d8                	mov    %eax,%ebx
4049f8:	83 fb 01             	cmp    $0x1,%ebx
4049fb:	75 27                	jne    0x404a24
4049fd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404a01:	6a 00                	push   $0x0
404a03:	50                   	push   %eax
404a04:	ff b6 88 00 00 00    	push   0x88(%esi)
404a0a:	ba 00 00 02 00       	mov    $0x20000,%edx
404a0f:	8b cf                	mov    %edi,%ecx
404a11:	e8 0b 3f 00 00       	call   0x408921
404a16:	83 f8 ff             	cmp    $0xffffffff,%eax
404a19:	74 09                	je     0x404a24
404a1b:	8b d0                	mov    %eax,%edx
404a1d:	8b cf                	mov    %edi,%ecx
404a1f:	e8 44 43 00 00       	call   0x408d68
404a24:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404a28:	57                   	push   %edi
404a29:	6a 0b                	push   $0xb
404a2b:	8b 55 08             	mov    0x8(%ebp),%edx
404a2e:	8b 8e 80 00 00 00    	mov    0x80(%esi),%ecx
404a34:	e8 bb 49 00 00       	call   0x4093f4
404a39:	8b c3                	mov    %ebx,%eax
404a3b:	e8 b9 a8 00 00       	call   0x40f2f9
404a40:	c2 04 00             	ret    $0x4
404a43:	68 0e 00 07 80       	push   $0x8007000e
404a48:	ff 15 74 20 41 00    	call   *0x412074
404a4e:	e8 a1 4d 00 00       	call   0x4097f4
404a53:	b8 59 4a 40 00       	mov    $0x404a59,%eax
404a58:	c3                   	ret
404a59:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404a5d:	e9 69 ff ff ff       	jmp    0x4049cb
404a62:	68 c8 01 00 00       	push   $0x1c8