4036d8:	e8 ae 6d 00 00       	call   0x40a48b
4036dd:	3b d8                	cmp    %eax,%ebx
4036df:	0f 83 0b 01 00 00    	jae    0x4037f0
4036e5:	6a 40                	push   $0x40
4036e7:	8d 14 5e             	lea    (%esi,%ebx,2),%edx
4036ea:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
4036f0:	e8 01 6d 00 00       	call   0x40a3f6
4036f5:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4036fb:	50                   	push   %eax
4036fc:	ff 15 d4 20 41 00    	call   *0x4120d4
403702:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
403708:	eb 5e                	jmp    0x403768
40370a:	68 80 00 00 00       	push   $0x80
40370f:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
403715:	6a 00                	push   $0x0
403717:	50                   	push   %eax
403718:	e8 a7 bc 00 00       	call   0x40f3c4
40371d:	83 c4 0c             	add    $0xc,%esp
403720:	8b ce                	mov    %esi,%ecx
403722:	e8 64 6d 00 00       	call   0x40a48b
403727:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
40372d:	2b c3                	sub    %ebx,%eax
40372f:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
403735:	e8 51 6d 00 00       	call   0x40a48b
40373a:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
403740:	2b c8                	sub    %eax,%ecx
403742:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
403748:	83 f9 40             	cmp    $0x40,%ecx
40374b:	0f 87 8c 00 00 00    	ja     0x4037dd
403751:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
403754:	50                   	push   %eax
403755:	8d 04 5e             	lea    (%esi,%ebx,2),%eax
403758:	50                   	push   %eax
403759:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40375f:	50                   	push   %eax
403760:	e8 59 bc 00 00       	call   0x40f3be
403765:	83 c4 0c             	add    $0xc,%esp
403768:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40376e:	47                   	inc    %edi
40376f:	50                   	push   %eax
403770:	ff 15 d4 20 41 00    	call   *0x4120d4
403776:	85 c0                	test   %eax,%eax
403778:	74 63                	je     0x4037dd
40377a:	6a 00                	push   $0x0
40377c:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
403782:	e8 65 65 00 00       	call   0x409cec
403787:	85 c0                	test   %eax,%eax
403789:	74 52                	je     0x4037dd
40378b:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
403791:	e8 9f 64 00 00       	call   0x409c35
403796:	83 ff 01             	cmp    $0x1,%edi
403799:	76 05                	jbe    0x4037a0
40379b:	83 f8 32             	cmp    $0x32,%eax
40379e:	77 3d                	ja     0x4037dd
4037a0:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
4037a6:	8b 0a                	mov    (%edx),%ecx
4037a8:	03 c8                	add    %eax,%ecx
4037aa:	83 ff 03             	cmp    $0x3,%edi
4037ad:	1b c0                	sbb    %eax,%eax
4037af:	83 e0 3b             	and    $0x3b,%eax
4037b2:	40                   	inc    %eax
4037b3:	0f af c8             	imul   %eax,%ecx
4037b6:	89 0a                	mov    %ecx,(%edx)
4037b8:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
4037be:	e8 c8 6c 00 00       	call   0x40a48b
4037c3:	03 85 78 ff ff ff    	add    -0x88(%ebp),%eax
4037c9:	03 d8                	add    %eax,%ebx
4037cb:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
4037d2:	74 1c                	je     0x4037f0
4037d4:	83 ff 03             	cmp    $0x3,%edi
4037d7:	0f 82 ce fe ff ff    	jb     0x4036ab
4037dd:	33 c0                	xor    %eax,%eax
4037df:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4037e2:	5f                   	pop    %edi
4037e3:	5e                   	pop    %esi
4037e4:	33 cd                	xor    %ebp,%ecx
4037e6:	5b                   	pop    %ebx
4037e7:	e8 e4 b4 00 00       	call   0x40ecd0
4037ec:	c9                   	leave
4037ed:	c2 04 00             	ret    $0x4
4037f0:	83 ff 03             	cmp    $0x3,%edi
4037f3:	75 e8                	jne    0x4037dd
4037f5:	33 c0                	xor    %eax,%eax
4037f7:	40                   	inc    %eax
4037f8:	eb e5                	jmp    0x4037df
4037fa:	cc                   	int3
4037fb:	cc                   	int3
4037fc:	cc                   	int3
4037fd:	cc                   	int3
4037fe:	cc                   	int3
4037ff:	cc                   	int3
403800:	8b ff                	mov    %edi,%edi
403802:	55                   	push   %ebp
403803:	8b ec                	mov    %esp,%ebp
403805:	51                   	push   %ecx
403806:	51                   	push   %ecx
403807:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40380b:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40380f:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
403813:	56                   	push   %esi
403814:	75 3f                	jne    0x403855
403816:	8b 75 10             	mov    0x10(%ebp),%esi
403819:	85 f6                	test   %esi,%esi
40381b:	74 1f                	je     0x40383c
40381d:	8b ce                	mov    %esi,%ecx
40381f:	e8 67 6c 00 00       	call   0x40a48b
403824:	83 f8 01             	cmp    $0x1,%eax
403827:	76 13                	jbe    0x40383c
403829:	0f b7 06             	movzwl (%esi),%eax
40382c:	6a 2d                	push   $0x2d
40382e:	59                   	pop    %ecx
40382f:	66 3b c8             	cmp    %ax,%cx
403832:	74 68                	je     0x40389c
403834:	6a 2b                	push   $0x2b
403836:	59                   	pop    %ecx
403837:	66 3b c8             	cmp    %ax,%cx
40383a:	74 60                	je     0x40389c
40383c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40383f:	ba 58 11 40 00       	mov    $0x401158,%edx
403844:	51                   	push   %ecx
403845:	8b ce                	mov    %esi,%ecx
403847:	e8 02 fe ff ff       	call   0x40364e
40384c:	85 c0                	test   %eax,%eax
40384e:	74 4c                	je     0x40389c
403850:	33 c0                	xor    %eax,%eax
403852:	40                   	inc    %eax
403853:	eb 49                	jmp    0x40389e
403855:	8b 4d 10             	mov    0x10(%ebp),%ecx
403858:	8d 45 f8             	lea    -0x8(%ebp),%eax
40385b:	50                   	push   %eax
40385c:	ba 58 11 40 00       	mov    $0x401158,%edx
403861:	e8 e8 fd ff ff       	call   0x40364e
403866:	8b 4d 18             	mov    0x18(%ebp),%ecx
403869:	6a 08                	push   $0x8
40386b:	5a                   	pop    %edx
40386c:	e8 9e 55 00 00       	call   0x408e0f
403871:	85 c0                	test   %eax,%eax
403873:	74 27                	je     0x40389c
403875:	8b 55 14             	mov    0x14(%ebp),%edx
403878:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40387b:	51                   	push   %ecx
40387c:	8b c8                	mov    %eax,%ecx
40387e:	e8 cb fd ff ff       	call   0x40364e
403883:	8b 45 f8             	mov    -0x8(%ebp),%eax
403886:	39 45 fc             	cmp    %eax,-0x4(%ebp)
403889:	75 05                	jne    0x403890
40388b:	6a 02                	push   $0x2
40388d:	58                   	pop    %eax
40388e:	eb 0e                	jmp    0x40389e
403890:	73 04                	jae    0x403896
403892:	6a 04                	push   $0x4
403894:	eb f7                	jmp    0x40388d
403896:	76 04                	jbe    0x40389c
403898:	6a 08                	push   $0x8
40389a:	eb f1                	jmp    0x40388d
40389c:	33 c0                	xor    %eax,%eax
40389e:	5e                   	pop    %esi
40389f:	c9                   	leave
4038a0:	c2 14 00             	ret    $0x14
4038a3:	cc                   	int3
4038a4:	cc                   	int3
4038a5:	cc                   	int3
4038a6:	cc                   	int3
4038a7:	cc                   	int3
4038a8:	cc                   	int3
4038a9:	cc                   	int3
4038aa:	cc                   	int3
4038ab:	cc                   	int3
4038ac:	cc                   	int3
4038ad:	cc                   	int3
4038ae:	cc                   	int3
4038af:	cc                   	int3
4038b0:	8b ff                	mov    %edi,%edi
4038b2:	55                   	push   %ebp
4038b3:	8b ec                	mov    %esp,%ebp
4038b5:	51                   	push   %ecx
4038b6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4038ba:	53                   	push   %ebx
4038bb:	56                   	push   %esi
4038bc:	57                   	push   %edi
4038bd:	0f 84 f7 00 00 00    	je     0x4039ba
4038c3:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4038c7:	0f 84 ed 00 00 00    	je     0x4039ba
4038cd:	8b 7d 10             	mov    0x10(%ebp),%edi
4038d0:	85 ff                	test   %edi,%edi
4038d2:	0f 84 e2 00 00 00    	je     0x4039ba
4038d8:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4038dc:	75 4e                	jne    0x40392c
4038de:	8b cf                	mov    %edi,%ecx
4038e0:	e8 a6 6b 00 00       	call   0x40a48b
4038e5:	85 c0                	test   %eax,%eax
4038e7:	0f 84 cd 00 00 00    	je     0x4039ba
4038ed:	6a 00                	push   $0x0
4038ef:	6a 01                	push   $0x1
4038f1:	ba a8 12 40 00       	mov    $0x4012a8,%edx
4038f6:	8b cf                	mov    %edi,%ecx
4038f8:	e8 9d 6b 00 00       	call   0x40a49a
4038fd:	85 c0                	test   %eax,%eax
4038ff:	0f 84 b5 00 00 00    	je     0x4039ba
403905:	6a 2a                	push   $0x2a
403907:	57                   	push   %edi
403908:	ff 15 58 22 41 00    	call   *0x412258
40390e:	59                   	pop    %ecx
40390f:	59                   	pop    %ecx
403910:	85 c0                	test   %eax,%eax
403912:	74 10                	je     0x403924
403914:	8d 48 02             	lea    0x2(%eax),%ecx
403917:	e8 6f 6b 00 00       	call   0x40a48b
40391c:	85 c0                	test   %eax,%eax
40391e:	0f 85 96 00 00 00    	jne    0x4039ba
403924:	33 c0                	xor    %eax,%eax
403926:	40                   	inc    %eax
403927:	e9 90 00 00 00       	jmp    0x4039bc
40392c:	6a 2a                	push   $0x2a
40392e:	33 db                	xor    %ebx,%ebx
403930:	57                   	push   %edi
403931:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403934:	ff 15 58 22 41 00    	call   *0x412258
40393a:	59                   	pop    %ecx
40393b:	59                   	pop    %ecx
40393c:	85 c0                	test   %eax,%eax
40393e:	74 17                	je     0x403957
403940:	8b c8                	mov    %eax,%ecx
403942:	e8 44 6b 00 00       	call   0x40a48b
403947:	8b cf                	mov    %edi,%ecx
403949:	8b f0                	mov    %eax,%esi
40394b:	e8 3b 6b 00 00       	call   0x40a48b
403950:	2b c6                	sub    %esi,%eax
403952:	89 45 fc             	mov    %eax,-0x4(%ebp)
403955:	74 63                	je     0x4039ba
403957:	6a 5c                	push   $0x5c
403959:	57                   	push   %edi
40395a:	ff 15 58 22 41 00    	call   *0x412258
403960:	59                   	pop    %ecx
403961:	59                   	pop    %ecx
403962:	85 c0                	test   %eax,%eax
403964:	75 03                	jne    0x403969
403966:	33 db                	xor    %ebx,%ebx
403968:	43                   	inc    %ebx
403969:	8b 4d 18             	mov    0x18(%ebp),%ecx
40396c:	6a 07                	push   $0x7
40396e:	5a                   	pop    %edx
40396f:	e8 9b 54 00 00       	call   0x408e0f
403974:	8b f0                	mov    %eax,%esi
403976:	85 f6                	test   %esi,%esi
403978:	74 40                	je     0x4039ba
40397a:	83 fb 01             	cmp    $0x1,%ebx
40397d:	75 12                	jne    0x403991
40397f:	6a 5c                	push   $0x5c
403981:	56                   	push   %esi
403982:	ff 15 58 22 41 00    	call   *0x412258
403988:	59                   	pop    %ecx
403989:	59                   	pop    %ecx
40398a:	85 c0                	test   %eax,%eax
40398c:	74 03                	je     0x403991
40398e:	8d 70 02             	lea    0x2(%eax),%esi
403991:	85 f6                	test   %esi,%esi
403993:	74 25                	je     0x4039ba
403995:	ff 75 fc             	push   -0x4(%ebp)
403998:	8b d7                	mov    %edi,%edx
40399a:	8b ce                	mov    %esi,%ecx
40399c:	6a 01                	push   $0x1
40399e:	e8 f7 6a 00 00       	call   0x40a49a
4039a3:	85 c0                	test   %eax,%eax
4039a5:	75 05                	jne    0x4039ac
4039a7:	6a 02                	push   $0x2
4039a9:	58                   	pop    %eax
4039aa:	eb 10                	jmp    0x4039bc
4039ac:	79 04                	jns    0x4039b2
4039ae:	6a 04                	push   $0x4
4039b0:	eb f7                	jmp    0x4039a9
4039b2:	85 c0                	test   %eax,%eax
4039b4:	7e 04                	jle    0x4039ba
4039b6:	6a 08                	push   $0x8
4039b8:	eb ef                	jmp    0x4039a9
4039ba:	33 c0                	xor    %eax,%eax
4039bc:	5f                   	pop    %edi
4039bd:	5e                   	pop    %esi
4039be:	5b                   	pop    %ebx
4039bf:	c9                   	leave
4039c0:	c2 14 00             	ret    $0x14
4039c3:	8b ff                	mov    %edi,%edi
4039c5:	56                   	push   %esi
4039c6:	57                   	push   %edi
4039c7:	6a 01                	push   $0x1
4039c9:	e8 0b b9 00 00       	call   0x40f2d9
4039ce:	59                   	pop    %ecx
4039cf:	ba 7c 14 40 00       	mov    $0x40147c,%edx
4039d4:	8b c8                	mov    %eax,%ecx
4039d6:	e8 12 6b 00 00       	call   0x40a4ed
4039db:	bf e9 03 00 00       	mov    $0x3e9,%edi
4039e0:	8b cf                	mov    %edi,%ecx
4039e2:	e8 6a 60 00 00       	call   0x409a51
4039e7:	6a 01                	push   $0x1
4039e9:	8b f0                	mov    %eax,%esi
4039eb:	e8 e9 b8 00 00       	call   0x40f2d9
4039f0:	59                   	pop    %ecx
4039f1:	8b d6                	mov    %esi,%edx
4039f3:	8b c8                	mov    %eax,%ecx
4039f5:	e8 f3 6a 00 00       	call   0x40a4ed
4039fa:	47                   	inc    %edi
4039fb:	81 ff 28 04 00 00    	cmp    $0x428,%edi
403a01:	76 dd                	jbe    0x4039e0
403a03:	5f                   	pop    %edi
403a04:	5e                   	pop    %esi
403a05:	c3                   	ret
403a06:	6a 50                	push   $0x50
403a08:	b8 cb f5 40 00       	mov    $0x40f5cb,%eax
403a0d:	e8 73 b9 00 00       	call   0x40f385
403a12:	8b d9                	mov    %ecx,%ebx
403a14:	33 f6                	xor    %esi,%esi
403a16:	89 75 d0             	mov    %esi,-0x30(%ebp)
403a19:	89 75 c8             	mov    %esi,-0x38(%ebp)
403a1c:	33 c0                	xor    %eax,%eax
403a1e:	8d 7d d8             	lea    -0x28(%ebp),%edi
403a21:	ab                   	stos   %eax,%es:(%edi)
403a22:	ab                   	stos   %eax,%es:(%edi)
403a23:	ab                   	stos   %eax,%es:(%edi)
403a24:	ab                   	stos   %eax,%es:(%edi)
403a25:	ab                   	stos   %eax,%es:(%edi)
403a26:	89 75 c0             	mov    %esi,-0x40(%ebp)
403a29:	8b 43 20             	mov    0x20(%ebx),%eax
403a2c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
403a2f:	8b 4b 54             	mov    0x54(%ebx),%ecx
403a32:	e8 81 53 00 00       	call   0x408db8
403a37:	89 45 b4             	mov    %eax,-0x4c(%ebp)
403a3a:	8b cb                	mov    %ebx,%ecx
403a3c:	e8 71 19 00 00       	call   0x4053b2
403a41:	56                   	push   %esi
403a42:	ff 15 74 20 41 00    	call   *0x412074
403a48:	89 75 fc             	mov    %esi,-0x4(%ebp)
403a4b:	39 b3 d8 00 00 00    	cmp    %esi,0xd8(%ebx)
403a51:	75 45                	jne    0x403a98
403a53:	83 7b 10 01          	cmpl   $0x1,0x10(%ebx)
403a57:	75 1a                	jne    0x403a73
403a59:	8b 43 50             	mov    0x50(%ebx),%eax
403a5c:	81 88 7c 11 00 00 00 	orl    $0x1000,0x117c(%eax)
403a63:	10 00 00
403a66:	8b 43 50             	mov    0x50(%ebx),%eax
403a69:	81 88 38 19 00 00 00 	orl    $0x1000,0x1938(%eax)
403a70:	10 00 00
403a73:	83 7b 3c 01          	cmpl   $0x1,0x3c(%ebx)
403a77:	75 1f                	jne    0x403a98
403a79:	b9 27 02 00 00       	mov    $0x227,%ecx
403a7e:	e8 ce 5f 00 00       	call   0x409a51
403a83:	8b f0                	mov    %eax,%esi
403a85:	6a 02                	push   $0x2
403a87:	e8 4d b8 00 00       	call   0x40f2d9
403a8c:	59                   	pop    %ecx
403a8d:	8b d6                	mov    %esi,%edx