4078a0:	3b c6                	cmp    %esi,%eax
4078a2:	0f 86 b2 00 00 00    	jbe    0x40795a
4078a8:	c7 85 58 fc ff ff 00 	movl   $0x0,-0x3a8(%ebp)
4078af:	00 00 00
4078b2:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4078b5:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4078ba:	8b 7d cc             	mov    -0x34(%ebp),%edi
4078bd:	2b cf                	sub    %edi,%ecx
4078bf:	f7 e9                	imul   %ecx
4078c1:	8d 46 fb             	lea    -0x5(%esi),%eax
4078c4:	c1 fa 02             	sar    $0x2,%edx
4078c7:	8b ca                	mov    %edx,%ecx
4078c9:	c1 e9 1f             	shr    $0x1f,%ecx
4078cc:	03 ca                	add    %edx,%ecx
4078ce:	3b c8                	cmp    %eax,%ecx
4078d0:	0f 86 f9 03 00 00    	jbe    0x407ccf
4078d6:	8b 85 58 fc ff ff    	mov    -0x3a8(%ebp),%eax
4078dc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4078df:	03 c7                	add    %edi,%eax
4078e1:	50                   	push   %eax
4078e2:	e8 d9 a9 ff ff       	call   0x4022c0
4078e7:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
4078eb:	8d 45 d8             	lea    -0x28(%ebp),%eax
4078ee:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
4078f2:	50                   	push   %eax
4078f3:	ff 15 64 f0 43 00    	call   *0x43f064
4078f9:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4078fc:	83 f9 08             	cmp    $0x8,%ecx
4078ff:	72 32                	jb     0x407933
407901:	8b 55 d8             	mov    -0x28(%ebp),%edx
407904:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40790b:	8b c2                	mov    %edx,%eax
40790d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407913:	72 14                	jb     0x407929
407915:	8b 50 fc             	mov    -0x4(%eax),%edx
407918:	83 c1 23             	add    $0x23,%ecx
40791b:	2b c2                	sub    %edx,%eax
40791d:	83 c0 fc             	add    $0xfffffffc,%eax
407920:	83 f8 1f             	cmp    $0x1f,%eax
407923:	0f 87 9c 03 00 00    	ja     0x407cc5
407929:	51                   	push   %ecx
40792a:	52                   	push   %edx
40792b:	e8 de 3f 01 00       	call   0x41b90e
407930:	83 c4 08             	add    $0x8,%esp
407933:	8b 4d d0             	mov    -0x30(%ebp),%ecx
407936:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40793b:	2b 4d cc             	sub    -0x34(%ebp),%ecx
40793e:	46                   	inc    %esi
40793f:	83 85 58 fc ff ff 18 	addl   $0x18,-0x3a8(%ebp)
407946:	f7 e9                	imul   %ecx
407948:	c1 fa 02             	sar    $0x2,%edx
40794b:	8b c2                	mov    %edx,%eax
40794d:	c1 e8 1f             	shr    $0x1f,%eax
407950:	03 c2                	add    %edx,%eax
407952:	3b f0                	cmp    %eax,%esi
407954:	0f 82 58 ff ff ff    	jb     0x4078b2
40795a:	8b 8d c4 fe ff ff    	mov    -0x13c(%ebp),%ecx
407960:	83 f9 08             	cmp    $0x8,%ecx
407963:	72 35                	jb     0x40799a
407965:	8b 95 b0 fe ff ff    	mov    -0x150(%ebp),%edx
40796b:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407972:	8b c2                	mov    %edx,%eax
407974:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40797a:	72 14                	jb     0x407990
40797c:	8b 50 fc             	mov    -0x4(%eax),%edx
40797f:	83 c1 23             	add    $0x23,%ecx
407982:	2b c2                	sub    %edx,%eax
407984:	83 c0 fc             	add    $0xfffffffc,%eax
407987:	83 f8 1f             	cmp    $0x1f,%eax
40798a:	0f 87 3a 03 00 00    	ja     0x407cca
407990:	51                   	push   %ecx
407991:	52                   	push   %edx
407992:	e8 77 3f 01 00       	call   0x41b90e
407997:	83 c4 08             	add    $0x8,%esp
40799a:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
4079a0:	33 c0                	xor    %eax,%eax
4079a2:	c7 85 c0 fe ff ff 00 	movl   $0x0,-0x140(%ebp)
4079a9:	00 00 00
4079ac:	c7 85 c4 fe ff ff 07 	movl   $0x7,-0x13c(%ebp)
4079b3:	00 00 00
4079b6:	66 89 85 b0 fe ff ff 	mov    %ax,-0x150(%ebp)
4079bd:	83 f9 08             	cmp    $0x8,%ecx
4079c0:	72 35                	jb     0x4079f7
4079c2:	8b 95 f8 fe ff ff    	mov    -0x108(%ebp),%edx
4079c8:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4079cf:	8b c2                	mov    %edx,%eax
4079d1:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4079d7:	72 14                	jb     0x4079ed
4079d9:	8b 50 fc             	mov    -0x4(%eax),%edx
4079dc:	83 c1 23             	add    $0x23,%ecx
4079df:	2b c2                	sub    %edx,%eax
4079e1:	83 c0 fc             	add    $0xfffffffc,%eax
4079e4:	83 f8 1f             	cmp    $0x1f,%eax
4079e7:	0f 87 dd 02 00 00    	ja     0x407cca
4079ed:	51                   	push   %ecx
4079ee:	52                   	push   %edx
4079ef:	e8 1a 3f 01 00       	call   0x41b90e
4079f4:	83 c4 08             	add    $0x8,%esp
4079f7:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
4079fd:	33 c0                	xor    %eax,%eax
4079ff:	c7 85 08 ff ff ff 00 	movl   $0x0,-0xf8(%ebp)
407a06:	00 00 00
407a09:	c7 85 0c ff ff ff 07 	movl   $0x7,-0xf4(%ebp)
407a10:	00 00 00
407a13:	66 89 85 f8 fe ff ff 	mov    %ax,-0x108(%ebp)
407a1a:	83 f9 08             	cmp    $0x8,%ecx
407a1d:	72 35                	jb     0x407a54
407a1f:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
407a25:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407a2c:	8b c2                	mov    %edx,%eax
407a2e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407a34:	72 14                	jb     0x407a4a
407a36:	8b 50 fc             	mov    -0x4(%eax),%edx
407a39:	83 c1 23             	add    $0x23,%ecx
407a3c:	2b c2                	sub    %edx,%eax
407a3e:	83 c0 fc             	add    $0xfffffffc,%eax
407a41:	83 f8 1f             	cmp    $0x1f,%eax
407a44:	0f 87 80 02 00 00    	ja     0x407cca
407a4a:	51                   	push   %ecx
407a4b:	52                   	push   %edx
407a4c:	e8 bd 3e 01 00       	call   0x41b90e
407a51:	83 c4 08             	add    $0x8,%esp
407a54:	8b 8d dc fe ff ff    	mov    -0x124(%ebp),%ecx
407a5a:	83 f9 08             	cmp    $0x8,%ecx
407a5d:	72 35                	jb     0x407a94
407a5f:	8b 95 c8 fe ff ff    	mov    -0x138(%ebp),%edx
407a65:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407a6c:	8b c2                	mov    %edx,%eax
407a6e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407a74:	72 14                	jb     0x407a8a
407a76:	8b 50 fc             	mov    -0x4(%eax),%edx
407a79:	83 c1 23             	add    $0x23,%ecx
407a7c:	2b c2                	sub    %edx,%eax
407a7e:	83 c0 fc             	add    $0xfffffffc,%eax
407a81:	83 f8 1f             	cmp    $0x1f,%eax
407a84:	0f 87 40 02 00 00    	ja     0x407cca
407a8a:	51                   	push   %ecx
407a8b:	52                   	push   %edx
407a8c:	e8 7d 3e 01 00       	call   0x41b90e
407a91:	83 c4 08             	add    $0x8,%esp
407a94:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
407a9a:	33 c0                	xor    %eax,%eax
407a9c:	c7 85 d8 fe ff ff 00 	movl   $0x0,-0x128(%ebp)
407aa3:	00 00 00
407aa6:	c7 85 dc fe ff ff 07 	movl   $0x7,-0x124(%ebp)
407aad:	00 00 00
407ab0:	66 89 85 c8 fe ff ff 	mov    %ax,-0x138(%ebp)
407ab7:	83 f9 08             	cmp    $0x8,%ecx
407aba:	72 35                	jb     0x407af1
407abc:	8b 95 10 ff ff ff    	mov    -0xf0(%ebp),%edx
407ac2:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407ac9:	8b c2                	mov    %edx,%eax
407acb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407ad1:	72 14                	jb     0x407ae7
407ad3:	8b 50 fc             	mov    -0x4(%eax),%edx
407ad6:	83 c1 23             	add    $0x23,%ecx
407ad9:	2b c2                	sub    %edx,%eax
407adb:	83 c0 fc             	add    $0xfffffffc,%eax
407ade:	83 f8 1f             	cmp    $0x1f,%eax
407ae1:	0f 87 e3 01 00 00    	ja     0x407cca
407ae7:	51                   	push   %ecx
407ae8:	52                   	push   %edx
407ae9:	e8 20 3e 01 00       	call   0x41b90e
407aee:	83 c4 08             	add    $0x8,%esp
407af1:	33 c0                	xor    %eax,%eax
407af3:	c7 85 20 ff ff ff 00 	movl   $0x0,-0xe0(%ebp)
407afa:	00 00 00
407afd:	66 89 85 10 ff ff ff 	mov    %ax,-0xf0(%ebp)
407b04:	8b 45 8c             	mov    -0x74(%ebp),%eax
407b07:	c7 85 24 ff ff ff 07 	movl   $0x7,-0xdc(%ebp)
407b0e:	00 00 00
407b11:	83 f8 08             	cmp    $0x8,%eax
407b14:	72 35                	jb     0x407b4b
407b16:	8b 95 78 ff ff ff    	mov    -0x88(%ebp),%edx
407b1c:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
407b23:	8b c2                	mov    %edx,%eax
407b25:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407b2b:	72 14                	jb     0x407b41
407b2d:	8b 50 fc             	mov    -0x4(%eax),%edx
407b30:	83 c1 23             	add    $0x23,%ecx
407b33:	2b c2                	sub    %edx,%eax
407b35:	83 c0 fc             	add    $0xfffffffc,%eax
407b38:	83 f8 1f             	cmp    $0x1f,%eax
407b3b:	0f 87 89 01 00 00    	ja     0x407cca
407b41:	51                   	push   %ecx
407b42:	52                   	push   %edx
407b43:	e8 c6 3d 01 00       	call   0x41b90e
407b48:	83 c4 08             	add    $0x8,%esp
407b4b:	8b 4d bc             	mov    -0x44(%ebp),%ecx
407b4e:	83 f9 08             	cmp    $0x8,%ecx
407b51:	72 32                	jb     0x407b85
407b53:	8b 55 a8             	mov    -0x58(%ebp),%edx
407b56:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407b5d:	8b c2                	mov    %edx,%eax
407b5f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407b65:	72 14                	jb     0x407b7b
407b67:	8b 50 fc             	mov    -0x4(%eax),%edx
407b6a:	83 c1 23             	add    $0x23,%ecx
407b6d:	2b c2                	sub    %edx,%eax
407b6f:	83 c0 fc             	add    $0xfffffffc,%eax
407b72:	83 f8 1f             	cmp    $0x1f,%eax
407b75:	0f 87 4f 01 00 00    	ja     0x407cca
407b7b:	51                   	push   %ecx
407b7c:	52                   	push   %edx
407b7d:	e8 8c 3d 01 00       	call   0x41b90e
407b82:	83 c4 08             	add    $0x8,%esp
407b85:	8b 7d cc             	mov    -0x34(%ebp),%edi
407b88:	33 c0                	xor    %eax,%eax
407b8a:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
407b91:	c7 45 bc 07 00 00 00 	movl   $0x7,-0x44(%ebp)
407b98:	66 89 45 a8          	mov    %ax,-0x58(%ebp)
407b9c:	85 ff                	test   %edi,%edi
407b9e:	74 6a                	je     0x407c0a
407ba0:	8b 55 d0             	mov    -0x30(%ebp),%edx
407ba3:	51                   	push   %ecx
407ba4:	8b cf                	mov    %edi,%ecx
407ba6:	e8 15 47 00 00       	call   0x40c2c0
407bab:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
407bae:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
407bb3:	8b 75 cc             	mov    -0x34(%ebp),%esi
407bb6:	83 c4 04             	add    $0x4,%esp
407bb9:	2b ce                	sub    %esi,%ecx
407bbb:	f7 e9                	imul   %ecx
407bbd:	c1 fa 02             	sar    $0x2,%edx
407bc0:	8b c2                	mov    %edx,%eax
407bc2:	c1 e8 1f             	shr    $0x1f,%eax
407bc5:	03 c2                	add    %edx,%eax
407bc7:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
407bca:	8b c6                	mov    %esi,%eax
407bcc:	c1 e1 03             	shl    $0x3,%ecx
407bcf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407bd5:	72 14                	jb     0x407beb
407bd7:	8b 70 fc             	mov    -0x4(%eax),%esi
407bda:	83 c1 23             	add    $0x23,%ecx
407bdd:	2b c6                	sub    %esi,%eax
407bdf:	83 c0 fc             	add    $0xfffffffc,%eax
407be2:	83 f8 1f             	cmp    $0x1f,%eax
407be5:	0f 87 df 00 00 00    	ja     0x407cca
407beb:	51                   	push   %ecx
407bec:	56                   	push   %esi
407bed:	e8 1c 3d 01 00       	call   0x41b90e
407bf2:	83 c4 08             	add    $0x8,%esp
407bf5:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
407bfc:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
407c03:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
407c0a:	8b 4d c0             	mov    -0x40(%ebp),%ecx
407c0d:	85 c9                	test   %ecx,%ecx
407c0f:	74 64                	je     0x407c75
407c11:	8b 55 c4             	mov    -0x3c(%ebp),%edx
407c14:	51                   	push   %ecx
407c15:	e8 a6 46 00 00       	call   0x40c2c0
407c1a:	8b 4d c8             	mov    -0x38(%ebp),%ecx
407c1d:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
407c22:	8b 75 c0             	mov    -0x40(%ebp),%esi
407c25:	83 c4 04             	add    $0x4,%esp
407c28:	2b ce                	sub    %esi,%ecx
407c2a:	f7 e9                	imul   %ecx
407c2c:	c1 fa 02             	sar    $0x2,%edx
407c2f:	8b c2                	mov    %edx,%eax
407c31:	c1 e8 1f             	shr    $0x1f,%eax
407c34:	03 c2                	add    %edx,%eax
407c36:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
407c39:	8b c6                	mov    %esi,%eax
407c3b:	c1 e1 03             	shl    $0x3,%ecx
407c3e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407c44:	72 10                	jb     0x407c56
407c46:	8b 70 fc             	mov    -0x4(%eax),%esi
407c49:	83 c1 23             	add    $0x23,%ecx
407c4c:	2b c6                	sub    %esi,%eax
407c4e:	83 c0 fc             	add    $0xfffffffc,%eax
407c51:	83 f8 1f             	cmp    $0x1f,%eax
407c54:	77 74                	ja     0x407cca
407c56:	51                   	push   %ecx
407c57:	56                   	push   %esi
407c58:	e8 b1 3c 01 00       	call   0x41b90e
407c5d:	83 c4 08             	add    $0x8,%esp
407c60:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
407c67:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
407c6e:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
407c75:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
407c7b:	ff 70 04             	push   0x4(%eax)
407c7e:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
407c84:	50                   	push   %eax
407c85:	8b c8                	mov    %eax,%ecx
407c87:	e8 24 53 00 00       	call   0x40cfb0
407c8c:	6a 2c                	push   $0x2c
407c8e:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
407c94:	e8 75 3c 01 00       	call   0x41b90e
407c99:	83 c4 08             	add    $0x8,%esp
407c9c:	32 c0                	xor    %al,%al
407c9e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407ca1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407ca8:	59                   	pop    %ecx
407ca9:	5f                   	pop    %edi
407caa:	5e                   	pop    %esi
407cab:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407cae:	33 cd                	xor    %ebp,%ecx
407cb0:	e8 1b 3c 01 00       	call   0x41b8d0
407cb5:	8b e5                	mov    %ebp,%esp
407cb7:	5d                   	pop    %ebp
407cb8:	c2 04 00             	ret    $0x4
407cbb:	e8 10 3c 00 00       	call   0x40b8d0
407cc0:	e8 db 95 ff ff       	call   0x4012a0
407cc5:	e8 b5 8d 01 00       	call   0x420a7f
407cca:	e8 b0 8d 01 00       	call   0x420a7f
407ccf:	e8 fc 29 00 00       	call   0x40a6d0
407cd4:	cc                   	int3
407cd5:	cc                   	int3
407cd6:	cc                   	int3
407cd7:	cc                   	int3
407cd8:	cc                   	int3
407cd9:	cc                   	int3
407cda:	cc                   	int3
407cdb:	cc                   	int3
407cdc:	cc                   	int3
407cdd:	cc                   	int3
407cde:	cc                   	int3
407cdf:	cc                   	int3
407ce0:	56                   	push   %esi
407ce1:	8b f1                	mov    %ecx,%esi
407ce3:	8b 06                	mov    (%esi),%eax
407ce5:	ff 70 04             	push   0x4(%eax)
407ce8:	56                   	push   %esi
407ce9:	e8 c2 52 00 00       	call   0x40cfb0
407cee:	6a 2c                	push   $0x2c
407cf0:	ff 36                	push   (%esi)
407cf2:	e8 17 3c 01 00       	call   0x41b90e
407cf7:	83 c4 08             	add    $0x8,%esp
407cfa:	5e                   	pop    %esi
407cfb:	c3                   	ret
407cfc:	cc                   	int3
407cfd:	cc                   	int3
407cfe:	cc                   	int3
407cff:	cc                   	int3
407d00:	55                   	push   %ebp
407d01:	8b ec                	mov    %esp,%ebp
407d03:	6a ff                	push   $0xffffffff
407d05:	68 a5 d8 43 00       	push   $0x43d8a5
407d0a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
407d10:	50                   	push   %eax
407d11:	83 ec 6c             	sub    $0x6c,%esp
407d14:	a1 14 40 45 00       	mov    0x454014,%eax
407d19:	33 c5                	xor    %ebp,%eax
407d1b:	89 45 f0             	mov    %eax,-0x10(%ebp)
407d1e:	53                   	push   %ebx
407d1f:	56                   	push   %esi
407d20:	57                   	push   %edi
407d21:	50                   	push   %eax
407d22:	8d 45 f4             	lea    -0xc(%ebp),%eax
407d25:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0