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
403a8f:	8b c8                	mov    %eax,%ecx
403a91:	e8 57 6a 00 00       	call   0x40a4ed
403a96:	33 f6                	xor    %esi,%esi
403a98:	8b fe                	mov    %esi,%edi
403a9a:	89 7d cc             	mov    %edi,-0x34(%ebp)
403a9d:	8b 43 08             	mov    0x8(%ebx),%eax
403aa0:	8b 30                	mov    (%eax),%esi
403aa2:	8d 4d c8             	lea    -0x38(%ebp),%ecx
403aa5:	51                   	push   %ecx
403aa6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403aa9:	51                   	push   %ecx
403aaa:	6a 05                	push   $0x5
403aac:	68 e8 03 00 00       	push   $0x3e8
403ab1:	50                   	push   %eax
403ab2:	8b 4e 10             	mov    0x10(%esi),%ecx
403ab5:	ff 15 20 23 41 00    	call   *0x412320
403abb:	ff 56 10             	call   *0x10(%esi)
403abe:	83 f8 01             	cmp    $0x1,%eax
403ac1:	75 7b                	jne    0x403b3e
403ac3:	89 45 c0             	mov    %eax,-0x40(%ebp)
403ac6:	89 45 ac             	mov    %eax,-0x54(%ebp)
403ac9:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
403acd:	33 ff                	xor    %edi,%edi
403acf:	89 7d b8             	mov    %edi,-0x48(%ebp)
403ad2:	3b 7d c8             	cmp    -0x38(%ebp),%edi
403ad5:	0f 83 e3 00 00 00    	jae    0x403bbe
403adb:	51                   	push   %ecx
403adc:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax
403ae2:	50                   	push   %eax
403ae3:	ba c4 13 40 00       	mov    $0x4013c4,%edx
403ae8:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
403aec:	e8 c0 41 00 00       	call   0x407cb1
403af1:	8b cb                	mov    %ebx,%ecx
403af3:	e8 6a 0f 00 00       	call   0x404a62
403af8:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
403afc:	74 06                	je     0x403b04
403afe:	83 7b 70 00          	cmpl   $0x0,0x70(%ebx)
403b02:	74 1a                	je     0x403b1e
403b04:	6a 12                	push   $0x12
403b06:	5a                   	pop    %edx
403b07:	8b 8b 80 00 00 00    	mov    0x80(%ebx),%ecx
403b0d:	e8 79 51 00 00       	call   0x408c8b
403b12:	ff 74 bd d8          	push   -0x28(%ebp,%edi,4)
403b16:	50                   	push   %eax
403b17:	8b cb                	mov    %ebx,%ecx
403b19:	e8 ea 01 00 00       	call   0x403d08
403b1e:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
403b22:	85 c9                	test   %ecx,%ecx
403b24:	74 15                	je     0x403b3b
403b26:	8b 01                	mov    (%ecx),%eax
403b28:	51                   	push   %ecx
403b29:	8b 70 08             	mov    0x8(%eax),%esi
403b2c:	8b ce                	mov    %esi,%ecx
403b2e:	ff 15 20 23 41 00    	call   *0x412320
403b34:	ff d6                	call   *%esi
403b36:	83 64 bd d8 00       	andl   $0x0,-0x28(%ebp,%edi,4)
403b3b:	47                   	inc    %edi
403b3c:	eb 91                	jmp    0x403acf
403b3e:	3d 04 00 04 00       	cmp    $0x40004,%eax
403b43:	75 5a                	jne    0x403b9f
403b45:	47                   	inc    %edi
403b46:	89 7d cc             	mov    %edi,-0x34(%ebp)
403b49:	81 ff 2c 01 00 00    	cmp    $0x12c,%edi
403b4f:	76 3f                	jbe    0x403b90
403b51:	33 ff                	xor    %edi,%edi
403b53:	89 7d bc             	mov    %edi,-0x44(%ebp)
403b56:	83 ff 05             	cmp    $0x5,%edi
403b59:	73 20                	jae    0x403b7b
403b5b:	8b 4c bd d8          	mov    -0x28(%ebp,%edi,4),%ecx
403b5f:	85 c9                	test   %ecx,%ecx
403b61:	74 15                	je     0x403b78
403b63:	8b 01                	mov    (%ecx),%eax
403b65:	51                   	push   %ecx
403b66:	8b 70 08             	mov    0x8(%eax),%esi
403b69:	8b ce                	mov    %esi,%ecx
403b6b:	ff 15 20 23 41 00    	call   *0x412320
403b71:	ff d6                	call   *%esi
403b73:	83 64 bd d8 00       	andl   $0x0,-0x28(%ebp,%edi,4)
403b78:	47                   	inc    %edi
403b79:	eb d8                	jmp    0x403b53
403b7b:	68 b4 05 00 00       	push   $0x5b4
403b80:	ff 15 74 20 41 00    	call   *0x412074
403b86:	e8 69 5c 00 00       	call   0x4097f4
403b8b:	e9 70 01 00 00       	jmp    0x403d00
403b90:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
403b94:	0f 84 2f 01 00 00    	je     0x403cc9
403b9a:	e9 2a ff ff ff       	jmp    0x403ac9
403b9f:	85 c0                	test   %eax,%eax
403ba1:	0f 89 22 ff ff ff    	jns    0x403ac9
403ba7:	8b c8                	mov    %eax,%ecx
403ba9:	e8 5c 3d 00 00       	call   0x40790a
403bae:	68 fd 00 03 80       	push   $0x800300fd
403bb3:	ff 15 74 20 41 00    	call   *0x412074
403bb9:	e9 42 01 00 00       	jmp    0x403d00
403bbe:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
403bc2:	74 11                	je     0x403bd5
403bc4:	ff 73 54             	push   0x54(%ebx)
403bc7:	ff b3 80 00 00 00    	push   0x80(%ebx)
403bcd:	8b 53 5c             	mov    0x5c(%ebx),%edx
403bd0:	e8 f6 9c 00 00       	call   0x40d8cb
403bd5:	8b 8b 80 00 00 00    	mov    0x80(%ebx),%ecx
403bdb:	e8 d8 51 00 00       	call   0x408db8
403be0:	85 c0                	test   %eax,%eax
403be2:	0f 84 de 00 00 00    	je     0x403cc6
403be8:	8b 7d d4             	mov    -0x2c(%ebp),%edi
403beb:	83 e7 0f             	and    $0xf,%edi
403bee:	8b 45 d0             	mov    -0x30(%ebp),%eax
403bf1:	85 c0                	test   %eax,%eax
403bf3:	74 1d                	je     0x403c12
403bf5:	83 ff 01             	cmp    $0x1,%edi
403bf8:	75 18                	jne    0x403c12
403bfa:	57                   	push   %edi
403bfb:	e8 d9 b6 00 00       	call   0x40f2d9
403c00:	59                   	pop    %ecx
403c01:	ba 7c 14 40 00       	mov    $0x40147c,%edx
403c06:	8b c8                	mov    %eax,%ecx
403c08:	e8 e0 68 00 00       	call   0x40a4ed
403c0d:	33 f6                	xor    %esi,%esi
403c0f:	46                   	inc    %esi
403c10:	eb 1f                	jmp    0x403c31
403c12:	8b f7                	mov    %edi,%esi
403c14:	85 c0                	test   %eax,%eax
403c16:	75 19                	jne    0x403c31
403c18:	83 ff 03             	cmp    $0x3,%edi
403c1b:	74 14                	je     0x403c31
403c1d:	6a 01                	push   $0x1
403c1f:	e8 b5 b6 00 00       	call   0x40f2d9
403c24:	59                   	pop    %ecx
403c25:	ba 7c 14 40 00       	mov    $0x40147c,%edx
403c2a:	8b c8                	mov    %eax,%ecx
403c2c:	e8 bc 68 00 00       	call   0x40a4ed
403c31:	8b 83 80 00 00 00    	mov    0x80(%ebx),%eax
403c37:	89 45 c4             	mov    %eax,-0x3c(%ebp)
403c3a:	8b 43 50             	mov    0x50(%ebx),%eax
403c3d:	89 45 b0             	mov    %eax,-0x50(%ebp)
403c40:	6a 01                	push   $0x1
403c42:	e8 92 b6 00 00       	call   0x40f2d9
403c47:	59                   	pop    %ecx
403c48:	8b f8                	mov    %eax,%edi
403c4a:	85 ff                	test   %edi,%edi
403c4c:	74 4a                	je     0x403c98
403c4e:	8b 45 b0             	mov    -0x50(%ebp),%eax
403c51:	85 c0                	test   %eax,%eax
403c53:	74 43                	je     0x403c98
403c55:	83 ee 01             	sub    $0x1,%esi
403c58:	74 2a                	je     0x403c84
403c5a:	83 ee 01             	sub    $0x1,%esi
403c5d:	74 15                	je     0x403c74
403c5f:	83 ee 01             	sub    $0x1,%esi
403c62:	75 2c                	jne    0x403c90
403c64:	ff 75 c4             	push   -0x3c(%ebp)
403c67:	ff 75 d4             	push   -0x2c(%ebp)
403c6a:	50                   	push   %eax
403c6b:	8b cf                	mov    %edi,%ecx
403c6d:	e8 63 ab 00 00       	call   0x40e7d5
403c72:	eb 1c                	jmp    0x403c90
403c74:	ff 75 c4             	push   -0x3c(%ebp)
403c77:	ff 75 d4             	push   -0x2c(%ebp)
403c7a:	50                   	push   %eax
403c7b:	8b cf                	mov    %edi,%ecx
403c7d:	e8 d9 a3 00 00       	call   0x40e05b
403c82:	eb 0c                	jmp    0x403c90
403c84:	ff 75 c4             	push   -0x3c(%ebp)
403c87:	51                   	push   %ecx
403c88:	50                   	push   %eax
403c89:	8b cf                	mov    %edi,%ecx
403c8b:	e8 b8 a8 00 00       	call   0x40e548
403c90:	57                   	push   %edi
403c91:	ff 15 64 22 41 00    	call   *0x412264
403c97:	59                   	pop    %ecx
403c98:	8b 8b 80 00 00 00    	mov    0x80(%ebx),%ecx
403c9e:	e8 15 51 00 00       	call   0x408db8
403ca3:	8b 75 d0             	mov    -0x30(%ebp),%esi
403ca6:	03 f0                	add    %eax,%esi
403ca8:	89 75 d0             	mov    %esi,-0x30(%ebp)