403684:	53                   	push   %ebx
403685:	68 80 c0 40 00       	push   $0x40c080
40368a:	e8 d1 fe ff ff       	call   0x403560
40368f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403692:	5f                   	pop    %edi
403693:	5e                   	pop    %esi
403694:	33 cd                	xor    %ebp,%ecx
403696:	5b                   	pop    %ebx
403697:	e8 c4 61 00 00       	call   0x409860
40369c:	c9                   	leave
40369d:	c2 18 00             	ret    $0x18
4036a0:	8b ff                	mov    %edi,%edi
4036a2:	55                   	push   %ebp
4036a3:	8b ec                	mov    %esp,%ebp
4036a5:	8b 45 28             	mov    0x28(%ebp),%eax
4036a8:	85 c0                	test   %eax,%eax
4036aa:	74 6b                	je     0x403717
4036ac:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4036af:	8b 55 10             	mov    0x10(%ebp),%edx
4036b2:	53                   	push   %ebx
4036b3:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4036b6:	57                   	push   %edi
4036b7:	8b 7d 20             	mov    0x20(%ebp),%edi
4036ba:	83 e9 00             	sub    $0x0,%ecx
4036bd:	74 2a                	je     0x4036e9
4036bf:	83 e9 01             	sub    $0x1,%ecx
4036c2:	75 28                	jne    0x4036ec
4036c4:	84 d2                	test   %dl,%dl
4036c6:	74 06                	je     0x4036ce
4036c8:	0f b6 ca             	movzbl %dl,%ecx
4036cb:	41                   	inc    %ecx
4036cc:	eb 05                	jmp    0x4036d3
4036ce:	b9 00 01 00 00       	mov    $0x100,%ecx
4036d3:	89 08                	mov    %ecx,(%eax)
4036d5:	8b 4d 14             	mov    0x14(%ebp),%ecx
4036d8:	89 48 08             	mov    %ecx,0x8(%eax)
4036db:	8b 4d 18             	mov    0x18(%ebp),%ecx
4036de:	89 48 0c             	mov    %ecx,0xc(%eax)
4036e1:	89 58 10             	mov    %ebx,0x10(%eax)
4036e4:	89 78 14             	mov    %edi,0x14(%eax)
4036e7:	eb 06                	jmp    0x4036ef
4036e9:	83 20 00             	andl   $0x0,(%eax)
4036ec:	8b 4d 18             	mov    0x18(%ebp),%ecx
4036ef:	56                   	push   %esi
4036f0:	8b 70 20             	mov    0x20(%eax),%esi
4036f3:	85 f6                	test   %esi,%esi
4036f5:	74 1d                	je     0x403714
4036f7:	ff 70 24             	push   0x24(%eax)
4036fa:	ff 75 24             	push   0x24(%ebp)
4036fd:	57                   	push   %edi
4036fe:	53                   	push   %ebx
4036ff:	51                   	push   %ecx
403700:	ff 75 14             	push   0x14(%ebp)
403703:	8b ce                	mov    %esi,%ecx
403705:	52                   	push   %edx
403706:	ff 75 0c             	push   0xc(%ebp)
403709:	ff 75 08             	push   0x8(%ebp)
40370c:	ff 15 20 f2 40 00    	call   *0x40f220
403712:	ff d6                	call   *%esi
403714:	5e                   	pop    %esi
403715:	5f                   	pop    %edi
403716:	5b                   	pop    %ebx
403717:	5d                   	pop    %ebp
403718:	c2 24 00             	ret    $0x24
40371b:	8b ff                	mov    %edi,%edi
40371d:	55                   	push   %ebp
40371e:	8b ec                	mov    %esp,%ebp
403720:	83 ec 14             	sub    $0x14,%esp
403723:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
403728:	33 c5                	xor    %ebp,%eax
40372a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40372d:	56                   	push   %esi
40372e:	8b 35 84 c0 40 00    	mov    0x40c084,%esi
403734:	8d 45 ec             	lea    -0x14(%ebp),%eax
403737:	57                   	push   %edi
403738:	8d 7d ec             	lea    -0x14(%ebp),%edi
40373b:	68 98 c0 40 00       	push   $0x40c098
403740:	8d 76 f0             	lea    -0x10(%esi),%esi
403743:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403744:	68 80 c0 40 00       	push   $0x40c080
403749:	68 a0 36 40 00       	push   $0x4036a0
40374e:	50                   	push   %eax
40374f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403750:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403751:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403752:	83 25 a0 c0 40 00 00 	andl   $0x0,0x40c0a0
403759:	83 25 a4 c0 40 00 00 	andl   $0x0,0x40c0a4
403760:	ff 15 2c f0 40 00    	call   *0x40f02c
403766:	8b f0                	mov    %eax,%esi
403768:	85 f6                	test   %esi,%esi
40376a:	74 0d                	je     0x403779
40376c:	7e 2a                	jle    0x403798
40376e:	0f b7 f6             	movzwl %si,%esi
403771:	81 ce 00 00 07 80    	or     $0x80070000,%esi
403777:	eb 1f                	jmp    0x403798
403779:	8b 0d 84 c0 40 00    	mov    0x40c084,%ecx
40377f:	0f b7 01             	movzwl (%ecx),%eax
403782:	50                   	push   %eax
403783:	51                   	push   %ecx
403784:	6a 02                	push   $0x2
403786:	ff 35 9c c0 40 00    	push   0x40c09c
40378c:	ff 35 98 c0 40 00    	push   0x40c098
403792:	ff 15 28 f0 40 00    	call   *0x40f028
403798:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40379b:	8b c6                	mov    %esi,%eax
40379d:	5f                   	pop    %edi
40379e:	33 cd                	xor    %ebp,%ecx
4037a0:	5e                   	pop    %esi
4037a1:	e8 ba 60 00 00       	call   0x409860
4037a6:	c9                   	leave
4037a7:	c3                   	ret
4037a8:	8b ff                	mov    %edi,%edi
4037aa:	55                   	push   %ebp
4037ab:	8b ec                	mov    %esp,%ebp
4037ad:	83 ec 44             	sub    $0x44,%esp
4037b0:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
4037b5:	33 c5                	xor    %ebp,%eax
4037b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4037ba:	8b 45 14             	mov    0x14(%ebp),%eax
4037bd:	8b 4d 10             	mov    0x10(%ebp),%ecx
4037c0:	53                   	push   %ebx
4037c1:	56                   	push   %esi
4037c2:	89 45 ec             	mov    %eax,-0x14(%ebp)
4037c5:	33 db                	xor    %ebx,%ebx
4037c7:	8d 45 dc             	lea    -0x24(%ebp),%eax
4037ca:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4037cd:	50                   	push   %eax
4037ce:	8b f2                	mov    %edx,%esi
4037d0:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
4037d7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4037da:	e8 0d fe ff ff       	call   0x4035ec
4037df:	8d 45 bc             	lea    -0x44(%ebp),%eax
4037e2:	50                   	push   %eax
4037e3:	6a 04                	push   $0x4
4037e5:	53                   	push   %ebx
4037e6:	53                   	push   %ebx
4037e7:	56                   	push   %esi
4037e8:	68 80 c0 40 00       	push   $0x40c080
4037ed:	e8 6e fd ff ff       	call   0x403560
4037f2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4037f5:	5e                   	pop    %esi
4037f6:	33 cd                	xor    %ebp,%ecx
4037f8:	5b                   	pop    %ebx
4037f9:	e8 62 60 00 00       	call   0x409860
4037fe:	c9                   	leave
4037ff:	c2 10 00             	ret    $0x10
403802:	cc                   	int3
403803:	cc                   	int3
403804:	cc                   	int3
403805:	cc                   	int3
403806:	cc                   	int3
403807:	cc                   	int3
403808:	cc                   	int3
403809:	cc                   	int3
40380a:	cc                   	int3
40380b:	cc                   	int3
40380c:	cc                   	int3
40380d:	cc                   	int3
40380e:	cc                   	int3
40380f:	cc                   	int3
403810:	b9 d8 ed 40 00       	mov    $0x40edd8,%ecx
403815:	c7 05 a4 c5 40 00 c8 	movl   $0x40edc8,0x40c5a4
40381c:	ed 40 00
40381f:	e8 8f 21 00 00       	call   0x4059b3
403824:	85 c0                	test   %eax,%eax
403826:	78 0a                	js     0x403832
403828:	c7 05 cc ed 40 00 24 	movl   $0x24,0x40edcc
40382f:	00 00 00
403832:	68 b0 a6 40 00       	push   $0x40a6b0
403837:	c7 05 c8 ed 40 00 00 	movl   $0x401600,0x40edc8
40383e:	16 40 00
403841:	e8 76 64 00 00       	call   0x409cbc
403846:	59                   	pop    %ecx
403847:	c3                   	ret
403848:	cc                   	int3
403849:	cc                   	int3
40384a:	cc                   	int3
40384b:	cc                   	int3
40384c:	cc                   	int3
40384d:	cc                   	int3
40384e:	cc                   	int3
40384f:	cc                   	int3
403850:	8b ff                	mov    %edi,%edi
403852:	51                   	push   %ecx
403853:	e8 52 43 00 00       	call   0x407baa
403858:	68 d0 a6 40 00       	push   $0x40a6d0
40385d:	e8 5a 64 00 00       	call   0x409cbc
403862:	59                   	pop    %ecx
403863:	c3                   	ret
403864:	cc                   	int3
403865:	cc                   	int3
403866:	cc                   	int3
403867:	cc                   	int3
403868:	cc                   	int3
403869:	cc                   	int3
40386a:	cc                   	int3
40386b:	cc                   	int3
40386c:	cc                   	int3
40386d:	cc                   	int3
40386e:	cc                   	int3
40386f:	cc                   	int3
403870:	b9 c8 c0 40 00       	mov    $0x40c0c8,%ecx
403875:	e8 39 21 00 00       	call   0x4059b3
40387a:	68 f0 a6 40 00       	push   $0x40a6f0
40387f:	e8 38 64 00 00       	call   0x409cbc
403884:	59                   	pop    %ecx
403885:	c3                   	ret
403886:	cc                   	int3
403887:	cc                   	int3
403888:	cc                   	int3
403889:	cc                   	int3
40388a:	cc                   	int3
40388b:	cc                   	int3
40388c:	cc                   	int3
40388d:	cc                   	int3
40388e:	cc                   	int3
40388f:	cc                   	int3
403890:	b9 04 c2 40 00       	mov    $0x40c204,%ecx
403895:	e8 19 21 00 00       	call   0x4059b3
40389a:	85 c0                	test   %eax,%eax
40389c:	79 07                	jns    0x4038a5
40389e:	83 25 00 c2 40 00 00 	andl   $0x0,0x40c200
4038a5:	68 00 a7 40 00       	push   $0x40a700
4038aa:	e8 0d 64 00 00       	call   0x409cbc
4038af:	59                   	pop    %ecx
4038b0:	c3                   	ret
4038b1:	cc                   	int3
4038b2:	cc                   	int3
4038b3:	cc                   	int3
4038b4:	cc                   	int3
4038b5:	cc                   	int3
4038b6:	cc                   	int3
4038b7:	cc                   	int3
4038b8:	cc                   	int3
4038b9:	cc                   	int3
4038ba:	cc                   	int3
4038bb:	cc                   	int3
4038bc:	cc                   	int3
4038bd:	cc                   	int3
4038be:	cc                   	int3
4038bf:	cc                   	int3
4038c0:	b9 00 c1 40 00       	mov    $0x40c100,%ecx
4038c5:	e8 e9 20 00 00       	call   0x4059b3
4038ca:	85 c0                	test   %eax,%eax
4038cc:	78 0a                	js     0x4038d8
4038ce:	c7 05 f0 c0 40 00 28 	movl   $0x28,0x40c0f0
4038d5:	00 00 00
4038d8:	68 10 a7 40 00       	push   $0x40a710
4038dd:	e8 da 63 00 00       	call   0x409cbc
4038e2:	59                   	pop    %ecx
4038e3:	c3                   	ret
4038e4:	cc                   	int3
4038e5:	cc                   	int3
4038e6:	cc                   	int3
4038e7:	cc                   	int3
4038e8:	cc                   	int3
4038e9:	cc                   	int3
4038ea:	cc                   	int3
4038eb:	cc                   	int3
4038ec:	cc                   	int3
4038ed:	cc                   	int3
4038ee:	cc                   	int3
4038ef:	cc                   	int3
4038f0:	68 80 a7 40 00       	push   $0x40a780
4038f5:	e8 c2 63 00 00       	call   0x409cbc
4038fa:	59                   	pop    %ecx
4038fb:	c3                   	ret
4038fc:	cc                   	int3
4038fd:	cc                   	int3
4038fe:	cc                   	int3
4038ff:	cc                   	int3
403900:	68 90 a7 40 00       	push   $0x40a790
403905:	e8 b2 63 00 00       	call   0x409cbc
40390a:	59                   	pop    %ecx
40390b:	c3                   	ret
40390c:	cc                   	int3
40390d:	cc                   	int3
40390e:	cc                   	int3
40390f:	cc                   	int3
403910:	68 a0 a7 40 00       	push   $0x40a7a0
403915:	e8 a2 63 00 00       	call   0x409cbc
40391a:	59                   	pop    %ecx
40391b:	c3                   	ret
40391c:	cc                   	int3
40391d:	cc                   	int3
40391e:	cc                   	int3
40391f:	cc                   	int3
403920:	ff 31                	push   (%ecx)
403922:	ff 15 d0 f0 40 00    	call   *0x40f0d0
403928:	c3                   	ret
403929:	cc                   	int3
40392a:	cc                   	int3
40392b:	cc                   	int3
40392c:	cc                   	int3
40392d:	cc                   	int3
40392e:	cc                   	int3
40392f:	cc                   	int3
403930:	8b ff                	mov    %edi,%edi
403932:	55                   	push   %ebp
403933:	8b ec                	mov    %esp,%ebp
403935:	6a 00                	push   $0x0
403937:	ff 75 08             	push   0x8(%ebp)
40393a:	b9 c8 ed 40 00       	mov    $0x40edc8,%ecx
40393f:	6a 65                	push   $0x65
403941:	5a                   	pop    %edx
403942:	e8 37 40 00 00       	call   0x40797e
403947:	5d                   	pop    %ebp
403948:	c2 04 00             	ret    $0x4
40394b:	8b ff                	mov    %edi,%edi
40394d:	c3                   	ret
40394e:	cc                   	int3
40394f:	cc                   	int3
403950:	8b ff                	mov    %edi,%edi
403952:	55                   	push   %ebp
403953:	8b ec                	mov    %esp,%ebp
403955:	53                   	push   %ebx
403956:	56                   	push   %esi
403957:	8b 75 08             	mov    0x8(%ebp),%esi
40395a:	33 db                	xor    %ebx,%ebx
40395c:	6a ff                	push   $0xffffffff
40395e:	ff 76 34             	push   0x34(%esi)
403961:	ff 15 68 f0 40 00    	call   *0x40f068
403967:	68 88 13 00 00       	push   $0x1388
40396c:	ff 76 34             	push   0x34(%esi)
40396f:	88 5e 38             	mov    %bl,0x38(%esi)
403972:	ff 15 68 f0 40 00    	call   *0x40f068
403978:	85 c0                	test   %eax,%eax
40397a:	74 eb                	je     0x403967
40397c:	38 5e 38             	cmp    %bl,0x38(%esi)
40397f:	75 db                	jne    0x40395c
403981:	39 5e 08             	cmp    %ebx,0x8(%esi)
403984:	75 d6                	jne    0x40395c
403986:	ff 76 34             	push   0x34(%esi)
403989:	ff 15 74 f0 40 00    	call   *0x40f074
40398f:	53                   	push   %ebx
403990:	53                   	push   %ebx
403991:	6a 12                	push   $0x12
403993:	ff 76 30             	push   0x30(%esi)
403996:	ff 15 fc f0 40 00    	call   *0x40f0fc
40399c:	5e                   	pop    %esi
40399d:	33 c0                	xor    %eax,%eax
40399f:	5b                   	pop    %ebx
4039a0:	5d                   	pop    %ebp
4039a1:	c2 04 00             	ret    $0x4
4039a4:	cc                   	int3
4039a5:	cc                   	int3
4039a6:	cc                   	int3
4039a7:	cc                   	int3
4039a8:	cc                   	int3
4039a9:	cc                   	int3